diff --git a/src/blackgui/components/atcbuttoncomponent.cpp b/src/blackgui/components/atcbuttoncomponent.cpp index 910ec6f94..03e3103c1 100644 --- a/src/blackgui/components/atcbuttoncomponent.cpp +++ b/src/blackgui/components/atcbuttoncomponent.cpp @@ -76,7 +76,7 @@ namespace BlackGui QPushButton *button = new QPushButton(this); button->setText(station.getCallsignAsString()); - if (m_withIcons) { button->setIcon(station.toPixmap()); } + if (m_withIcons) { button->setIcon(CIcon(station.toIcon()).toQIcon()); } QObject::connect(button, &QPushButton::released, this, &CAtcButtonComponent::onButtonClicked); const CVariant atcv = CVariant::fromValue(station); layout->addWidget(button, row, col++); diff --git a/src/blackgui/components/colorselector.cpp b/src/blackgui/components/colorselector.cpp index 4b9dbe636..5fe07a1a4 100644 --- a/src/blackgui/components/colorselector.cpp +++ b/src/blackgui/components/colorselector.cpp @@ -72,7 +72,7 @@ namespace BlackGui else { ui->le_Color->setText(color.hex()); - ui->lbl_ColorIcon->setPixmap(color.toPixmap()); + ui->lbl_ColorIcon->setPixmap(CIcon(color.toIcon())); m_lastColor = color; } emit colorChanged(color); @@ -176,7 +176,7 @@ namespace BlackGui mimeData->setColorData(QVariant::fromValue(c.toQColor())); drag->setMimeData(mimeData); - drag->setPixmap(c.toPixmap()); + drag->setPixmap(CIcon(c.toIcon())); Qt::DropAction dropAction = drag->exec(Qt::CopyAction); Q_UNUSED(dropAction); diff --git a/src/blackgui/components/dbcountryselectorcomponent.cpp b/src/blackgui/components/dbcountryselectorcomponent.cpp index bdf54b319..b1cea161f 100644 --- a/src/blackgui/components/dbcountryselectorcomponent.cpp +++ b/src/blackgui/components/dbcountryselectorcomponent.cpp @@ -62,7 +62,7 @@ namespace BlackGui { ui->le_CountryIso->setText(country.getIsoCode()); ui->le_CountryName->setText(country.getName()); - ui->lbl_CountryIcon->setPixmap(country.toPixmap()); + ui->lbl_CountryIcon->setPixmap(CIcon(country.toIcon())); if (country != m_currentCountry) { m_currentCountry = country; diff --git a/src/blackgui/components/serverlistselector.cpp b/src/blackgui/components/serverlistselector.cpp index 2fe6baee0..4ea82690b 100644 --- a/src/blackgui/components/serverlistselector.cpp +++ b/src/blackgui/components/serverlistselector.cpp @@ -99,7 +99,7 @@ namespace BlackGui } else { - this->addItem(country.toPixmap(), d); + this->addItem(CIcon(country.toIcon()).toPixmap(), d); } } else diff --git a/src/blackgui/components/statusmessageform.cpp b/src/blackgui/components/statusmessageform.cpp index 240c14c0a..89d06aaa7 100644 --- a/src/blackgui/components/statusmessageform.cpp +++ b/src/blackgui/components/statusmessageform.cpp @@ -40,7 +40,7 @@ namespace BlackGui void CStatusMessageForm::setValue(const CStatusMessage &message) { ui->te_Message->setPlainText(message.getMessage()); - ui->lbl_SeverityIcon->setPixmap(message.toPixmap()); + ui->lbl_SeverityIcon->setPixmap(CIcon(message.toIcon())); const QString hrc(message.getHumanReadablePattern()); if (hrc.isEmpty()) { diff --git a/src/blackgui/components/statusmessageformsmall.cpp b/src/blackgui/components/statusmessageformsmall.cpp index 9db117a3f..c8de2fea6 100644 --- a/src/blackgui/components/statusmessageformsmall.cpp +++ b/src/blackgui/components/statusmessageformsmall.cpp @@ -38,7 +38,7 @@ namespace BlackGui void CStatusMessageFormSmall::setValue(const CStatusMessage &message) { ui->te_Message->setPlainText(message.getMessage()); - ui->lbl_SeverityIcon->setPixmap(message.toPixmap()); + ui->lbl_SeverityIcon->setPixmap(CIcon(message.toIcon())); ui->le_Categories->setText(message.getHumanOrTechnicalCategoriesAsString()); ui->le_Severity->setText(message.getSeverityAsString()); ui->le_Timestamp->setText(message.getFormattedUtcTimestampYmdhms()); diff --git a/src/blackgui/components/textmessagecomponent.cpp b/src/blackgui/components/textmessagecomponent.cpp index bd2ee47b6..e817b76e7 100644 --- a/src/blackgui/components/textmessagecomponent.cpp +++ b/src/blackgui/components/textmessagecomponent.cpp @@ -491,7 +491,7 @@ namespace BlackGui if (supervisor) { //! \fixme hardcoded stylesheet color - bar->setTabIcon(index, callsign.toPixmap()); + bar->setTabIcon(index, CIcon(callsign.toIcon()).toQIcon()); bar->setTabTextColor(index, QColor(Qt::yellow)); } ui->tw_TextMessages->setCurrentIndex(index); diff --git a/src/blackgui/components/updateinfocomponent.cpp b/src/blackgui/components/updateinfocomponent.cpp index 3a8827a9b..af41b8f34 100644 --- a/src/blackgui/components/updateinfocomponent.cpp +++ b/src/blackgui/components/updateinfocomponent.cpp @@ -106,7 +106,7 @@ namespace BlackGui ui->cb_Platforms->clear(); for (const CPlatform &platform : platforms) { - ui->cb_Platforms->insertItem(i++, platform.toPixmap(), platform.getPlatformName()); + ui->cb_Platforms->insertItem(i++, CIcon(platform.toIcon()).toPixmap(), platform.getPlatformName()); } if (platforms.contains(settings.last())) { ui->cb_Platforms->setCurrentText(settings.last()); } else if (platforms.contains(CPlatform::currentPlatform().getPlatformName())) { ui->cb_Platforms->setCurrentText(CPlatform::currentPlatform().getPlatformName()); } @@ -116,7 +116,7 @@ namespace BlackGui ui->cb_Channels->clear(); for (const CDistribution &distribution : distributions) { - ui->cb_Channels->insertItem(i++, distribution.getRestrictionIcon().toPixmap(), distribution.getChannel()); + ui->cb_Channels->insertItem(i++, CIcon(distribution.getRestrictionIcon()).toPixmap(), distribution.getChannel()); } if (distributions.containsChannel(settings.front())) { ui->cb_Channels->setCurrentText(settings.front()); } diff --git a/src/blackgui/ecosystemcombobox.cpp b/src/blackgui/ecosystemcombobox.cpp index 071a07dec..16770f81f 100644 --- a/src/blackgui/ecosystemcombobox.cpp +++ b/src/blackgui/ecosystemcombobox.cpp @@ -49,7 +49,7 @@ namespace BlackGui this->clear(); for (const CEcosystem &e : m_systems) { - this->addItem(e.toIcon().toPixmap(), e.getSystemString()); + this->addItem(BlackMisc::CIcon(e.toIcon()).toPixmap(), e.getSystemString()); } } } // ns diff --git a/src/blackgui/editors/airlineicaoform.cpp b/src/blackgui/editors/airlineicaoform.cpp index fc095f2a4..d1a7d7543 100644 --- a/src/blackgui/editors/airlineicaoform.cpp +++ b/src/blackgui/editors/airlineicaoform.cpp @@ -74,7 +74,7 @@ namespace BlackGui ui->cb_Military->setChecked(icao.isMilitary()); ui->country_Selector->setCountry(icao.getCountry()); - const QPixmap pm = icao.toPixmap(); + const QPixmap pm = CIcon(icao.toIcon()); if (pm.width() < 125) { ui->lbl_AirlineIcon->setPixmap(pm); diff --git a/src/blackgui/filters/statusmessagefilterbar.cpp b/src/blackgui/filters/statusmessagefilterbar.cpp index 77dc6eebd..7b87d62f7 100644 --- a/src/blackgui/filters/statusmessagefilterbar.cpp +++ b/src/blackgui/filters/statusmessagefilterbar.cpp @@ -50,17 +50,17 @@ namespace BlackGui { CStatusMessage msg; msg.setSeverity(CStatusMessage::SeverityError); - ui->rb_Error->setIcon(msg.toIcon().toQIcon()); + ui->rb_Error->setIcon(CIcon(msg.toIcon()).toQIcon()); ui->rb_Error->setToolTip(msg.getSeverityAsString()); ui->rb_Error->setText(oneCharacterText ? msg.getSeverityAsString().left(1) : ""); msg.setSeverity(CStatusMessage::SeverityWarning); - ui->rb_Warning->setIcon(msg.toIcon().toQIcon()); + ui->rb_Warning->setIcon(CIcon(msg.toIcon()).toQIcon()); ui->rb_Warning->setToolTip(msg.getSeverityAsString()); ui->rb_Warning->setText(oneCharacterText ? msg.getSeverityAsString().left(1) : ""); msg.setSeverity(CStatusMessage::SeverityInfo); - ui->rb_Info->setIcon(msg.toIcon().toQIcon()); + ui->rb_Info->setIcon(CIcon(msg.toIcon()).toQIcon()); ui->rb_Info->setToolTip(msg.getSeverityAsString()); ui->rb_Info->setText(oneCharacterText ? msg.getSeverityAsString().left(1) : ""); } diff --git a/src/blackgui/managedstatusbar.cpp b/src/blackgui/managedstatusbar.cpp index c954299ae..70962bd31 100644 --- a/src/blackgui/managedstatusbar.cpp +++ b/src/blackgui/managedstatusbar.cpp @@ -112,7 +112,7 @@ namespace BlackGui this->show(); m_timerStatusBar.start(3000); // start / restart - m_statusBarIcon->setPixmap(statusMessage.toPixmap()); + m_statusBarIcon->setPixmap(CIcon(statusMessage.toIcon())); // restrict size for own status bars const QSize size = m_statusBar->window()->size(); diff --git a/src/blackgui/models/columnformatters.cpp b/src/blackgui/models/columnformatters.cpp index 508bf6f40..955a8725e 100644 --- a/src/blackgui/models/columnformatters.cpp +++ b/src/blackgui/models/columnformatters.cpp @@ -421,7 +421,7 @@ namespace BlackGui { const CRgbColor rgbColor(dataCVariant.to()); if (!rgbColor.isValid()) { return emptyPixmapVariant(); } - return CVariant::fromValue(rgbColor.toPixmap()); + return CVariant::fromValue(CIcon(rgbColor.toIcon()).toPixmap()); } CVariant CColorFormatter::tooltipRole(const CVariant &dataCVariant) const diff --git a/src/blackmisc/applicationinfo.cpp b/src/blackmisc/applicationinfo.cpp index 833a4e8e4..86d51c595 100644 --- a/src/blackmisc/applicationinfo.cpp +++ b/src/blackmisc/applicationinfo.cpp @@ -94,17 +94,17 @@ namespace BlackMisc return QStringLiteral("{ %1, %2, %3, %4 }").arg(this->getApplicationAsString(), m_exePath, m_version, m_process.convertToQString(i18n)); } - CIcon CApplicationInfo::toIcon() const + CIcons::IconIndex CApplicationInfo::toIcon() const { switch (getApplication()) { - case Laucher: return CIconList::allIcons().findByIndex(CIcons::SwiftLauncher16); - case PilotClientCore: return CIconList::allIcons().findByIndex(CIcons::SwiftCore16); - case PilotClientGui: return CIconList::allIcons().findByIndex(CIcons::Swift16); - case MappingTool: return CIconList::allIcons().findByIndex(CIcons::SwiftDatabase16); + case Laucher: return CIcons::SwiftLauncher16; + case PilotClientCore: return CIcons::SwiftCore16; + case PilotClientGui: return CIcons::Swift16; + case MappingTool: return CIcons::SwiftDatabase16; default: break; } - return CIconList::allIcons().findByIndex(CIcons::StandardIconUnknown16); + return CIcons::StandardIconUnknown16; } CVariant CApplicationInfo::propertyByIndex(const CPropertyIndex &index) const diff --git a/src/blackmisc/applicationinfo.h b/src/blackmisc/applicationinfo.h index 464941220..eee33a3fd 100644 --- a/src/blackmisc/applicationinfo.h +++ b/src/blackmisc/applicationinfo.h @@ -134,7 +134,7 @@ namespace BlackMisc QString convertToQString(bool i18n = false) const; //! \copydoc BlackMisc::Mixin::Icon::toIcon() - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const CPropertyIndex &index) const; diff --git a/src/blackmisc/aviation/airlineicaocode.cpp b/src/blackmisc/aviation/airlineicaocode.cpp index 79c685bb8..15393c593 100644 --- a/src/blackmisc/aviation/airlineicaocode.cpp +++ b/src/blackmisc/aviation/airlineicaocode.cpp @@ -175,15 +175,15 @@ namespace BlackMisc return this->hasValidDesignator() && this->hasValidCountry() && this->hasName(); } - CIcon CAirlineIcaoCode::toIcon() const + CIcons::IconIndex CAirlineIcaoCode::toIcon() const { - if (this->hasValidDbKey() && CAirlineIcaoCode::iconIds().contains(this->getDbKey())) - { - static const QString p("airlines/%1_%2.png"); - const QString n(p.arg(this->getDbKey(), 5, 10, QChar('0')).arg(this->getDesignator())); - return CIcon(n, this->convertToQString()); - } - return CIcon::iconByIndex(CIcons::StandardIconEmpty); + //if (this->hasValidDbKey() && CAirlineIcaoCode::iconIds().contains(this->getDbKey())) + //{ + // static const QString p("airlines/%1_%2.png"); + // const QString n(p.arg(this->getDbKey(), 5, 10, QChar('0')).arg(this->getDesignator())); + // return CIcon(n, this->convertToQString()); + //} + return CIcons::StandardIconEmpty; } QString CAirlineIcaoCode::getIconResourcePath() const diff --git a/src/blackmisc/aviation/airlineicaocode.h b/src/blackmisc/aviation/airlineicaocode.h index 0db536288..7572d7b53 100644 --- a/src/blackmisc/aviation/airlineicaocode.h +++ b/src/blackmisc/aviation/airlineicaocode.h @@ -209,7 +209,7 @@ namespace BlackMisc CAirlineIcaoCode thisOrCallsignCode(const CCallsign &callsign) const; //! \copydoc Mixin::Icon::toIcon - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! \copydoc Mixin::String::toQString QString convertToQString(bool i18n = false) const; diff --git a/src/blackmisc/aviation/altitude.cpp b/src/blackmisc/aviation/altitude.cpp index efb6b9785..3cbee082a 100644 --- a/src/blackmisc/aviation/altitude.cpp +++ b/src/blackmisc/aviation/altitude.cpp @@ -403,9 +403,9 @@ namespace BlackMisc return e; } - CIcon CAltitude::toIcon() const + CIcons::IconIndex CAltitude::toIcon() const { - return BlackMisc::CIcon::iconByIndex(CIcons::GeoPosition); + return CIcons::GeoPosition; } int CAltitude::compare(const CAltitude &otherAltitude) const diff --git a/src/blackmisc/aviation/altitude.h b/src/blackmisc/aviation/altitude.h index 28a54f5bb..c3575b42b 100644 --- a/src/blackmisc/aviation/altitude.h +++ b/src/blackmisc/aviation/altitude.h @@ -193,7 +193,7 @@ namespace BlackMisc static QString fpAltitudeExamples(); //! \copydoc BlackMisc::Mixin::Icon::toIcon - BlackMisc::CIcon toIcon() const; + BlackMisc::CIcons::IconIndex toIcon() const; //! \copydoc PhysicalQuantities::CPhysicalQuantity::compare int compare(const CAltitude &otherAltitude) const; diff --git a/src/blackmisc/aviation/atcstation.h b/src/blackmisc/aviation/atcstation.h index 20bc7dce1..597aed287 100644 --- a/src/blackmisc/aviation/atcstation.h +++ b/src/blackmisc/aviation/atcstation.h @@ -269,7 +269,7 @@ namespace BlackMisc QString convertToQString(bool i18n = false) const; //! \copydoc BlackMisc::Mixin::Icon::toIcon() - BlackMisc::CIcon toIcon() const { return m_callsign.toIcon(); } + BlackMisc::CIcons::IconIndex toIcon() const { return m_callsign.toIcon(); } private: CCallsign m_callsign; diff --git a/src/blackmisc/aviation/callsign.h b/src/blackmisc/aviation/callsign.h index fd293953f..70527c4c8 100644 --- a/src/blackmisc/aviation/callsign.h +++ b/src/blackmisc/aviation/callsign.h @@ -156,7 +156,7 @@ namespace BlackMisc bool isValid() const; //! \copydoc BlackMisc::Mixin::Icon::toIcon() - CIcon toIcon() const { return convertToIcon(*this); } + CIcons::IconIndex toIcon() const { return convertToIcon(*this).getIndex(); } //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const CPropertyIndex &index) const; diff --git a/src/blackmisc/aviation/flightplan.cpp b/src/blackmisc/aviation/flightplan.cpp index ac282d2c6..13bc7f646 100644 --- a/src/blackmisc/aviation/flightplan.cpp +++ b/src/blackmisc/aviation/flightplan.cpp @@ -960,9 +960,9 @@ namespace BlackMisc return p; } - CIcon CFlightPlan::toIcon() const + CIcons::IconIndex CFlightPlan::toIcon() const { - return CIcon::iconByIndex(CIcons::StandardIconAppFlightPlan16); + return CIcons::StandardIconAppFlightPlan16; } } // namespace diff --git a/src/blackmisc/aviation/flightplan.h b/src/blackmisc/aviation/flightplan.h index 2890bfe6b..2a719b824 100644 --- a/src/blackmisc/aviation/flightplan.h +++ b/src/blackmisc/aviation/flightplan.h @@ -379,7 +379,7 @@ namespace BlackMisc void setPropertyByIndex(const CPropertyIndex &index, const CVariant &variant); //! \copydoc BlackMisc::Mixin::Icon::toIcon - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! \copydoc BlackMisc::Mixin::String::toQString() QString convertToQString(bool i18n = false) const; diff --git a/src/blackmisc/country.cpp b/src/blackmisc/country.cpp index 2ab31cf0e..db54024f6 100644 --- a/src/blackmisc/country.cpp +++ b/src/blackmisc/country.cpp @@ -23,16 +23,16 @@ namespace BlackMisc this->setSimplifiedNameIfNotSame(); } - CIcon CCountry::toIcon() const + CIcons::IconIndex CCountry::toIcon() const { - if (m_dbKey.length() == 2) + //if (m_dbKey.length() == 2) + //{ + // // relative to images + // return CIcon(u"flags/" % m_dbKey.toLower() % u".png", this->convertToQString()); + //} + //else { - // relative to images - return CIcon(u"flags/" % m_dbKey.toLower() % u".png", this->convertToQString()); - } - else - { - return CIcon::iconByIndex(CIcons::StandardIconEmpty); + return CIcons::StandardIconEmpty; } } diff --git a/src/blackmisc/country.h b/src/blackmisc/country.h index c47707e26..b8537b20c 100644 --- a/src/blackmisc/country.h +++ b/src/blackmisc/country.h @@ -56,7 +56,7 @@ namespace BlackMisc bool isValid() const; //! Representing icon - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! DB ISO code const QString &getIsoCode() const { return m_dbKey; } diff --git a/src/blackmisc/db/distribution.cpp b/src/blackmisc/db/distribution.cpp index 62d5e2aed..78eff9395 100644 --- a/src/blackmisc/db/distribution.cpp +++ b/src/blackmisc/db/distribution.cpp @@ -41,10 +41,10 @@ namespace BlackMisc return !m_downloadUrls.isEmpty(); } - CIcon CDistribution::getRestrictionIcon() const + CIcons::IconIndex CDistribution::getRestrictionIcon() const { // StandardIconLockOpen16 is hard to distinguish from closed - return CIcon::iconByIndex(m_restricted ? CIcons::StandardIconLockClosed16 : CIcons::StandardIconGlobe16); + return m_restricted ? CIcons::StandardIconLockClosed16 : CIcons::StandardIconGlobe16; } bool CDistribution::isStabilitySameOrBetter(const CDistribution &otherDistribution) const @@ -74,7 +74,7 @@ namespace BlackMisc this->getFormattedUtcTimestampYmdhms(); } - CIcon CDistribution::toIcon() const + CIcons::IconIndex CDistribution::toIcon() const { return this->getRestrictionIcon(); } diff --git a/src/blackmisc/db/distribution.h b/src/blackmisc/db/distribution.h index 5057afa80..cca840e38 100644 --- a/src/blackmisc/db/distribution.h +++ b/src/blackmisc/db/distribution.h @@ -77,7 +77,7 @@ namespace BlackMisc void setRestricted(bool r) { m_restricted = r; } //! Get the restrict icon - CIcon getRestrictionIcon() const; + CIcons::IconIndex getRestrictionIcon() const; //! "this" having same or better stability than other distribution? bool isStabilitySameOrBetter(const CDistribution &otherDistribution) const; @@ -95,7 +95,7 @@ namespace BlackMisc QString convertToQString(const QString &separator, bool i18n = false) const; //! Representing icon - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const CPropertyIndex &index) const; diff --git a/src/blackmisc/geo/earthangle.cpp b/src/blackmisc/geo/earthangle.cpp index 7b3339008..4f81d39ea 100644 --- a/src/blackmisc/geo/earthangle.cpp +++ b/src/blackmisc/geo/earthangle.cpp @@ -161,9 +161,9 @@ namespace BlackMisc LATorLON *CEarthAngle::derived() { return static_cast(this); } template - CIcon CEarthAngle::toIcon() const + CIcons::IconIndex CEarthAngle::toIcon() const { - return BlackMisc::CIcon::iconByIndex(CIcons::GeoPosition); + return CIcons::GeoPosition; } template diff --git a/src/blackmisc/geo/earthangle.h b/src/blackmisc/geo/earthangle.h index e4bb5b292..620318b29 100644 --- a/src/blackmisc/geo/earthangle.h +++ b/src/blackmisc/geo/earthangle.h @@ -45,7 +45,7 @@ namespace BlackMisc LATorLON operator *(double multiply) const; //! \copydoc BlackMisc::Mixin::Icon::toIcon - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; /*! * Latitude / Longitude from a WGS string such as diff --git a/src/blackmisc/icon.cpp b/src/blackmisc/icon.cpp index b532c0d97..626a37bba 100644 --- a/src/blackmisc/icon.cpp +++ b/src/blackmisc/icon.cpp @@ -15,20 +15,23 @@ namespace BlackMisc { + CIcon::CIcon(CIcons::IconIndex index) : + CIcon(iconByIndex(index)) {} + CIcon::CIcon(CIcons::IconIndex index, const QString &descriptiveText) : m_index(index), m_descriptiveText(descriptiveText) {} - CIcon::CIcon(const QPixmap &pixmap, const QString &descriptiveText) : - m_index(CIcons::IconIsGenerated), m_descriptiveText(descriptiveText), m_pixmap(pixmap) - { } + //CIcon::CIcon(const QPixmap &pixmap, const QString &descriptiveText) : + // m_index(CIcons::IconIsGenerated), m_descriptiveText(descriptiveText), m_pixmap(pixmap) + //{ } - CIcon::CIcon(const QString &resourceFilePath, const QString &descriptiveText) : - m_index(CIcons::IconIsFile), m_descriptiveText(descriptiveText) - { - QString fullPath; - m_pixmap = CIcons::pixmapByResourceFileName(QDir::cleanPath(resourceFilePath), fullPath); - m_fileResourcePath = fullPath; - } + //CIcon::CIcon(const QString &resourceFilePath, const QString &descriptiveText) : + // m_index(CIcons::IconIsFile), m_descriptiveText(descriptiveText) + //{ + // QString fullPath; + // m_pixmap = CIcons::pixmapByResourceFileName(QDir::cleanPath(resourceFilePath), fullPath); + // m_fileResourcePath = fullPath; + //} CIcons::IconIndex CIcon::getIndex() const { diff --git a/src/blackmisc/icon.h b/src/blackmisc/icon.h index 6ade9ac54..1ad31d447 100644 --- a/src/blackmisc/icon.h +++ b/src/blackmisc/icon.h @@ -48,14 +48,17 @@ namespace BlackMisc //! Default constructor. CIcon() {} + //! Constructor. + CIcon(CIcons::IconIndex index); + //! Constructor. CIcon(CIcons::IconIndex index, const QString &descriptiveText); //! Constructor for generated icon - CIcon(const QPixmap &pixmap, const QString &descriptiveText); + //CIcon(const QPixmap &pixmap, const QString &descriptiveText); //! Constructor for file icons - CIcon(const QString &resourceFilePath, const QString &descriptiveText); + //CIcon(const QString &resourceFilePath, const QString &descriptiveText); //! Get descriptive text const QString &getDescriptiveText() const { return m_descriptiveText; } @@ -85,7 +88,7 @@ namespace BlackMisc QPixmap toPixmap() const; //! Identity function - CIcon toIcon() const { return *this; } + CIcons::IconIndex toIcon() const { return m_index; } //! A QIcon QIcon toQIcon() const; @@ -123,12 +126,6 @@ namespace BlackMisc BLACK_METAMEMBER(fileResourcePath) ); }; - - namespace Private - { - //! \private Needed so CValueObjectMetaInfoHelper can copy forward-declared CIcon. - inline void assign(CIcon &a, const CIcon &b) { a = b; } - } } // namespace Q_DECLARE_METATYPE(BlackMisc::CIcon) diff --git a/src/blackmisc/mixin/mixinicon.h b/src/blackmisc/mixin/mixinicon.h index 73e2982b7..aef255338 100644 --- a/src/blackmisc/mixin/mixinicon.h +++ b/src/blackmisc/mixin/mixinicon.h @@ -31,10 +31,7 @@ namespace BlackMisc { public: //! As icon, not implemented by all classes - CIcon toIcon() const { return CIcon::iconByIndex(IconIndex); } - - //! As pixmap, required for most GUI views - QPixmap toPixmap() const { return derived()->toIcon().toPixmap(); } + CIcons::IconIndex toIcon() const { return IconIndex; } private: const Derived *derived() const { return static_cast(this); } @@ -46,8 +43,7 @@ namespace BlackMisc * the derived class uses this macro to disambiguate the inherited members. */ # define BLACKMISC_DECLARE_USING_MIXIN_ICON(DERIVED) \ - using ::BlackMisc::Mixin::Icon::toIcon; \ - using ::BlackMisc::Mixin::Icon::toPixmap; + using ::BlackMisc::Mixin::Icon::toIcon; } } // namespace diff --git a/src/blackmisc/mixin/mixinindex.h b/src/blackmisc/mixin/mixinindex.h index 65cd84d3b..164b4a8a9 100644 --- a/src/blackmisc/mixin/mixinindex.h +++ b/src/blackmisc/mixin/mixinindex.h @@ -155,8 +155,8 @@ namespace BlackMisc const auto i = index.frontCasted(); // keep that "auto", otherwise I won's compile switch (i) { - case IndexIcon: return CVariant::from(derived()->toIcon()); - case IndexPixmap: return CVariant::from(derived()->toPixmap()); + case IndexIcon: return CVariant::from(CIcon(derived()->toIcon())); + case IndexPixmap: return CVariant::from(CIcon(derived()->toIcon()).toPixmap()); case IndexString: return CVariant(derived()->toQString()); default: return basePropertyByIndex(static_cast *>(derived()), index); } diff --git a/src/blackmisc/namevariantpair.cpp b/src/blackmisc/namevariantpair.cpp index 0de666e79..2ff72b0b4 100644 --- a/src/blackmisc/namevariantpair.cpp +++ b/src/blackmisc/namevariantpair.cpp @@ -16,7 +16,7 @@ namespace BlackMisc : m_name(name), m_variant(variant), m_icon(icon) { } - CIcon CNameVariantPair::toIcon() const { return m_icon; } + CIcons::IconIndex CNameVariantPair::toIcon() const { return m_icon.getIndex(); } bool CNameVariantPair::hasIcon() const { diff --git a/src/blackmisc/namevariantpair.h b/src/blackmisc/namevariantpair.h index d04c68281..d54ad47fa 100644 --- a/src/blackmisc/namevariantpair.h +++ b/src/blackmisc/namevariantpair.h @@ -56,7 +56,7 @@ namespace BlackMisc void setVariant(const CVariant &variant) { m_variant = variant; } //! \copydoc BlackMisc::Mixin::Icon::toIcon() - BlackMisc::CIcon toIcon() const; + BlackMisc::CIcons::IconIndex toIcon() const; //! Has icon bool hasIcon() const; diff --git a/src/blackmisc/network/authenticateduser.cpp b/src/blackmisc/network/authenticateduser.cpp index 2188c78de..7017eaeab 100644 --- a/src/blackmisc/network/authenticateduser.cpp +++ b/src/blackmisc/network/authenticateduser.cpp @@ -122,9 +122,9 @@ namespace BlackMisc return this->hasBulkRole() || this->hasBulkAddRole(); } - CIcon CAuthenticatedUser::toIcon() const + CIcons::IconIndex CAuthenticatedUser::toIcon() const { - return CIcon::iconByIndex(CIcons::StandardIconUser16); + return CIcons::StandardIconUser16; } CVariant CAuthenticatedUser::propertyByIndex(const BlackMisc::CPropertyIndex &index) const diff --git a/src/blackmisc/network/authenticateduser.h b/src/blackmisc/network/authenticateduser.h index ee7f35896..b537d7217 100644 --- a/src/blackmisc/network/authenticateduser.h +++ b/src/blackmisc/network/authenticateduser.h @@ -155,7 +155,7 @@ namespace BlackMisc bool canDirectlyWriteModels() const; //! \copydoc BlackMisc::Mixin::Icon::toIcon() - BlackMisc::CIcon toIcon() const; + BlackMisc::CIcons::IconIndex toIcon() const; //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const; diff --git a/src/blackmisc/network/client.cpp b/src/blackmisc/network/client.cpp index f45ee65a1..769357231 100644 --- a/src/blackmisc/network/client.cpp +++ b/src/blackmisc/network/client.cpp @@ -96,12 +96,11 @@ namespace BlackMisc if (!modelString.isEmpty()) { this->addCapability(CClient::FsdModelString); } } - CIcon CClient::toIcon() const + CIcons::IconIndex CClient::toIcon() const { if (!m_swift) { return m_user.toIcon(); } - static const CIcon swift = CIconList::allIcons().findByIndex(CIcons::Swift16); - return swift; + return CIcons::Swift16; } CVariant CClient::propertyByIndex(const CPropertyIndex &index) const @@ -117,8 +116,8 @@ namespace BlackMisc case IndexModelString: return CVariant(m_modelString); case IndexServer: return CVariant(m_server); case IndexVoiceCapabilities: return m_voiceCapabilities.propertyByIndex(index.copyFrontRemoved()); - case IndexVoiceCapabilitiesPixmap: return CVariant::from(m_voiceCapabilities.toPixmap()); - case IndexVoiceCapabilitiesIcon: return CVariant::fromValue(m_voiceCapabilities.toIcon()); + case IndexVoiceCapabilitiesPixmap: return CVariant::from(CIcon(m_voiceCapabilities.toIcon()).toPixmap()); + case IndexVoiceCapabilitiesIcon: return CVariant::from(CIcon(m_voiceCapabilities.toIcon())); case IndexVoiceCapabilitiesString: return CVariant(m_voiceCapabilities.toQString(true)); default: break; } diff --git a/src/blackmisc/network/client.h b/src/blackmisc/network/client.h index 50a428ca8..1643d5e07 100644 --- a/src/blackmisc/network/client.h +++ b/src/blackmisc/network/client.h @@ -145,7 +145,7 @@ namespace BlackMisc void setQueriedModelString(const QString &modelString); //! \copydoc BlackMisc::Mixin::Icon::toIcon() - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const; diff --git a/src/blackmisc/network/ecosystem.cpp b/src/blackmisc/network/ecosystem.cpp index c942c6c3e..a7c3f88b9 100644 --- a/src/blackmisc/network/ecosystem.cpp +++ b/src/blackmisc/network/ecosystem.cpp @@ -72,17 +72,17 @@ namespace BlackMisc } } - CIcon CEcosystem::toIcon() const + CIcons::IconIndex CEcosystem::toIcon() const { switch (this->getSystem()) { - case VATSIM: return CIconList::allIcons().findByIndex(CIcons::NetworkVatsimLogo); - case Swift: return CIconList::allIcons().findByIndex(CIcons::Swift24); - case SwiftTest: return CIconList::allIcons().findByIndex(CIcons::Swift24); - case PrivateFSD: return CIconList::allIcons().findByIndex(CIcons::StandardIconAppAircraft16); - case NoSystem: return CIconList::allIcons().findByIndex(CIcons::StandardIconCrossCircle16); + case VATSIM: return CIcons::NetworkVatsimLogo; + case Swift: return CIcons::Swift24; + case SwiftTest: return CIcons::Swift24; + case PrivateFSD: return CIcons::StandardIconAppAircraft16; + case NoSystem: return CIcons::StandardIconCrossCircle16; case Unspecified: - default: return CIconList::allIcons().findByIndex(CIcons::StandardIconUnknown16); + default: return CIcons::StandardIconUnknown16; } } diff --git a/src/blackmisc/network/ecosystem.h b/src/blackmisc/network/ecosystem.h index e0a3d0fd4..fb6ea2011 100644 --- a/src/blackmisc/network/ecosystem.h +++ b/src/blackmisc/network/ecosystem.h @@ -67,7 +67,7 @@ namespace BlackMisc const QString &getSystemString() const; //! \copydoc BlackMisc::Mixin::Icon::toIcon() - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const; diff --git a/src/blackmisc/network/textmessage.cpp b/src/blackmisc/network/textmessage.cpp index 6b7d3d4a0..02b534f48 100644 --- a/src/blackmisc/network/textmessage.cpp +++ b/src/blackmisc/network/textmessage.cpp @@ -292,14 +292,14 @@ namespace BlackMisc return std::move(candidate).right(4).toUpper(); } - CIcon CTextMessage::toIcon() const + CIcons::IconIndex CTextMessage::toIcon() const { return m_senderCallsign.toIcon(); } QPixmap CTextMessage::toPixmap() const { - return m_senderCallsign.toPixmap(); + return CIcon(toIcon()).toPixmap(); } CVariant CTextMessage::propertyByIndex(const BlackMisc::CPropertyIndex &index) const diff --git a/src/blackmisc/network/textmessage.h b/src/blackmisc/network/textmessage.h index a9e99a7b0..6cd88d34f 100644 --- a/src/blackmisc/network/textmessage.h +++ b/src/blackmisc/network/textmessage.h @@ -181,7 +181,7 @@ namespace BlackMisc QString getSelcalCode() const; //! As icon, not implement by all classes - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! As pixmap, required for most GUI views QPixmap toPixmap() const; diff --git a/src/blackmisc/network/user.h b/src/blackmisc/network/user.h index 730a426e4..ffdeb62b6 100644 --- a/src/blackmisc/network/user.h +++ b/src/blackmisc/network/user.h @@ -152,7 +152,7 @@ namespace BlackMisc bool setCallsign(const Aviation::CCallsign &callsign); //! \copydoc BlackMisc::Mixin::Icon::toIcon() - CIcon toIcon() const { return this->getCallsign().toIcon(); } + CIcons::IconIndex toIcon() const { return this->getCallsign().toIcon(); } //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const CPropertyIndex &index) const; diff --git a/src/blackmisc/network/voicecapabilities.cpp b/src/blackmisc/network/voicecapabilities.cpp index 0f47aa430..20aaff7dd 100644 --- a/src/blackmisc/network/voicecapabilities.cpp +++ b/src/blackmisc/network/voicecapabilities.cpp @@ -80,18 +80,18 @@ namespace BlackMisc this->setCapabilities(Unknown); } - CIcon CVoiceCapabilities::toIcon() const + CIcons::IconIndex CVoiceCapabilities::toIcon() const { switch (m_voiceCapabilities) { - case Voice: return CIcon::iconByIndex(CIcons::NetworkCapabilityVoiceBackground); - case TextOnly: return CIcon::iconByIndex(CIcons::NetworkCapabilityTextOnly); - case VoiceReceivingOnly: return CIcon::iconByIndex(CIcons::NetworkCapabilityVoiceReceiveOnlyBackground); - case Unknown: return CIcon::iconByIndex(CIcons::NetworkCapabilityUnknown); + case Voice: return CIcons::NetworkCapabilityVoiceBackground; + case TextOnly: return CIcons::NetworkCapabilityTextOnly; + case VoiceReceivingOnly: return CIcons::NetworkCapabilityVoiceReceiveOnlyBackground; + case Unknown: return CIcons::NetworkCapabilityUnknown; default: break; } Q_ASSERT_X(false, Q_FUNC_INFO, "Illegal mode"); - return CIcon::iconByIndex(CIcons::NetworkCapabilityUnknown); // never reached + return CIcons::NetworkCapabilityUnknown; // never reached } const CVoiceCapabilities &CVoiceCapabilities::fromVoiceCapabilities(CVoiceCapabilities::VoiceCapabilities capabilities) diff --git a/src/blackmisc/network/voicecapabilities.h b/src/blackmisc/network/voicecapabilities.h index 7db5b1069..8415abe38 100644 --- a/src/blackmisc/network/voicecapabilities.h +++ b/src/blackmisc/network/voicecapabilities.h @@ -65,7 +65,7 @@ namespace BlackMisc static const QList &allCapabilities(); //! \copydoc BlackMisc::Mixin::Icon::toIcon() - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! \copydoc BlackMisc::Mixin::String::toQString QString convertToQString(bool i18n = false) const; diff --git a/src/blackmisc/pixmap.h b/src/blackmisc/pixmap.h index effc94ca8..a3152657d 100644 --- a/src/blackmisc/pixmap.h +++ b/src/blackmisc/pixmap.h @@ -54,7 +54,7 @@ namespace BlackMisc //! With Pixmap? bool isNull() const; - //! \copydoc CValueObject::toPixmap + //! \copydoc CIcon::toPixmap QPixmap toPixmap() const; //! \copydoc BlackMisc::Mixin::String::toQString diff --git a/src/blackmisc/platform.cpp b/src/blackmisc/platform.cpp index a987c988a..d49651071 100644 --- a/src/blackmisc/platform.cpp +++ b/src/blackmisc/platform.cpp @@ -64,18 +64,18 @@ namespace BlackMisc return this->convertToQString(true); } - CIcon CPlatform::toIcon() const + CIcons::IconIndex CPlatform::toIcon() const { - if (this->getPlatform() == All) { return CIcon::iconByIndex(CIcons::OSAll); } + if (this->getPlatform() == All) { return CIcons::OSAll; } switch (this->getPlatformFlag()) { case Win32: - case Win64: return CIcon::iconByIndex(CIcons::OSWindows); - case Linux: return CIcon::iconByIndex(CIcons::OSLinux); - case MacOS: return CIcon::iconByIndex(CIcons::OSMacOs); + case Win64: return CIcons::OSWindows; + case Linux: return CIcons::OSLinux; + case MacOS: return CIcons::OSMacOs; default: break; } - return CIcon::iconByIndex(CIcons::StandardIconEmpty); + return CIcons::StandardIconEmpty; } QString CPlatform::convertToQString(bool i18n) const diff --git a/src/blackmisc/platform.h b/src/blackmisc/platform.h index 3bad97e63..6eeb56196 100644 --- a/src/blackmisc/platform.h +++ b/src/blackmisc/platform.h @@ -91,7 +91,7 @@ namespace BlackMisc void setPlatform(const QString &p) { setPlatform(stringToPlatform(p)); } //! Representing icon - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! \copydoc BlackMisc::Mixin::String::toQString QString convertToQString(bool i18n = false) const; diff --git a/src/blackmisc/pq/angle.cpp b/src/blackmisc/pq/angle.cpp index 40fd97efe..6871add6a 100644 --- a/src/blackmisc/pq/angle.cpp +++ b/src/blackmisc/pq/angle.cpp @@ -49,11 +49,9 @@ namespace BlackMisc minutes = std::copysign(minutes, degrees); } - CIcon CAngle::toIcon() const + CIcons::IconIndex CAngle::toIcon() const { - CIcon i = CIcon::iconByIndex(CIcons::StandardIconArrowMediumNorth16); - i.setRotation(value(CAngleUnit::deg())); - return i; + return CIcons::StandardIconArrowMediumNorth16; } CAngle::DegMinSecFractionalSec CAngle::asSexagesimalDegMinSec(bool range180Degrees) const diff --git a/src/blackmisc/pq/angle.h b/src/blackmisc/pq/angle.h index 557ea1d6d..8d3944e09 100644 --- a/src/blackmisc/pq/angle.h +++ b/src/blackmisc/pq/angle.h @@ -77,7 +77,7 @@ namespace BlackMisc static void unifySign(int degrees, int &minutes); //! \copydoc BlackMisc::Mixin::Icon::toIcon - BlackMisc::CIcon toIcon() const; + BlackMisc::CIcons::IconIndex toIcon() const; //! As individual values DegMinSecFractionalSec asSexagesimalDegMinSec(bool range180Degrees = false) const; diff --git a/src/blackmisc/rgbcolor.cpp b/src/blackmisc/rgbcolor.cpp index 427fb0c83..27b32b81b 100644 --- a/src/blackmisc/rgbcolor.cpp +++ b/src/blackmisc/rgbcolor.cpp @@ -37,22 +37,22 @@ namespace BlackMisc this->setQColor(color); } - CIcon CRgbColor::toIcon() const + CIcons::IconIndex CRgbColor::toIcon() const { - if (this->isValid()) + //if (this->isValid()) + //{ + // QPixmap pixmap(QSize(16, 16)); + // QPainter p(&pixmap); + // QBrush brush(this->toQColor()); + // p.setBackground(brush); + // p.setBrush(this->toQColor()); + // p.drawRect(0, 0, 16, 16); + // CIcon icon(pixmap, hex()); + // return icon; + //} + //else { - QPixmap pixmap(QSize(16, 16)); - QPainter p(&pixmap); - QBrush brush(this->toQColor()); - p.setBackground(brush); - p.setBrush(this->toQColor()); - p.drawRect(0, 0, 16, 16); - CIcon icon(pixmap, hex()); - return icon; - } - else - { - return CIcon::iconByIndex(CIcons::StandardIconError16); + return CIcons::StandardIconError16; } } diff --git a/src/blackmisc/rgbcolor.h b/src/blackmisc/rgbcolor.h index b7e198ee8..98c1f718f 100644 --- a/src/blackmisc/rgbcolor.h +++ b/src/blackmisc/rgbcolor.h @@ -102,7 +102,7 @@ namespace BlackMisc void setInvalid(); //! Representing icon - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! \copydoc BlackMisc::Mixin::String::toQString QString convertToQString(bool i18n = false) const; diff --git a/src/blackmisc/simulation/simulatedaircraft.h b/src/blackmisc/simulation/simulatedaircraft.h index a0fb143c5..458be5285 100644 --- a/src/blackmisc/simulation/simulatedaircraft.h +++ b/src/blackmisc/simulation/simulatedaircraft.h @@ -460,7 +460,7 @@ namespace BlackMisc QString convertToQString(bool i18n = false) const; //! \copydoc BlackMisc::Mixin::Icon::toIcon() - CIcon toIcon() const { return m_callsign.toIcon(); } + CIcons::IconIndex toIcon() const { return m_callsign.toIcon(); } private: static constexpr int CurrentModel = 0; //!< m_models diff --git a/src/blackmisc/simulation/simulatorinfo.cpp b/src/blackmisc/simulation/simulatorinfo.cpp index 063d3b78b..b11a6a0bd 100644 --- a/src/blackmisc/simulation/simulatorinfo.cpp +++ b/src/blackmisc/simulation/simulatorinfo.cpp @@ -174,17 +174,17 @@ namespace BlackMisc return str.trimmed(); } - CIcon CSimulatorInfo::toIcon() const + CIcons::IconIndex CSimulatorInfo::toIcon() const { if (this->isSingleSimulator()) { switch (this->getSimulator()) { - case FSX: return CIconList::allIcons().findByIndex(CIcons::SimulatorFSX16); - case FS9: return CIconList::allIcons().findByIndex(CIcons::SimulatorFS916); - case P3D: return CIconList::allIcons().findByIndex(CIcons::SimulatorP3D16); - case XPLANE: return CIconList::allIcons().findByIndex(CIcons::SimulatorXPlane16); - case FG: return CIconList::allIcons().findByIndex(CIcons::SimulatorXPlane16); + case FSX: return CIcons::SimulatorFSX16; + case FS9: return CIcons::SimulatorFS916; + case P3D: return CIcons::SimulatorP3D16; + case XPLANE: return CIcons::SimulatorXPlane16; + case FG: return CIcons::SimulatorXPlane16; default: break; } } diff --git a/src/blackmisc/simulation/simulatorinfo.h b/src/blackmisc/simulation/simulatorinfo.h index d53f5240e..a4577eebb 100644 --- a/src/blackmisc/simulation/simulatorinfo.h +++ b/src/blackmisc/simulation/simulatorinfo.h @@ -162,7 +162,7 @@ namespace BlackMisc QString convertToQString(bool i18n = false) const; //! \copydoc BlackMisc::Mixin::Icon::toIcon() - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! Add simulator CSimulatorInfo add(const CSimulatorInfo &other); diff --git a/src/blackmisc/statusmessage.h b/src/blackmisc/statusmessage.h index c054fee1c..c955eae70 100644 --- a/src/blackmisc/statusmessage.h +++ b/src/blackmisc/statusmessage.h @@ -463,7 +463,7 @@ namespace BlackMisc void setCategories(const CLogCategoryList &categories) { this->m_categories = categories; } //! Representing icon - const CIcon &toIcon() const { return convertToIcon(*this); } + CIcons::IconIndex toIcon() const { return convertToIcon(*this).getIndex(); } //! Severity as string const QString &getSeverityAsString() const; diff --git a/src/blackmisc/valueobject.h b/src/blackmisc/valueobject.h index 95dc04750..c2588387c 100644 --- a/src/blackmisc/valueobject.h +++ b/src/blackmisc/valueobject.h @@ -125,9 +125,6 @@ namespace BlackMisc //! \copydoc BlackMisc::Mixin::Icon::toIcon using Mixin::Icon::toIcon; - //! \copydoc BlackMisc::Mixin::Icon::toPixmap - using Mixin::Icon::toPixmap; - //! \copydoc BlackMisc::Mixin::MetaType::isA using Mixin::MetaType::isA; diff --git a/src/blackmisc/variant.cpp b/src/blackmisc/variant.cpp index 272f4f64c..208a8ed4a 100644 --- a/src/blackmisc/variant.cpp +++ b/src/blackmisc/variant.cpp @@ -508,20 +508,18 @@ namespace BlackMisc } } - CIcon CVariant::toIcon() const + CIcons::IconIndex CVariant::toIcon() const { auto *meta = getValueObjectMetaInfo(); if (! meta) { return {}; } try { - CIcon result; - meta->toIcon(data(), result); - return result; + return static_cast(meta->toIcon(data())); } catch (const Private::CVariantException &ex) { CLogMessage(this).debug() << ex.what(); - return {}; + return CIcons::StandardIconError16; } } @@ -531,7 +529,7 @@ namespace BlackMisc if (m_v.type() == QVariant::Image) { return QPixmap::fromImage(m_v.value()); } if (m_v.type() == QVariant::Icon) { return iconToPixmap(m_v.value()); } - return toIcon().toPixmap(); + return CIcon(toIcon()).toPixmap(); } bool CVariant::matches(const CVariant &value) const diff --git a/src/blackmisc/variant.h b/src/blackmisc/variant.h index 24d6c59a3..9e8103ce0 100644 --- a/src/blackmisc/variant.h +++ b/src/blackmisc/variant.h @@ -22,6 +22,7 @@ #include "blackmisc/mixin/mixinstring.h" #include "blackmisc/mixin/mixinmetatype.h" #include "blackmisc/variantprivate.h" +#include "blackmisc/icons.h" #include #include @@ -255,11 +256,11 @@ namespace BlackMisc //! \copydoc CValueObject::equalsPropertyByIndex bool equalsPropertyByIndex(const CVariant &compareValue, const CPropertyIndex &index) const; - //! \copydoc CValueObject::toPixmap + //! \copydoc CIcon::toPixmap QPixmap toPixmap() const; //! \copydoc BlackMisc::Mixin::Icon::toIcon - CIcon toIcon() const; + CIcons::IconIndex toIcon() const; //! If this is an event subscription, return true if it matches the given event. bool matches(const CVariant &event) const; diff --git a/src/blackmisc/variantprivate.h b/src/blackmisc/variantprivate.h index 06fce0a6b..f8d71db52 100644 --- a/src/blackmisc/variantprivate.h +++ b/src/blackmisc/variantprivate.h @@ -38,9 +38,6 @@ namespace BlackMisc //! \private Defined in variant.h void assign(CVariant &, const CVariant &); - //! \private Defined in icon.h - void assign(CIcon &, const CIcon &); - //! \private Abstract base class representing the set of operations supported by a particular value type. struct BLACKMISC_EXPORT IValueObjectMetaInfo { @@ -60,7 +57,7 @@ namespace BlackMisc virtual QString propertyByIndexAsString(const void *object, const CPropertyIndex &index, bool i18n) const = 0; virtual bool equalsPropertyByIndex(const void *object, const CVariant &compareValue, const CPropertyIndex &index) const = 0; virtual bool matches(const void *object, const CVariant &value) const = 0; - virtual void toIcon(const void *object, CIcon &o_icon) const = 0; + virtual int toIcon(const void *object) const = 0; }; //! \private Exception to signal that an unsupported operation was requested. @@ -139,9 +136,9 @@ namespace BlackMisc static bool equalsPropertyByIndex(const T &object, const CVariant &, const CPropertyIndex &, ...) { throw CVariantException(object, "equalsPropertyByIndex"); } template - static void toIcon(const T &object, CIcon &o_icon, std::enable_if_t < ! std::is_same::value, decltype(static_cast(object.toIcon()), 0) >) { assign(o_icon, object.toIcon()); } + static int toIcon(const T &object, std::enable_if_t < ! std::is_same::value, decltype(static_cast(object.toIcon()), 0) >) { return object.toIcon(); } template - static void toIcon(const T &object, CIcon &, ...) { throw CVariantException(object, "toIcon"); } + static int toIcon(const T &object, ...) { throw CVariantException(object, "toIcon"); } template static bool matches(const T &object, const CVariant &value, decltype(static_cast(object.matches(value)), 0)) { return object.matches(value); } @@ -210,9 +207,9 @@ namespace BlackMisc { return CValueObjectMetaInfoHelper::equalsPropertyByIndex(cast(object), compareValue, index, 0); } - virtual void toIcon(const void *object, CIcon &o_icon) const override + virtual int toIcon(const void *object) const override { - CValueObjectMetaInfoHelper::toIcon(cast(object), o_icon, 0); + return CValueObjectMetaInfoHelper::toIcon(cast(object), 0); } virtual bool matches(const void *object, const CVariant &value) const override {