mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-02 15:15:39 +08:00
Ref T270, some formatter improvements
* return info about wrong type in string formatter * style
This commit is contained in:
@@ -64,14 +64,14 @@ namespace BlackGui
|
|||||||
// convert to pixmap
|
// convert to pixmap
|
||||||
if (static_cast<QMetaType::Type>(dataCVariant.type()) == QMetaType::QImage)
|
if (static_cast<QMetaType::Type>(dataCVariant.type()) == QMetaType::QImage)
|
||||||
{
|
{
|
||||||
QImage img = dataCVariant.value<QImage>();
|
const QImage img = dataCVariant.value<QImage>();
|
||||||
return CVariant::from(QPixmap::fromImage(img));
|
return CVariant::from(QPixmap::fromImage(img));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Our CIcon class
|
// Our CIcon class
|
||||||
if (dataCVariant.canConvert<BlackMisc::CIcon>())
|
if (dataCVariant.canConvert<BlackMisc::CIcon>())
|
||||||
{
|
{
|
||||||
BlackMisc::CIcon i = dataCVariant.value<BlackMisc::CIcon>();
|
const CIcon i = dataCVariant.value<BlackMisc::CIcon>();
|
||||||
return CVariant::from(i.toPixmap());
|
return CVariant::from(i.toPixmap());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,14 +81,11 @@ namespace BlackGui
|
|||||||
|
|
||||||
CVariant CDefaultFormatter::alignmentRole() const
|
CVariant CDefaultFormatter::alignmentRole() const
|
||||||
{
|
{
|
||||||
if (!this->hasAlignment())
|
if (this->hasAlignment())
|
||||||
{
|
|
||||||
return CVariant::from(alignDefault()); // default
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
return CVariant::from(m_alignment);
|
return CVariant::from(m_alignment);
|
||||||
}
|
}
|
||||||
|
return CVariant::from(alignDefault()); // default
|
||||||
}
|
}
|
||||||
|
|
||||||
CVariant CDefaultFormatter::checkStateRole(const CVariant &value) const
|
CVariant CDefaultFormatter::checkStateRole(const CVariant &value) const
|
||||||
@@ -104,7 +101,7 @@ namespace BlackGui
|
|||||||
if (role == Qt::TextAlignmentRole || role == Qt::UserRole) { return true; }
|
if (role == Qt::TextAlignmentRole || role == Qt::UserRole) { return true; }
|
||||||
|
|
||||||
// specific?
|
// specific?
|
||||||
return this->m_supportedRoles.contains(role);
|
return m_supportedRoles.contains(role);
|
||||||
}
|
}
|
||||||
|
|
||||||
CVariant CDefaultFormatter::data(int role, const CVariant &inputData) const
|
CVariant CDefaultFormatter::data(int role, const CVariant &inputData) const
|
||||||
@@ -119,23 +116,12 @@ namespace BlackGui
|
|||||||
if (role == Qt::UserRole) { return CDefaultFormatter::displayRole(inputData); } // just as data provider
|
if (role == Qt::UserRole) { return CDefaultFormatter::displayRole(inputData); } // just as data provider
|
||||||
switch (roleEnum)
|
switch (roleEnum)
|
||||||
{
|
{
|
||||||
case Qt::DisplayRole:
|
case Qt::DisplayRole: return displayRole(inputData); // formatted to standard types or string
|
||||||
// formatted to standard types or string
|
case Qt::EditRole: return editRole(inputData); // formatted to standard types or string
|
||||||
return displayRole(inputData);
|
case Qt::ToolTipRole: return tooltipRole(inputData); // formatted to string
|
||||||
case Qt::EditRole:
|
case Qt::DecorationRole: return decorationRole(inputData); // formatted as pixmap, icon, or color
|
||||||
// formatted to standard types or string
|
case Qt::CheckStateRole: return checkStateRole(inputData); // as Qt check state
|
||||||
return editRole(inputData);
|
default: break;
|
||||||
case Qt::ToolTipRole:
|
|
||||||
// formatted to string
|
|
||||||
return tooltipRole(inputData);
|
|
||||||
case Qt::DecorationRole:
|
|
||||||
// formatted as pixmap, icon, or color
|
|
||||||
return decorationRole(inputData);
|
|
||||||
case Qt::CheckStateRole:
|
|
||||||
// as Qt check state
|
|
||||||
return checkStateRole(inputData);
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return CVariant();
|
return CVariant();
|
||||||
}
|
}
|
||||||
@@ -153,6 +139,12 @@ namespace BlackGui
|
|||||||
return inputData.toQString(m_useI18n);
|
return inputData.toQString(m_useI18n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CVariant &CDefaultFormatter::emptyStringVariant()
|
||||||
|
{
|
||||||
|
static const CVariant e = CVariant::from(QStringLiteral(""));
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
|
||||||
CVariant CPixmapFormatter::displayRole(const CVariant &dataCVariant) const
|
CVariant CPixmapFormatter::displayRole(const CVariant &dataCVariant) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(dataCVariant);
|
Q_UNUSED(dataCVariant);
|
||||||
@@ -168,7 +160,7 @@ namespace BlackGui
|
|||||||
BlackMisc::CIcon icon = dataCVariant.value<BlackMisc::CIcon>();
|
BlackMisc::CIcon icon = dataCVariant.value<BlackMisc::CIcon>();
|
||||||
return icon.getDescriptiveText();
|
return icon.getDescriptiveText();
|
||||||
}
|
}
|
||||||
return "";
|
return emptyStringVariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
CVariant CValueObjectFormatter::displayRole(const CVariant &valueObject) const
|
CVariant CValueObjectFormatter::displayRole(const CVariant &valueObject) const
|
||||||
@@ -243,15 +235,12 @@ namespace BlackGui
|
|||||||
{
|
{
|
||||||
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
||||||
}
|
}
|
||||||
else
|
return emptyStringVariant();
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(false, "CAviationComFrequencyFormatter::formatQVariant", "No CFrequency class");
|
Q_ASSERT_X(false, "CAviationComFrequencyFormatter::formatQVariant", "No CFrequency class");
|
||||||
return "";
|
return emptyStringVariant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,17 +252,15 @@ namespace BlackGui
|
|||||||
{
|
{
|
||||||
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
return CPhysiqalQuantiyFormatter::displayRole(dataCVariant);
|
||||||
}
|
}
|
||||||
else
|
return emptyStringVariant();
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CVariant CStringFormatter::displayRole(const CVariant &dataCVariant) const
|
CVariant CStringFormatter::displayRole(const CVariant &dataCVariant) const
|
||||||
{
|
{
|
||||||
if (dataCVariant.canConvert<QString>()) { return dataCVariant; }
|
if (dataCVariant.canConvert<QString>()) { return dataCVariant; }
|
||||||
Q_ASSERT_X(false, "CStringFormatter", "no string value");
|
if (!dataCVariant.isValid()) { static const CVariant iv("invalid"); return iv; }
|
||||||
return CVariant();
|
const QString s("Invalid type '%1'");
|
||||||
|
return CVariant::from(s.arg(dataCVariant.typeName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Qt::ItemFlags CDelegateFormatter::flags(Qt::ItemFlags flags, bool editable) const
|
Qt::ItemFlags CDelegateFormatter::flags(Qt::ItemFlags flags, bool editable) const
|
||||||
@@ -304,11 +291,12 @@ namespace BlackGui
|
|||||||
CBoolLedFormatter::CBoolLedFormatter(const QString &onName, const QString &offName, int alignment) :
|
CBoolLedFormatter::CBoolLedFormatter(const QString &onName, const QString &offName, int alignment) :
|
||||||
CBoolTextFormatter(alignment, onName, offName, rolesDecorationAndToolTip())
|
CBoolTextFormatter(alignment, onName, offName, rolesDecorationAndToolTip())
|
||||||
{
|
{
|
||||||
|
// one time pixmap creation
|
||||||
CLedWidget *led = ledDefault();
|
CLedWidget *led = ledDefault();
|
||||||
led->setOn(true);
|
led->setOn(true);
|
||||||
this->m_pixmapOnLed = led->asPixmap();
|
m_pixmapOnLed = led->asPixmap();
|
||||||
led->setOn(false);
|
led->setOn(false);
|
||||||
this->m_pixmapOffLed = led->asPixmap();
|
m_pixmapOffLed = led->asPixmap();
|
||||||
delete led;
|
delete led;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -345,8 +333,8 @@ namespace BlackGui
|
|||||||
CBoolIconFormatter::CBoolIconFormatter(const CIcon &onIcon, const CIcon &offIcon, const QString &onName, const QString &offName, int alignment) :
|
CBoolIconFormatter::CBoolIconFormatter(const CIcon &onIcon, const CIcon &offIcon, const QString &onName, const QString &offName, int alignment) :
|
||||||
CBoolTextFormatter(alignment, onName, offName, rolesDecorationAndToolTip()), m_iconOn(onIcon), m_iconOff(offIcon)
|
CBoolTextFormatter(alignment, onName, offName, rolesDecorationAndToolTip()), m_iconOn(onIcon), m_iconOff(offIcon)
|
||||||
{
|
{
|
||||||
this->m_iconOn.setDescriptiveText(onName);
|
m_iconOn.setDescriptiveText(onName);
|
||||||
this->m_iconOff.setDescriptiveText(offName);
|
m_iconOff.setDescriptiveText(offName);
|
||||||
}
|
}
|
||||||
|
|
||||||
CVariant CBoolIconFormatter::displayRole(const CVariant &dataCVariant) const
|
CVariant CBoolIconFormatter::displayRole(const CVariant &dataCVariant) const
|
||||||
@@ -376,7 +364,7 @@ namespace BlackGui
|
|||||||
{
|
{
|
||||||
CAltitude alt(altitude.to<CAltitude>());
|
CAltitude alt(altitude.to<CAltitude>());
|
||||||
if (m_flightLevel) { alt.toFlightLevel(); }
|
if (m_flightLevel) { alt.toFlightLevel(); }
|
||||||
return alt.toQString(this->m_useI18n);
|
return alt.toQString(m_useI18n);
|
||||||
}
|
}
|
||||||
|
|
||||||
CColorFormatter::CColorFormatter(int alignment, bool i18n) : CDefaultFormatter(alignment, i18n, rolesDecorationAndToolTip())
|
CColorFormatter::CColorFormatter(int alignment, bool i18n) : CDefaultFormatter(alignment, i18n, rolesDecorationAndToolTip())
|
||||||
|
|||||||
@@ -113,6 +113,9 @@ namespace BlackGui
|
|||||||
//! Standard conversion
|
//! Standard conversion
|
||||||
virtual BlackMisc::CVariant keepStandardTypesConvertToStringOtherwise(const BlackMisc::CVariant &inputData) const;
|
virtual BlackMisc::CVariant keepStandardTypesConvertToStringOtherwise(const BlackMisc::CVariant &inputData) const;
|
||||||
|
|
||||||
|
//! Empty string CVariant
|
||||||
|
static const BlackMisc::CVariant &emptyStringVariant();
|
||||||
|
|
||||||
QList<int> m_supportedRoles = roleDisplay(); //!< supports decoration roles
|
QList<int> m_supportedRoles = roleDisplay(); //!< supports decoration roles
|
||||||
int m_alignment = -1; //!< alignment horizontal/vertically / Qt::Alignment
|
int m_alignment = -1; //!< alignment horizontal/vertically / Qt::Alignment
|
||||||
bool m_useI18n = true; //!< i18n?
|
bool m_useI18n = true; //!< i18n?
|
||||||
@@ -170,8 +173,8 @@ namespace BlackGui
|
|||||||
virtual Qt::ItemFlags flags(Qt::ItemFlags flags, bool editable) const override;
|
virtual Qt::ItemFlags flags(Qt::ItemFlags flags, bool editable) const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QString m_trueName = "true"; //!< displayed when true
|
const QString m_trueName = "true"; //!< displayed when true
|
||||||
QString m_falseName = "false"; //!< displayed when false
|
const QString m_falseName = "false"; //!< displayed when false
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Format as bool LED value
|
//! Format as bool LED value
|
||||||
|
|||||||
Reference in New Issue
Block a user