From f80d7e27d19c6ed42ee183ae5f5fac78589023f0 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Sat, 6 Dec 2014 16:31:33 +0000 Subject: [PATCH] refs #247 Using CVariant in blackgui. --- src/blackgui/components/settingscomponent.cpp | 6 +- .../components/settingssimulatorcomponent.cpp | 5 +- src/blackgui/models/columnformatters.cpp | 150 +++++++++--------- src/blackgui/models/columnformatters.h | 60 +++---- src/blackgui/models/columns.h | 8 +- src/blackgui/models/listmodelbase.cpp | 15 +- src/blackgui/models/listmodelbase.h | 6 +- .../models/namevariantpairlistmodel.cpp | 6 +- .../models/namevariantpairlistmodel.h | 4 +- src/blackgui/views/namevariantpairview.cpp | 2 +- src/blackgui/views/namevariantpairview.h | 2 +- src/blackgui/views/viewbase.cpp | 6 +- src/blackgui/views/viewbase.h | 7 +- 13 files changed, 135 insertions(+), 142 deletions(-) diff --git a/src/blackgui/components/settingscomponent.cpp b/src/blackgui/components/settingscomponent.cpp index 00bf39564..f427dbb27 100644 --- a/src/blackgui/components/settingscomponent.cpp +++ b/src/blackgui/components/settingscomponent.cpp @@ -162,11 +162,11 @@ namespace BlackGui QObject *sender = QObject::sender(); if (sender == this->ui->pb_SettingsTnRemoveServer) { - this->getIContextSettings()->value(path, CSettingUtilities::CmdRemove(), server.toQVariant()); + this->getIContextSettings()->value(path, CSettingUtilities::CmdRemove(), server.toCVariant()); } else if (sender == this->ui->pb_SettingsTnSaveServer) { - this->getIContextSettings()->value(path, CSettingUtilities::CmdUpdate(), server.toQVariant()); + this->getIContextSettings()->value(path, CSettingUtilities::CmdUpdate(), server.toCVariant()); } } @@ -186,7 +186,7 @@ namespace BlackGui void CSettingsComponent::ps_saveHotkeys() { const QString path = CSettingUtilities::appendPaths(IContextSettings::PathRoot(), IContextSettings::PathHotkeys()); - this->getIContextSettings()->value(path, CSettingUtilities::CmdUpdate(), this->ui->tvp_SettingsMiscHotkeys->derivedModel()->getContainer().toQVariant()); + this->getIContextSettings()->value(path, CSettingUtilities::CmdUpdate(), this->ui->tvp_SettingsMiscHotkeys->derivedModel()->getContainer().toCVariant()); } /* diff --git a/src/blackgui/components/settingssimulatorcomponent.cpp b/src/blackgui/components/settingssimulatorcomponent.cpp index eb25b50da..8b714bf8e 100644 --- a/src/blackgui/components/settingssimulatorcomponent.cpp +++ b/src/blackgui/components/settingssimulatorcomponent.cpp @@ -7,6 +7,7 @@ #include "blacksim/setsimulator.h" #include "blackmisc/settingutilities.h" #include "blackmisc/logmessage.h" +#include "blackmisc/variant.h" #include @@ -135,7 +136,7 @@ namespace BlackGui if (sender == this->ui->cb_TimeSync) { bool timeSync = this->ui->cb_TimeSync->isChecked(); - this->getIContextSettings()->value(CSettingUtilities::appendPaths(ps, CSettingsSimulator::ValueSyncTime()), CSettingUtilities::CmdUpdate(), QVariant(timeSync)); + this->getIContextSettings()->value(CSettingUtilities::appendPaths(ps, CSettingsSimulator::ValueSyncTime()), CSettingUtilities::CmdUpdate(), CVariant::from(timeSync)); } else if (sender == this->ui->le_TimeSyncOffset) { @@ -151,7 +152,7 @@ namespace BlackGui } else { - this->getIContextSettings()->value(CSettingUtilities::appendPaths(ps, CSettingsSimulator::ValueSyncTimeOffset()), CSettingUtilities::CmdUpdate(), ost.toQVariant()); + this->getIContextSettings()->value(CSettingUtilities::appendPaths(ps, CSettingsSimulator::ValueSyncTimeOffset()), CSettingUtilities::CmdUpdate(), ost.toCVariant()); } } } diff --git a/src/blackgui/models/columnformatters.cpp b/src/blackgui/models/columnformatters.cpp index 9c30fef18..3adf35230 100644 --- a/src/blackgui/models/columnformatters.cpp +++ b/src/blackgui/models/columnformatters.cpp @@ -20,57 +20,57 @@ namespace BlackGui namespace Models { - QVariant CDefaultFormatter::displayRole(const QVariant &dataQVariant) const + CVariant CDefaultFormatter::displayRole(const CVariant &dataCVariant) const { // seems to be absurd, but calls the correct methods on CValueObjects - // so QVariant -> QString -> QVariant is correct - if (static_cast(dataQVariant.type()) == QMetaType::QString) return dataQVariant; // shortcut - return BlackMisc::qVariantToString(dataQVariant, m_useI18n); + // so QVariant -> QString -> CVariant is correct + if (static_cast(dataCVariant.type()) == QMetaType::QString) return dataCVariant; // shortcut + return dataCVariant.toQString(m_useI18n); } - QVariant CDefaultFormatter::decorationRole(const QVariant &dataQVariant) const + CVariant CDefaultFormatter::decorationRole(const CVariant &dataCVariant) const { // direct return if type is already correct - if (static_cast(dataQVariant.type()) == QMetaType::QPixmap) + if (static_cast(dataCVariant.type()) == QMetaType::QPixmap) { - return dataQVariant; + return dataCVariant; } - else if (static_cast(dataQVariant.type()) == QMetaType::QIcon) + else if (static_cast(dataCVariant.type()) == QMetaType::QIcon) { - return dataQVariant; + return dataCVariant; } // convert to pixmap - if (static_cast(dataQVariant.type()) == QMetaType::QImage) + if (static_cast(dataCVariant.type()) == QMetaType::QImage) { - QImage img = dataQVariant.value(); - return QPixmap::fromImage(img); + QImage img = dataCVariant.value(); + return CVariant::from(QPixmap::fromImage(img)); } // Our CIcon class - if (dataQVariant.canConvert()) + if (dataCVariant.canConvert()) { - BlackMisc::CIcon i = dataQVariant.value(); - return i.toPixmap(); + BlackMisc::CIcon i = dataCVariant.value(); + return CVariant::from(i.toPixmap()); } // nope - return QPixmap(); + return CVariant::from(QPixmap()); } - QVariant CDefaultFormatter::alignmentRole() const + CVariant CDefaultFormatter::alignmentRole() const { if (!this->hasAlignment()) { - return QVariant(alignDefault()); // default + return CVariant::from(alignDefault()); // default } else { - return QVariant(m_alignment); + return CVariant::from(m_alignment); } } - QVariant CDefaultFormatter::data(int role, const QVariant &inputData) const + CVariant CDefaultFormatter::data(int role, const CVariant &inputData) const { Qt::ItemDataRole roleEnum = static_cast(role); @@ -78,8 +78,8 @@ namespace BlackGui if (roleEnum == Qt::TextAlignmentRole) return { alignmentRole() }; // checked - if (this->m_supportedRoles.isEmpty()) return QVariant(); - if (!this->m_supportedRoles.contains(role)) return QVariant(); + if (this->m_supportedRoles.isEmpty()) return CVariant(); + if (!this->m_supportedRoles.contains(role)) return CVariant(); switch (roleEnum) { case Qt::DisplayRole: @@ -94,52 +94,44 @@ namespace BlackGui default: break; } - return QVariant(); + return CVariant(); } - QVariant CPixmapFormatter::displayRole(const QVariant &dataQVariant) const + CVariant CPixmapFormatter::displayRole(const CVariant &dataCVariant) const { - Q_UNUSED(dataQVariant); + Q_UNUSED(dataCVariant); Q_ASSERT_X(false, "CPixmapFormatter", "this role should be disabled with pixmaps"); - return QVariant(); + return CVariant(); } - QVariant CPixmapFormatter::tooltipRole(const QVariant &dataQVariant) const + CVariant CPixmapFormatter::tooltipRole(const CVariant &dataCVariant) const { - if (dataQVariant.isNull()) return ""; - if (dataQVariant.canConvert()) + if (dataCVariant.isNull()) return ""; + if (dataCVariant.canConvert()) { - BlackMisc::CIcon icon = dataQVariant.value(); + BlackMisc::CIcon icon = dataCVariant.value(); return icon.getDescriptiveText(); } return ""; } - QVariant CValueObjectFormatter::displayRole(const QVariant &valueObject) const + CVariant CValueObjectFormatter::displayRole(const CVariant &valueObject) const { - if (valueObject.isNull()) return QVariant(); - const BlackMisc::CValueObject *cvo = BlackMisc::CValueObject::fromQVariant(valueObject); - Q_ASSERT(cvo); - if (!cvo) return QVariant(); - return QVariant(cvo->toQString(m_useI18n)); + return CVariant(valueObject.toQString(m_useI18n)); } - QVariant CValueObjectFormatter::decorationRole(const QVariant &valueObject) const + CVariant CValueObjectFormatter::decorationRole(const CVariant &valueObject) const { - if (valueObject.isNull()) return ""; - const BlackMisc::CValueObject *cvo = BlackMisc::CValueObject::fromQVariant(valueObject); - Q_ASSERT(cvo); - if (!cvo) return QPixmap(); - return QVariant(cvo->toPixmap()); + return CVariant(valueObject.toPixmap()); } - CDateTimeFormatter::CDateTimeFormatter(const QString formatString, int alignment, bool i18n) : + CDateTimeFormatter::CDateTimeFormatter(const QString &formatString, int alignment, bool i18n) : CDefaultFormatter(alignment, i18n, { Qt::DisplayRole }), m_formatString(formatString) { // void } - QVariant CDateTimeFormatter::displayRole(const QVariant &dateTime) const + CVariant CDateTimeFormatter::displayRole(const CVariant &dateTime) const { if (dateTime.isNull()) return ""; if (static_cast(dateTime.type()) == QMetaType::QDateTime) @@ -164,15 +156,15 @@ namespace BlackGui } } - QVariant CAirspaceDistanceFormatter::displayRole(const QVariant &dataQVariant) const + CVariant CAirspaceDistanceFormatter::displayRole(const CVariant &dataCVariant) const { - if (dataQVariant.canConvert()) + if (dataCVariant.canConvert()) { // special treatment for some cases - BlackMisc::PhysicalQuantities::CLength l = dataQVariant.value(); + BlackMisc::PhysicalQuantities::CLength l = dataCVariant.value(); if (!l.isNull() && (l.isPositiveWithEpsilonConsidered() || l.isZeroEpsilonConsidered())) { - return CPhysiqalQuantiyFormatter::displayRole(dataQVariant); + return CPhysiqalQuantiyFormatter::displayRole(dataCVariant); } else { @@ -186,15 +178,15 @@ namespace BlackGui } } - QVariant CComFrequencyFormatter::displayRole(const QVariant &dataQVariant) const + CVariant CComFrequencyFormatter::displayRole(const CVariant &dataCVariant) const { - if (dataQVariant.canConvert()) + if (dataCVariant.canConvert()) { // speical treatment for some cases - BlackMisc::PhysicalQuantities::CFrequency f = dataQVariant.value(); + BlackMisc::PhysicalQuantities::CFrequency f = dataCVariant.value(); if (BlackMisc::Aviation::CComSystem::isValidComFrequency(f)) { - return CPhysiqalQuantiyFormatter::displayRole(dataQVariant); + return CPhysiqalQuantiyFormatter::displayRole(dataCVariant); } else { @@ -208,13 +200,13 @@ namespace BlackGui } } - QVariant CAircraftSpeedFormatter::displayRole(const QVariant &dataQVariant) const + CVariant CAircraftSpeedFormatter::displayRole(const CVariant &dataCVariant) const { // special treatment for some cases - BlackMisc::PhysicalQuantities::CSpeed s = dataQVariant.value(); + BlackMisc::PhysicalQuantities::CSpeed s = dataCVariant.value(); if (!s.isNull() && (s.isPositiveWithEpsilonConsidered() || s.isZeroEpsilonConsidered())) { - return CPhysiqalQuantiyFormatter::displayRole(dataQVariant); + return CPhysiqalQuantiyFormatter::displayRole(dataCVariant); } else { @@ -222,22 +214,22 @@ namespace BlackGui } } - QVariant CStringFormatter::displayRole(const QVariant &dataQVariant) const + CVariant CStringFormatter::displayRole(const CVariant &dataCVariant) const { - if (dataQVariant.canConvert()) { return dataQVariant; } + if (dataCVariant.canConvert()) { return dataCVariant; } Q_ASSERT_X(false, "CStringFormatter", "no string value"); - return QVariant(); + return CVariant(); } - QVariant CBoolTextFormatter::displayRole(const QVariant &dataQVariant) const + CVariant CBoolTextFormatter::displayRole(const CVariant &dataCVariant) const { - if (dataQVariant.canConvert()) + if (dataCVariant.canConvert()) { - bool v = dataQVariant.toBool(); - return v ? QVariant(m_trueName) : QVariant(m_falseName); + bool v = dataCVariant.toBool(); + return v ? CVariant(m_trueName) : CVariant(m_falseName); } Q_ASSERT_X(false, "CBoolTextFormatter", "no boolean value"); - return QVariant(); + return CVariant(); } CBoolLedFormatter::CBoolLedFormatter(int alignment) : CBoolLedFormatter("on", "off", alignment) @@ -254,22 +246,22 @@ namespace BlackGui delete led; } - QVariant CBoolLedFormatter::displayRole(const QVariant &dataQVariant) const + CVariant CBoolLedFormatter::displayRole(const CVariant &dataCVariant) const { - Q_UNUSED(dataQVariant); + Q_UNUSED(dataCVariant); Q_ASSERT_X(false, "CBoolLedFormatter", "this role should be disabled with led boolean"); - return QVariant(); + return CVariant(); } - QVariant CBoolLedFormatter::decorationRole(const QVariant &dataQVariant) const + CVariant CBoolLedFormatter::decorationRole(const CVariant &dataCVariant) const { - if (dataQVariant.canConvert()) + if (dataCVariant.canConvert()) { - bool v = dataQVariant.toBool(); - return v ? m_pixmapOnLed : m_pixmapOffLed; + bool v = dataCVariant.toBool(); + return CVariant::from(v ? m_pixmapOnLed : m_pixmapOffLed); } Q_ASSERT_X(false, "CBoolLedFormatter", "no boolean value"); - return QVariant(); + return CVariant(); } CBoolIconFormatter::CBoolIconFormatter(int alignment) : @@ -287,22 +279,22 @@ namespace BlackGui this->m_iconOff.setDescriptiveText(offName); } - QVariant CBoolIconFormatter::displayRole(const QVariant &dataQVariant) const + CVariant CBoolIconFormatter::displayRole(const CVariant &dataCVariant) const { - Q_UNUSED(dataQVariant); + Q_UNUSED(dataCVariant); Q_ASSERT_X(false, "CBoolIconFormatter", "this role should be disabled with icon boolean"); - return QVariant(); + return CVariant(); } - QVariant CBoolIconFormatter::decorationRole(const QVariant &dataQVariant) const + CVariant CBoolIconFormatter::decorationRole(const CVariant &dataCVariant) const { - if (dataQVariant.canConvert()) + if (dataCVariant.canConvert()) { - bool v = dataQVariant.toBool(); - return v ? m_iconOn.toPixmap() : m_iconOff.toPixmap(); + bool v = dataCVariant.toBool(); + return CVariant::from(v ? m_iconOn.toPixmap() : m_iconOff.toPixmap()); } Q_ASSERT_X(false, "CBoolIconFormatter", "no boolean value"); - return QVariant(); + return CVariant(); } } } diff --git a/src/blackgui/models/columnformatters.h b/src/blackgui/models/columnformatters.h index c4ba1c95a..cdb4c85ca 100644 --- a/src/blackgui/models/columnformatters.h +++ b/src/blackgui/models/columnformatters.h @@ -36,29 +36,29 @@ namespace BlackGui //! Virtual destructor virtual ~CDefaultFormatter() {} - //! Value provided as QVariant, formatter converts to QString. + //! Value provided as CVariant, formatter converts to QString. //! Used with Qt::DisplayRole displaying a text. - virtual QVariant displayRole(const QVariant &dataQVariant) const; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const; - //! Value provided as QVariant, formatter converts to QString. + //! Value provided as CVariant, formatter converts to QString. //! Used with Qt::ToolTipRole displaying a text. - virtual QVariant tooltipRole(const QVariant &value) const + virtual BlackMisc::CVariant tooltipRole(const BlackMisc::CVariant &value) const { return displayRole(value); } - //! Value provided as QVariant, formatted as icon (Qt docu: "The data to be rendered as a decoration in the form of an icon"). + //! Value provided as CVariant, formatted as icon (Qt docu: "The data to be rendered as a decoration in the form of an icon"). //! Used with Qt::DecorationRole displaying an icon, method returns pixmap, icon, or color (see docu) - virtual QVariant decorationRole(const QVariant &dataQVariant) const; + virtual BlackMisc::CVariant decorationRole(const BlackMisc::CVariant &dataCVariant) const; - //! Qt::Alignment (as QVariant) - virtual QVariant alignmentRole() const; + //! Qt::Alignment (as CVariant) + virtual BlackMisc::CVariant alignmentRole() const; //! Alignment available? virtual bool hasAlignment() const { return m_alignment >= 0; } - //! Receives QVariant of column data, and returns QVariant wrapping string, pixmap, or other values depending on role - virtual QVariant data(int role, const QVariant &inputData) const; + //! Receives CVariant of column data, and returns CVariant wrapping string, pixmap, or other values depending on role + virtual BlackMisc::CVariant data(int role, const BlackMisc::CVariant &inputData) const; //! Default value static int alignDefault() { return alignLeftVCenter(); } @@ -92,10 +92,10 @@ namespace BlackGui CPixmapFormatter(int alignment = alignDefault(), const QList &supportedRoles = roleDecorationAndToolTip()) : CDefaultFormatter(alignment, false, supportedRoles) {} //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override; //! \copydoc CDefaultFormatter::tooltipRole - virtual QVariant tooltipRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant tooltipRole(const BlackMisc::CVariant &dataCVariant) const override; }; //! String formatter, if known the variant already contains the appropriate string @@ -106,7 +106,7 @@ namespace BlackGui CStringFormatter(int alignment = alignDefault()) : CDefaultFormatter(alignment, false, roleDisplay()) {} //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override; }; //! Bool value, format as text @@ -118,7 +118,7 @@ namespace BlackGui CDefaultFormatter(alignment, false, supportedRoles), m_trueName(trueName), m_falseName(falseName) {} //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override; protected: QString m_trueName = "true"; //!< displayed when true @@ -137,15 +137,15 @@ namespace BlackGui CBoolLedFormatter(const QString &onName, const QString &offName, int alignment = alignDefault()); //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override; //! Display the LED - virtual QVariant decorationRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant decorationRole(const BlackMisc::CVariant &dataCVariant) const override; //! \copydoc CDefaultFormatter::tooltipRole - virtual QVariant tooltipRole(const QVariant &dataQVariant) const override + virtual BlackMisc::CVariant tooltipRole(const BlackMisc::CVariant &dataCVariant) const override { - return CBoolTextFormatter::displayRole(dataQVariant); + return CBoolTextFormatter::displayRole(dataCVariant); } //! Default LED @@ -174,15 +174,15 @@ namespace BlackGui CBoolIconFormatter(BlackMisc::CIcons::IconIndex onIcon, BlackMisc::CIcons::IconIndex offIcon, const QString &onName, const QString &offName, int alignment = alignDefault()); //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override; //! Display the icon - virtual QVariant decorationRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant decorationRole(const BlackMisc::CVariant &dataCVariant) const override; //! \copydoc CDefaultFormatter::tooltipRole - virtual QVariant tooltipRole(const QVariant &dataQVariant) const override + virtual BlackMisc::CVariant tooltipRole(const BlackMisc::CVariant &dataCVariant) const override { - return CBoolTextFormatter::displayRole(dataQVariant); + return CBoolTextFormatter::displayRole(dataCVariant); } protected: @@ -198,10 +198,10 @@ namespace BlackGui CValueObjectFormatter(int alignment = alignDefault(), bool i18n = true, QList supportedRoles = {Qt::DisplayRole}) : CDefaultFormatter(alignment, i18n, supportedRoles) {} //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &valueObject) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &valueObject) const override; //! \copydoc CDefaultFormatter::asPixmap - virtual QVariant decorationRole(const QVariant &valueObject) const; + virtual BlackMisc::CVariant decorationRole(const BlackMisc::CVariant &valueObject) const; }; //! Formatter when column contains QDateTime, QDate or QTime @@ -209,10 +209,10 @@ namespace BlackGui { public: //! Constructor - CDateTimeFormatter(const QString formatString = formatYmd(), int alignment = alignDefault(), bool i18n = true); + CDateTimeFormatter(const QString &formatString = formatYmd(), int alignment = alignDefault(), bool i18n = true); //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &dateTime) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dateTime) const override; //! Year month day static const QString &formatYmd() { static const QString f = "yyyy-MM-dd"; return f; } @@ -238,7 +238,7 @@ namespace BlackGui CPhysiqalQuantiyFormatter(MU unit = MU::defaultUnit(), int digits = 2, int alignment = alignRightVCenter(), bool withUnit = true, bool i18n = true, QList supportedRoles = { Qt::DisplayRole }) : CValueObjectFormatter(alignment, i18n, supportedRoles), m_unit(unit), m_digits(digits), m_withUnit(withUnit) {} //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &physicalQuantity) const override + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &physicalQuantity) const override { if (physicalQuantity.canConvert()) { @@ -279,7 +279,7 @@ namespace BlackGui CComFrequencyFormatter(int alignment = alignRightVCenter(), bool withUnit = true, bool i18n = true) : CPhysiqalQuantiyFormatter(BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz(), 3, alignment, withUnit, i18n) {} //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override; }; //! Angle in degrees @@ -306,7 +306,7 @@ namespace BlackGui CAirspaceDistanceFormatter(int alignment = alignRightVCenter(), bool withUnit = true, bool i18n = true) : CPhysiqalQuantiyFormatter(BlackMisc::PhysicalQuantities::CLengthUnit::NM(), 1, alignment, withUnit, i18n) {} //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override; }; //! Airspace distance @@ -317,7 +317,7 @@ namespace BlackGui CAircraftSpeedFormatter(int alignment = alignRightVCenter(), bool withUnit = true, bool i18n = true) : CPhysiqalQuantiyFormatter(BlackMisc::PhysicalQuantities::CSpeedUnit::kts(), 0, alignment, withUnit, i18n) {} //! \copydoc CDefaultFormatter::displayRole - virtual QVariant displayRole(const QVariant &dataQVariant) const override; + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &dataCVariant) const override; }; } // namespace diff --git a/src/blackgui/models/columns.h b/src/blackgui/models/columns.h index 433678866..55f7abfd8 100644 --- a/src/blackgui/models/columns.h +++ b/src/blackgui/models/columns.h @@ -55,8 +55,8 @@ namespace BlackGui //! Formatter const CDefaultFormatter *getFormatter() const { return this->m_formatter.data(); } - //! Aligment as QVariant - QVariant getAlignment() const; + //! Aligment as CVariant + BlackMisc::CVariant getAlignment() const; //! Column name QString getColumnName(bool i18n = false) const; @@ -149,8 +149,8 @@ namespace BlackGui return column >= 0 && column < this->m_columns.size(); } - //! Aligment as QVariant - QVariant getAlignment(const QModelIndex &index) const; + //! Aligment as CVariant + BlackMisc::CVariant getAlignment(const QModelIndex &index) const; //! Translation context const QString &getTranslationContext() const { return m_translationContext; } diff --git a/src/blackgui/models/listmodelbase.cpp b/src/blackgui/models/listmodelbase.cpp index ed5699a8a..eca3a60d5 100644 --- a/src/blackgui/models/listmodelbase.cpp +++ b/src/blackgui/models/listmodelbase.cpp @@ -118,7 +118,7 @@ namespace BlackGui //! Formatted data ObjectType obj = this->m_container[index.row()]; BlackMisc::CPropertyIndex propertyIndex = this->columnToPropertyIndex(index.column()); - return formatter->data(role, obj.propertyByIndex(propertyIndex)); + return formatter->data(role, obj.propertyByIndex(propertyIndex)).toQVariant(); } /* @@ -171,7 +171,7 @@ namespace BlackGui { ContainerType sortedContainer = this->sortContainerByColumn(container, sortColumn, sortOrder); QMetaObject::invokeMethod(this, "updateContainer", - Q_ARG(QVariant, sortedContainer.toQVariant()), Q_ARG(bool, false)); + Q_ARG(BlackMisc::CVariant, sortedContainer.toCVariant()), Q_ARG(bool, false)); }); worker->then(this, &CListModelBase::asyncUpdateFinished); return worker; @@ -265,10 +265,10 @@ namespace BlackGui /* * Update on container */ - template int CListModelBase::performUpdateContainer(const QVariant &variant, bool sort) + template int CListModelBase::performUpdateContainer(const BlackMisc::CVariant &variant, bool sort) { ContainerType c; - c.convertFromQVariant(variant); + c.convertFromCVariant(variant); return this->update(c, sort); } @@ -303,10 +303,9 @@ namespace BlackGui // sort the values const auto p = [ = ](const ObjectType & a, const ObjectType & b) -> bool { - QVariant aQv = a.propertyByIndex(propertyIndex); - QVariant bQv = b.propertyByIndex(propertyIndex); - int compare = BlackMisc::compareQVariants(aQv, bQv); - return (order == Qt::AscendingOrder) ? (compare < 0) : (compare > 0); + BlackMisc::CVariant aQv = a.propertyByIndex(propertyIndex); + BlackMisc::CVariant bQv = b.propertyByIndex(propertyIndex); + return (order == Qt::AscendingOrder) ? (aQv < bQv) : (bQv < aQv); }; // KWB: qDebug() will be removed soon diff --git a/src/blackgui/models/listmodelbase.h b/src/blackgui/models/listmodelbase.h index 718c29441..4aaa411f7 100644 --- a/src/blackgui/models/listmodelbase.h +++ b/src/blackgui/models/listmodelbase.h @@ -90,7 +90,7 @@ namespace BlackGui //! Helper method with template free signature //! \param variant container is transferred in variant //! \param sort - int updateContainer(const QVariant &variant, bool sort) + int updateContainer(const BlackMisc::CVariant &variant, bool sort) { return this->performUpdateContainer(variant, sort); } @@ -109,7 +109,7 @@ namespace BlackGui } //! Helper method with template free signature - virtual int performUpdateContainer(const QVariant &variant, bool sort) = 0; + virtual int performUpdateContainer(const BlackMisc::CVariant &variant, bool sort) = 0; CColumns m_columns; //!< columns metadata int m_sortedColumn; //!< current sort column @@ -208,7 +208,7 @@ namespace BlackGui { } //! \copydoc CModelBaseNonTemplate::performUpdateContainer - virtual int performUpdateContainer(const QVariant &variant, bool sort) override; + virtual int performUpdateContainer(const BlackMisc::CVariant &variant, bool sort) override; }; } // namespace diff --git a/src/blackgui/models/namevariantpairlistmodel.cpp b/src/blackgui/models/namevariantpairlistmodel.cpp index 00953b06c..b864b2c7b 100644 --- a/src/blackgui/models/namevariantpairlistmodel.cpp +++ b/src/blackgui/models/namevariantpairlistmodel.cpp @@ -40,7 +40,7 @@ namespace BlackGui this->m_sortOrder = Qt::AscendingOrder; } - bool CNameVariantPairModel::addOrUpdateByName(const QString &name, const QVariant &value, const CIcon &icon, bool skipEqualValues) + bool CNameVariantPairModel::addOrUpdateByName(const QString &name, const BlackMisc::CVariant &value, const CIcon &icon, bool skipEqualValues) { int index = this->getRowIndexForName(name); CNameVariantPair pair(name, value, icon); @@ -79,13 +79,13 @@ namespace BlackGui return this->m_container.containsName(name); } - bool CNameVariantPairModel::containsNameValue(const QString &name, const QVariant &value) const + bool CNameVariantPairModel::containsNameValue(const QString &name, const BlackMisc::CVariant &value) const { int rowIndex = this->getRowIndexForName(name); if (rowIndex < 0) return false; QModelIndex i = this->index(rowIndex, 0); const CNameVariantPair cv = this->at(i); - return BlackMisc::equalQVariants(value, cv.toQVariant()); + return value == cv.toCVariant(); } } // namespace } // namespace diff --git a/src/blackgui/models/namevariantpairlistmodel.h b/src/blackgui/models/namevariantpairlistmodel.h index 0659080d2..42b7dd9df 100644 --- a/src/blackgui/models/namevariantpairlistmodel.h +++ b/src/blackgui/models/namevariantpairlistmodel.h @@ -46,10 +46,10 @@ namespace BlackGui bool containsName(const QString &name) const; //! Contains name / value? - bool containsNameValue(const QString &name, const QVariant &value) const; + bool containsNameValue(const QString &name, const BlackMisc::CVariant &value) const; //! Add our update a value - bool addOrUpdateByName(const QString &name, const QVariant &value, const BlackMisc::CIcon &icon, bool skipEqualValues); + bool addOrUpdateByName(const QString &name, const BlackMisc::CVariant &value, const BlackMisc::CIcon &icon, bool skipEqualValues); //! Current row index of given name int getRowIndexForName(const QString &name) const; diff --git a/src/blackgui/views/namevariantpairview.cpp b/src/blackgui/views/namevariantpairview.cpp index 485afbdd8..430644770 100644 --- a/src/blackgui/views/namevariantpairview.cpp +++ b/src/blackgui/views/namevariantpairview.cpp @@ -29,7 +29,7 @@ namespace BlackGui this->m_model->setIconMode(withIcon); } - bool CNameVariantPairView::addOrUpdateByName(const QString &name, const QVariant &value, const CIcon &icon, bool resize, bool skipEqualValues) + bool CNameVariantPairView::addOrUpdateByName(const QString &name, const BlackMisc::CVariant &value, const CIcon &icon, bool resize, bool skipEqualValues) { Q_ASSERT(this->m_model); bool changed = this->m_model->addOrUpdateByName(name, value, icon, skipEqualValues); diff --git a/src/blackgui/views/namevariantpairview.h b/src/blackgui/views/namevariantpairview.h index 9e9f939ec..370433c8c 100644 --- a/src/blackgui/views/namevariantpairview.h +++ b/src/blackgui/views/namevariantpairview.h @@ -31,7 +31,7 @@ namespace BlackGui void setIconMode(bool withIcon); //! Update or add value, QVariant version - bool addOrUpdateByName(const QString &name, const QVariant &value, const BlackMisc::CIcon &icon = BlackMisc::CIcon(), bool performResizing = true, bool skipEqualValues = true); + bool addOrUpdateByName(const QString &name, const BlackMisc::CVariant &value, const BlackMisc::CIcon &icon = BlackMisc::CIcon(), bool performResizing = true, bool skipEqualValues = true); //! Remove by name void removeByName(const QString &name, bool performResizing = true); diff --git a/src/blackgui/views/viewbase.cpp b/src/blackgui/views/viewbase.cpp index 50e18c587..8519a8203 100644 --- a/src/blackgui/views/viewbase.cpp +++ b/src/blackgui/views/viewbase.cpp @@ -167,7 +167,7 @@ namespace BlackGui { ContainerType sortedContainer = model->sortContainerByColumn(container, sortColumn, sortOrder); QMetaObject::invokeMethod(this, "updateContainer", - Q_ARG(QVariant, sortedContainer.toQVariant()), Q_ARG(bool, false), Q_ARG(bool, resize)); + Q_ARG(BlackMisc::CVariant, sortedContainer.toCVariant()), Q_ARG(bool, false), Q_ARG(bool, resize)); }); worker->then(this, &CViewBase::asyncUpdateFinished); return worker; @@ -250,10 +250,10 @@ namespace BlackGui } } - template int CViewBase::performUpdateContainer(const QVariant &variant, bool sort, bool resize) + template int CViewBase::performUpdateContainer(const BlackMisc::CVariant &variant, bool sort, bool resize) { ContainerType c; - c.convertFromQVariant(variant); + c.convertFromCVariant(variant); return this->updateContainer(c, sort, resize); } diff --git a/src/blackgui/views/viewbase.h b/src/blackgui/views/viewbase.h index dd4929e87..76a0f83e4 100644 --- a/src/blackgui/views/viewbase.h +++ b/src/blackgui/views/viewbase.h @@ -14,6 +14,7 @@ #include "blackmisc/icons.h" #include "blackmisc/worker.h" +#include "blackmisc/variant.h" #include #include #include @@ -101,7 +102,7 @@ namespace BlackGui //! \param variant contains the container //! \param sort //! \param performResizing - virtual int performUpdateContainer(const QVariant &variant, bool sort, bool performResizing) = 0; + virtual int performUpdateContainer(const BlackMisc::CVariant &variant, bool sort, bool performResizing) = 0; //! Skip resizing because of size? virtual bool reachedResizeThreshold() const = 0; @@ -122,7 +123,7 @@ namespace BlackGui protected slots: //! Helper method with template free signature serving as callback from threaded worker - int updateContainer(const QVariant &variant, bool sort, bool resize) + int updateContainer(const BlackMisc::CVariant &variant, bool sort, bool resize) { return this->performUpdateContainer(variant, sort, resize); } @@ -214,7 +215,7 @@ namespace BlackGui virtual void performResizeToContents() override; //! \copydoc CViewBaseNonTemplate::performUpdateContainer - virtual int performUpdateContainer(const QVariant &variant, bool sort, bool performResizing) override; + virtual int performUpdateContainer(const BlackMisc::CVariant &variant, bool sort, bool performResizing) override; }; } // namespace