diff --git a/src/blackmisc/blackmisc.qrc b/src/blackmisc/blackmisc.qrc index 9a118d6cb..348d528ca 100644 --- a/src/blackmisc/blackmisc.qrc +++ b/src/blackmisc/blackmisc.qrc @@ -71,6 +71,16 @@ icons/pastel/16/lock-edit.png icons/pastel/16/lock-go.png icons/pastel/16/lock-open.png + icons/pastel/16/database.png + icons/pastel/16/database-add.png + icons/pastel/16/database-connect.png + icons/pastel/16/database-delete.png + icons/pastel/16/database-edit.png + icons/pastel/16/database-error.png + icons/pastel/16/database-key.png + icons/pastel/16/database-lightning.png + icons/pastel/16/database-table.png + icons/pastel/16/paintcan.png icons/vatsim/C1.png @@ -312,6 +322,38 @@ icons/diagona/icons/toggle-expand.png icons/diagona/icons/toggle-small.png icons/diagona/icons/toggle-small-expand.png + icons/diagona/icons/color.png + icons/diagona/icons/color-adjustment.png + icons/diagona/icons/color-adjustment-green.png + icons/diagona/icons/color-adjustment-red.png + icons/diagona/icons/color--arrow.png + icons/diagona/icons/color--exclamation.png + icons/diagona/icons/color--minus.png + icons/diagona/icons/color--pencil.png + icons/diagona/icons/color--plus.png + icons/diagona/icons/color-small.png + icons/diagona/icons/color-swatch.png + icons/diagona/icons/color-swatches.png + icons/diagona/icons/color-swatch-small.png + icons/diagona/icons/ui-color-picker.png + icons/diagona/icons/ui-color-picker-default.png + icons/diagona/icons/ui-color-picker-switch.png + icons/diagona/icons/ui-color-picker-transparent.png + icons/diagona/icons/blue-document-hf-insert.png + icons/diagona/icons/blue-document-hf-insert-footer.png + icons/diagona/icons/blue-document-insert.png + icons/diagona/icons/calendar-insert.png + icons/diagona/icons/database-insert.png + icons/diagona/icons/document-hf-insert.png + icons/diagona/icons/document-hf-insert-footer.png + icons/diagona/icons/document-insert.png + icons/diagona/icons/node-insert.png + icons/diagona/icons/node-insert-child.png + icons/diagona/icons/node-insert-next.png + icons/diagona/icons/node-insert-previous.png + icons/diagona/icons/table-insert.png + icons/diagona/icons/table-insert-column.png + icons/diagona/icons/table-insert-row.png icons/own/app.jpg @@ -342,6 +384,7 @@ icons/own/swift/swift64Database.png icons/own/swift/swift128Database.png icons/own/swift/swift24Database.png + icons/own/swift/swift16Database.png icons/qled/circle_black.svg @@ -386,4 +429,12 @@ icons/textures/texture-inner.jpg icons/textures/texture-outer.jpg + + icons/preloaders/FillingRing64.gif + icons/preloaders/FloatingRays64.gif + icons/preloaders/FillingRing16.gif + icons/preloaders/FillingRing32.gif + icons/preloaders/FloatingRays16.gif + icons/preloaders/FloatingRays32.gif + diff --git a/src/blackmisc/icon.cpp b/src/blackmisc/icon.cpp index 665094e5e..aac53ed51 100644 --- a/src/blackmisc/icon.cpp +++ b/src/blackmisc/icon.cpp @@ -13,34 +13,66 @@ namespace BlackMisc { + CIcon::CIcon(CIcons::IconIndex index, const QString &descriptiveText) : + m_index(static_cast(index)), m_descriptiveText(descriptiveText) {} - /* - * Pixmap - */ - QPixmap CIcon::toPixmap() const + CIcon::CIcon(const QPixmap &pixmap, const QString &descriptiveText) : + m_index(static_cast(CIcons::IconIsGenerated)), m_descriptiveText(descriptiveText), m_pixmap(pixmap) + { } + + CIcon::CIcon(const QString &resourceFilePath, const QString &descriptiveText) : + m_index(static_cast(CIcons::IconIsFile)), m_descriptiveText(descriptiveText), m_pixmap(CIcons::pixmapByResourceFileName(resourceFilePath)) + {} + + CIcons::IconIndex CIcon::getIndex() const { - return CIcons::pixmapByIndex(getIndex(), this->m_rotateDegrees); + return static_cast(this->m_index); + } + + bool CIcon::isIndexBased() const + { + return m_index >= 0 && m_index < static_cast(CIcons::IconIsGenerated); + } + + bool CIcon::isGenerated() const + { + return getIndex() == CIcons::IconIsGenerated; + } + + bool CIcon::isFileBased() const + { + return getIndex() == CIcons::IconIsFile; + } + + bool CIcon::isSet() const + { + return (this->m_index != static_cast(CIcons::NotSet)); + } + + QPixmap CIcon::toPixmap() const + { + if (this->isSet()) + { + if (this->isGenerated()) { return m_pixmap; } + if (this->isFileBased()) { return m_pixmap; } + return CIcons::pixmapByIndex(getIndex(), this->m_rotateDegrees); + } + else + { + return CIcons::pixmapByIndex(getIndex()); + } } - /* - * Icon - */ QIcon CIcon::toQIcon() const { return QIcon(toPixmap()); } - /* - * Rotate - */ void CIcon::setRotation(const PhysicalQuantities::CAngle &rotate) { this->m_rotateDegrees = rotate.valueRounded(PhysicalQuantities::CAngleUnit::deg(), 0); } - /* - * String - */ QString CIcon::convertToQString(bool i18n) const { Q_UNUSED(i18n); @@ -60,5 +92,4 @@ namespace BlackMisc Q_ASSERT_X(index >= 0 && index < CIconList::allIcons().size(), "iconForIndex", "wrong index"); return CIconList::allIcons()[index]; } - } // namespace diff --git a/src/blackmisc/icon.h b/src/blackmisc/icon.h index a92036c56..94d8e0c47 100644 --- a/src/blackmisc/icon.h +++ b/src/blackmisc/icon.h @@ -53,8 +53,8 @@ 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; \ + using ::BlackMisc::Mixin::Icon::toPixmap; } // Mixin //! Value object for icons. An icon is stored in the global icon repository and @@ -75,14 +75,31 @@ namespace BlackMisc CIcon() = default; //! Constructor. - CIcon(CIcons::IconIndex index, const QString &descriptiveText) : - m_index(static_cast(index)), m_descriptiveText(descriptiveText) {} + CIcon(CIcons::IconIndex index, const QString &descriptiveText); + + //! Constructor for generated icon + CIcon(const QPixmap &pixmap, const QString &descriptiveText); + + //! Construcror for file icons + CIcon(const QString &resourceFilePath, const QString &descriptiveText); //! Get descriptive text const QString &getDescriptiveText() const { return this->m_descriptiveText; } //! Index - CIcons::IconIndex getIndex() const { return static_cast< CIcons::IconIndex>(this->m_index);} + CIcons::IconIndex getIndex() const; + + //! Index based + bool isIndexBased() const; + + //! Generated icon + bool isGenerated() const; + + //! File based? + bool isFileBased() const; + + //! Icon set? + bool isSet() const; //! Corresponding pixmap QPixmap toPixmap() const; @@ -90,9 +107,6 @@ namespace BlackMisc //! A QIcon QIcon toQIcon() const; - //! Icon set? - bool isSet() const { return (this->m_index != static_cast(CIcons::NotSet));} - //! Rotate by n degrees void setRotation(int degrees) { this->m_rotateDegrees = degrees; } @@ -117,8 +131,9 @@ namespace BlackMisc private: BLACK_ENABLE_TUPLE_CONVERSION(CIcon) int m_index = static_cast(CIcons::NotSet); - int m_rotateDegrees = 0; - QString m_descriptiveText; + int m_rotateDegrees = 0; //!< Rotation + QString m_descriptiveText; //!< what does it represent? + QPixmap m_pixmap; //!< Used with generated pixmaps, when not used with index }; namespace Private @@ -142,7 +157,12 @@ namespace BlackMisc } } // namespace -BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::CIcon, (o.m_index, o.m_descriptiveText)) +BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::CIcon, ( + attr(o.m_index), + attr(o.m_rotateDegrees, flags < DisabledForComparison | DisabledForHashing > ()), + attr(o.m_descriptiveText) + )) + Q_DECLARE_METATYPE(BlackMisc::CIcon) #endif // guard diff --git a/src/blackmisc/iconlist.cpp b/src/blackmisc/iconlist.cpp index f11c6e383..80fa265f0 100644 --- a/src/blackmisc/iconlist.cpp +++ b/src/blackmisc/iconlist.cpp @@ -33,120 +33,144 @@ namespace BlackMisc const CIconList &CIconList::allIcons() { + // keep indexes alphabetically sorted and in sync with CIcons + // req. for "iconByIndex" static const CIconList icons( { - // keep indexes alphabetically sorted and in sync with CIcons - // req. for "iconByIndex" - CIcon(CIcons::ApplicationIconAircrafts, "aircrafts"), - CIcon(CIcons::ApplicationIconAtc, "ATC"), - CIcon(CIcons::ApplicationIconAudio, "audio"), - CIcon(CIcons::ApplicationIconCockpit, "cockpit"), - CIcon(CIcons::ApplicationIconFlightPlan, "flightplan"), - CIcon(CIcons::ApplicationIconLog, "log"), - CIcon(CIcons::ApplicationIconMappings, "mappings"), - CIcon(CIcons::ApplicationIconSettings, "settings"), - CIcon(CIcons::ApplicationIconSimulator, "simulator"), - CIcon(CIcons::ApplicationIconTextMessages, "text messages"), - CIcon(CIcons::ApplicationIconWeather, "weather"), - CIcon(CIcons::AviationAtis, "ATIS"), - CIcon(CIcons::AviationAttitudeIndicator, "attitude indicator"), - CIcon(CIcons::AviationMetar, "METAR"), - CIcon(CIcons::GeoPosition, "geo position"), - CIcon(CIcons::NetworkCapabilityTextOnly, "text only"), - CIcon(CIcons::NetworkCapabilityUnknown, "unknown"), - CIcon(CIcons::NetworkCapabilityVoice, "voice"), - CIcon(CIcons::NetworkCapabilityVoiceBackground, "voice"), - CIcon(CIcons::NetworkCapabilityVoiceReceiveOnly, "voice receive"), - CIcon(CIcons::NetworkCapabilityVoiceReceiveOnlyBackground, "voice receive"), - CIcon(CIcons::NetworkRoleApproach, "ATC approach"), - CIcon(CIcons::NetworkRoleC1, "C1"), - CIcon(CIcons::NetworkRoleC3, "C3"), - CIcon(CIcons::NetworkRoleCenter, "ATC center"), - CIcon(CIcons::NetworkRoleDelivery, "ATC delivery"), - CIcon(CIcons::NetworkRoleFss, "FSS"), - CIcon(CIcons::NetworkRoleGround, "ATC ground"), - CIcon(CIcons::NetworkRoleI1, "I1 (instructor)"), - CIcon(CIcons::NetworkRoleI3, "I3 (instructor)"), - CIcon(CIcons::NetworkRoleMnt, "Mentor"), - CIcon(CIcons::NetworkRoleObs, "observer"), - CIcon(CIcons::NetworkRolePilot, "pilot"), - CIcon(CIcons::NetworkRoleS1, "S1"), - CIcon(CIcons::NetworkRoleS2, "S2"), - CIcon(CIcons::NetworkRoleS3, "S3"), - CIcon(CIcons::NetworkRoleSup, "supervisor"), - CIcon(CIcons::NetworkRoleTower, "ATC tower"), - CIcon(CIcons::NetworkRoleUnknown, "unknown"), - CIcon(CIcons::NetworkVatsimLogo, "VATSIM"), - CIcon(CIcons::NetworkVatsimLogoWhite, "VATSIM"), - CIcon(CIcons::NotSet, "?"), - CIcon(CIcons::StandardIconAppAircrafts16, "aircrafts"), - CIcon(CIcons::StandardIconAppAtc16, "ATC"), - CIcon(CIcons::StandardIconAppFlightPlan16, "flight plan"), - CIcon(CIcons::StandardIconAppLog16, "log"), - CIcon(CIcons::StandardIconAppMappings16, "mappings"), - CIcon(CIcons::StandardIconAppSettings16, "settings"), - CIcon(CIcons::StandardIconAppSimulator16, "simulator"), - CIcon(CIcons::StandardIconAppTextMessages16, "text messages"), - CIcon(CIcons::StandardIconAppUsers16, "users"), - CIcon(CIcons::StandardIconAppWeather16, "weather"), - CIcon(CIcons::StandardIconArrowMediumEast16, "arrow east"), - CIcon(CIcons::StandardIconArrowMediumNorth16, "arrow north"), - CIcon(CIcons::StandardIconArrowMediumSouth16, "arrow south"), - CIcon(CIcons::StandardIconArrowMediumWest16, "arrow west"), - CIcon(CIcons::StandardIconClose16, "close"), - CIcon(CIcons::StandardIconCross16, "cross"), - CIcon(CIcons::StandardIconCrossCircle16, "cross circle"), - CIcon(CIcons::StandardIconCrossSmall16, "cross (small)"), - CIcon(CIcons::StandardIconCrossWhite16, "cross white"), - CIcon(CIcons::StandardIconDelete16, "delete"), - CIcon(CIcons::StandardIconDockBottom16, "dock bottom"), - CIcon(CIcons::StandardIconDockTop16, "dock top"), - CIcon(CIcons::StandardIconEmpty, "empty"), - CIcon(CIcons::StandardIconEmpty16, "empty"), - CIcon(CIcons::StandardIconError16, "error"), - CIcon(CIcons::StandardIconFloatAll16, "float all"), - CIcon(CIcons::StandardIconFloatOne16, "floast one"), - CIcon(CIcons::StandardIconGlobe16, "globe"), - CIcon(CIcons::StandardIconHeadingOne16, "heading"), - CIcon(CIcons::StandardIconInfo16, "info"), - CIcon(CIcons::StandardIconJoystick16, "joystick"), - CIcon(CIcons::StandardIconLockClosed16, "lock"), - CIcon(CIcons::StandardIconLockOpen16, "lock open"), - CIcon(CIcons::StandardIconMonitorError16, "monitor error"), - CIcon(CIcons::StandardIconPaperPlane16, "plane"), - CIcon(CIcons::StandardIconPlugin16, "plugin"), - CIcon(CIcons::StandardIconRadar16, "radar"), - CIcon(CIcons::StandardIconRadio16, "radio"), - CIcon(CIcons::StandardIconRefresh16, "refresh"), - CIcon(CIcons::StandardIconResize16, "resize"), - CIcon(CIcons::StandardIconResizeHorizontal16, "resize (horizontal)"), - CIcon(CIcons::StandardIconResizeVertical16, "resize (vertical)"), - CIcon(CIcons::StandardIconSpeakerNetwork16, "speaker (network)"), - CIcon(CIcons::StandardIconStatusBar16, "status bar"), - CIcon(CIcons::StandardIconSwift24, "swift"), - CIcon(CIcons::StandardIconSwift48, "swift"), - CIcon(CIcons::StandardIconSwiftDatabase24, "swift"), - CIcon(CIcons::StandardIconSwiftDatabase48, "swift"), - CIcon(CIcons::StandardIconSwiftNova24, "swift"), - CIcon(CIcons::StandardIconSwiftNova48, "swift"), - CIcon(CIcons::StandardIconTableRelationship16, "relationship"), - CIcon(CIcons::StandardIconTableSheet16, "table sheet"), - CIcon(CIcons::StandardIconText16, "text"), - CIcon(CIcons::StandardIconTick16, "tick"), - CIcon(CIcons::StandardIconTickRed16, "tick red"), - CIcon(CIcons::StandardIconTickSmall16, "tick (small)"), - CIcon(CIcons::StandardIconTickWhite16, "tick white"), - CIcon(CIcons::StandardIconUnknown16, "unknwon"), - CIcon(CIcons::StandardIconUser16, "user"), - CIcon(CIcons::StandardIconUsers16, "users"), - CIcon(CIcons::StandardIconViewMulticolumn16, "view multicolumn"), - CIcon(CIcons::StandardIconViewTile16, "view tile"), - CIcon(CIcons::StandardIconVolumeHigh16, "volume hight"), - CIcon(CIcons::StandardIconVolumeLow16, "volume low"), - CIcon(CIcons::StandardIconVolumeMuted16, "muted"), - CIcon(CIcons::StandardIconWarning16, "warning"), - CIcon(CIcons::StandardIconWeatherCloudy16, "cloudy"), - CIcon(CIcons::StandardIconWrench16, "wrench") + CIcon(CIcons::ApplicationAircraft, "aircraft"), + CIcon(CIcons::ApplicationAircraftIcao, "ICAO aircraft"), + CIcon(CIcons::ApplicationAirlineIcao, "ICAO airlines"), + CIcon(CIcons::ApplicationAtc, "ATC"), + CIcon(CIcons::ApplicationAudio, "audio"), + CIcon(CIcons::ApplicationCockpit, "cockpit"), + CIcon(CIcons::ApplicationCountries, "countries"), + CIcon(CIcons::ApplicationDatabase, "database"), + CIcon(CIcons::ApplicationDbStash, "DB stash"), + CIcon(CIcons::ApplicationDistributors, "distributors"), + CIcon(CIcons::ApplicationFlightPlan, "flightplan"), + CIcon(CIcons::ApplicationLog, "log"), + CIcon(CIcons::ApplicationMappings, "mappings"), + CIcon(CIcons::ApplicationLiveries, "liveries"), + CIcon(CIcons::ApplicationModels, "models"), + CIcon(CIcons::ApplicationSettings, "settings"), + CIcon(CIcons::ApplicationSimulator, "simulator"), + CIcon(CIcons::ApplicationTextMessages, "text messages"), + CIcon(CIcons::ApplicationWeather, "weather"), + CIcon(CIcons::AviationAtis, "ATIS"), + CIcon(CIcons::AviationAttitudeIndicator, "attitude indicator"), + CIcon(CIcons::AviationMetar, "METAR"), + CIcon(CIcons::GeoPosition, "geo position"), + CIcon(CIcons::NetworkCapabilityTextOnly, "text only"), + CIcon(CIcons::NetworkCapabilityUnknown, "unknown"), + CIcon(CIcons::NetworkCapabilityVoice, "voice"), + CIcon(CIcons::NetworkCapabilityVoiceBackground, "voice"), + CIcon(CIcons::NetworkCapabilityVoiceReceiveOnly, "voice receive"), + CIcon(CIcons::NetworkCapabilityVoiceReceiveOnlyBackground, "voice receive"), + CIcon(CIcons::NetworkRoleApproach, "ATC approach"), + CIcon(CIcons::NetworkRoleC1, "C1"), + CIcon(CIcons::NetworkRoleC3, "C3"), + CIcon(CIcons::NetworkRoleCenter, "ATC center"), + CIcon(CIcons::NetworkRoleDelivery, "ATC delivery"), + CIcon(CIcons::NetworkRoleFss, "FSS"), + CIcon(CIcons::NetworkRoleGround, "ATC ground"), + CIcon(CIcons::NetworkRoleI1, "I1 (instructor)"), + CIcon(CIcons::NetworkRoleI3, "I3 (instructor)"), + CIcon(CIcons::NetworkRoleMnt, "Mentor"), + CIcon(CIcons::NetworkRoleObs, "observer"), + CIcon(CIcons::NetworkRolePilot, "pilot"), + CIcon(CIcons::NetworkRoleS1, "S1"), + CIcon(CIcons::NetworkRoleS2, "S2"), + CIcon(CIcons::NetworkRoleS3, "S3"), + CIcon(CIcons::NetworkRoleSup, "supervisor"), + CIcon(CIcons::NetworkRoleTower, "ATC tower"), + CIcon(CIcons::NetworkRoleUnknown, "unknown"), + CIcon(CIcons::NetworkVatsimLogo, "VATSIM"), + CIcon(CIcons::NetworkVatsimLogoWhite, "VATSIM"), + CIcon(CIcons::NotSet, "?"), + CIcon(CIcons::StandardIconAppAircrafts16, "aircrafts"), + CIcon(CIcons::StandardIconAppAtc16, "ATC"), + CIcon(CIcons::StandardIconAppFlightPlan16, "flight plan"), + CIcon(CIcons::StandardIconAppLog16, "log"), + CIcon(CIcons::StandardIconAppMappings16, "mappings"), + CIcon(CIcons::StandardIconAppSettings16, "settings"), + CIcon(CIcons::StandardIconAppSimulator16, "simulator"), + CIcon(CIcons::StandardIconAppTextMessages16, "text messages"), + CIcon(CIcons::StandardIconAppUsers16, "users"), + CIcon(CIcons::StandardIconAppWeather16, "weather"), + CIcon(CIcons::StandardIconArrowMediumEast16, "arrow east"), + CIcon(CIcons::StandardIconArrowMediumNorth16, "arrow north"), + CIcon(CIcons::StandardIconArrowMediumSouth16, "arrow south"), + CIcon(CIcons::StandardIconArrowMediumWest16, "arrow west"), + CIcon(CIcons::StandardIconClose16, "close"), + CIcon(CIcons::StandardIconColor16, "color"), + CIcon(CIcons::StandardIconColorPicker16, "color picker"), + CIcon(CIcons::StandardIconColorSwatch16, "color swatch"), + CIcon(CIcons::StandardIconCross16, "cross"), + CIcon(CIcons::StandardIconCrossCircle16, "cross circle"), + CIcon(CIcons::StandardIconCrossSmall16, "cross (small)"), + CIcon(CIcons::StandardIconCrossWhite16, "cross white"), + CIcon(CIcons::StandardIconDatabase16, "database"), + CIcon(CIcons::StandardIconDatabaseAdd16, "add to database"), + CIcon(CIcons::StandardIconDatabaseConnect16, "connect database"), + CIcon(CIcons::StandardIconDatabaseDelete16, "delete from database"), + CIcon(CIcons::StandardIconDatabaseEdit16, "edit database"), + CIcon(CIcons::StandardIconDatabaseError16, "error"), + CIcon(CIcons::StandardIconDatabaseKey16, "key"), + CIcon(CIcons::StandardIconDatabaseTable16, "table"), + CIcon(CIcons::StandardIconDelete16, "delete"), + CIcon(CIcons::StandardIconDockBottom16, "dock bottom"), + CIcon(CIcons::StandardIconDockTop16, "dock top"), + CIcon(CIcons::StandardIconDragAndDrop16, "drag and drop"), + CIcon(CIcons::StandardIconEmpty, "empty"), + CIcon(CIcons::StandardIconEmpty16, "empty"), + CIcon(CIcons::StandardIconError16, "error"), + CIcon(CIcons::StandardIconFloatAll16, "float all"), + CIcon(CIcons::StandardIconFloatOne16, "floast one"), + CIcon(CIcons::StandardIconGlobe16, "globe"), + CIcon(CIcons::StandardIconHeadingOne16, "heading"), + CIcon(CIcons::StandardIconInfo16, "info"), + CIcon(CIcons::StandardIconJoystick16, "joystick"), + CIcon(CIcons::StandardIconLockClosed16, "lock"), + CIcon(CIcons::StandardIconLockOpen16, "lock open"), + CIcon(CIcons::StandardIconMonitorError16, "monitor error"), + CIcon(CIcons::StandardIconPaperPlane16, "plane"), + CIcon(CIcons::StandardIconPaintCan16, "paint can"), + CIcon(CIcons::StandardIconPlugin16, "plugin"), + CIcon(CIcons::StandardIconRadar16, "radar"), + CIcon(CIcons::StandardIconRadio16, "radio"), + CIcon(CIcons::StandardIconRefresh16, "refresh"), + CIcon(CIcons::StandardIconResize16, "resize"), + CIcon(CIcons::StandardIconResizeHorizontal16, "resize (horizontal)"), + CIcon(CIcons::StandardIconResizeVertical16, "resize (vertical)"), + CIcon(CIcons::StandardIconSpeakerNetwork16, "speaker (network)"), + CIcon(CIcons::StandardIconStatusBar16, "status bar"), + CIcon(CIcons::StandardIconTableRelationship16, "relationship"), + CIcon(CIcons::StandardIconTableSheet16, "table sheet"), + CIcon(CIcons::StandardIconText16, "text"), + CIcon(CIcons::StandardIconTick16, "tick"), + CIcon(CIcons::StandardIconTickRed16, "tick red"), + CIcon(CIcons::StandardIconTickSmall16, "tick (small)"), + CIcon(CIcons::StandardIconTickWhite16, "tick white"), + CIcon(CIcons::StandardIconUnknown16, "unknwon"), + CIcon(CIcons::StandardIconUser16, "user"), + CIcon(CIcons::StandardIconUsers16, "users"), + CIcon(CIcons::StandardIconViewMulticolumn16, "view multicolumn"), + CIcon(CIcons::StandardIconViewTile16, "view tile"), + CIcon(CIcons::StandardIconVolumeHigh16, "volume hight"), + CIcon(CIcons::StandardIconVolumeLow16, "volume low"), + CIcon(CIcons::StandardIconVolumeMuted16, "muted"), + CIcon(CIcons::StandardIconWarning16, "warning"), + CIcon(CIcons::StandardIconWeatherCloudy16, "cloudy"), + CIcon(CIcons::StandardIconWrench16, "wrench"), + CIcon(CIcons::Swift16, "swift"), + CIcon(CIcons::Swift24, "swift"), + CIcon(CIcons::Swift48, "swift"), + CIcon(CIcons::SwiftDatabase16, "swift"), + CIcon(CIcons::SwiftDatabase24, "swift"), + CIcon(CIcons::SwiftDatabase48, "swift"), + CIcon(CIcons::SwiftNova16, "swift"), + CIcon(CIcons::SwiftNova24, "swift"), + CIcon(CIcons::SwiftNova48, "swift") }); return icons; } @@ -160,4 +184,4 @@ namespace BlackMisc { return CIcon::iconByIndex(index); } -} +} // ns diff --git a/src/blackmisc/icons.cpp b/src/blackmisc/icons.cpp index 868193e1e..381eec805 100644 --- a/src/blackmisc/icons.cpp +++ b/src/blackmisc/icons.cpp @@ -11,6 +11,7 @@ #include #include #include +#include namespace BlackMisc { @@ -39,6 +40,24 @@ namespace BlackMisc return pm; } + const QPixmap &CIcons::color16() + { + static const QPixmap pm(":/diagona/icons/diagona/icons/color.png"); + return pm; + } + + const QPixmap &CIcons::colorPicker16() + { + static const QPixmap pm(":/diagona/icons/diagona/icons/ui-color-picker.png"); + return pm; + } + + const QPixmap &CIcons::colorSwatch16() + { + static const QPixmap pm(":/diagona/icons/diagona/icons/color-swatches.png"); + return pm; + } + const QPixmap &CIcons::resize16() { static const QPixmap pm(":/diagona/icons/diagona/icons/arrow-resize-135.png"); @@ -189,6 +208,12 @@ namespace BlackMisc return pm; } + const QPixmap &CIcons::paintCan16() + { + static const QPixmap pm(":/pastel/icons/pastel/16/paintcan.png"); + return pm; + } + const QPixmap &CIcons::plugin16() { static const QPixmap pm(":/pastel/icons/pastel/16/plugin.png"); @@ -207,6 +232,12 @@ namespace BlackMisc return pm; } + const QPixmap &CIcons::dragAndDrop16() + { + static const QPixmap pm(":/diagona/icons/diagona/icons/document-insert.png"); + return pm; + } + const QPixmap &CIcons::floatAll16() { static const QPixmap pm(":/pastel/icons/pastel/16/application-cascade.png"); @@ -327,6 +358,78 @@ namespace BlackMisc return pm; } + const QPixmap &CIcons::database16() + { + static const QPixmap pm(":/pastel/icons/pastel/16/database.png"); + return pm; + } + + const QPixmap &CIcons::databaseAdd16() + { + static const QPixmap pm(":/pastel/icons/pastel/16/database-add.png"); + return pm; + } + + const QPixmap &CIcons::databaseConnect16() + { + static const QPixmap pm(":/pastel/icons/pastel/16/database-conenct.png"); + return pm; + } + + const QPixmap &CIcons::databaseDelete16() + { + static const QPixmap pm(":/pastel/icons/pastel/16/database-delete.png"); + return pm; + } + + const QPixmap &CIcons::databaseEdit16() + { + static const QPixmap pm(":/pastel/icons/pastel/16/database-edit.png"); + return pm; + } + + const QPixmap &CIcons::databaseError16() + { + static const QPixmap pm(":/pastel/icons/pastel/16/database-error.png"); + return pm; + } + + const QPixmap &CIcons::databaseKey16() + { + static const QPixmap pm(":/pastel/icons/pastel/16/database-key.png"); + return pm; + } + + const QPixmap &CIcons::databaseTable16() + { + static const QPixmap pm(":/pastel/icons/pastel/16/database-table.png"); + return pm; + } + + const QPixmap &CIcons::preloader64() + { + static const QPixmap pm(":/preloaders/icons/preloaders/FillingRing64.gif"); + return pm; + } + + const QPixmap &CIcons::preloader32() + { + static const QPixmap pm(":/preloaders/icons/preloaders/FillingRing32.gif"); + return pm; + } + + const QPixmap &CIcons::preloader16() + { + static const QPixmap pm(":/preloaders/icons/preloaders/FillingRing16.gif"); + return pm; + } + + const QPixmap &CIcons::swift16() + { + static const QPixmap pm(swift48().scaled(16, 16)); + return pm; + } + const QPixmap &CIcons::swift24() { static const QPixmap pm(":/own/icons/own/swift/swift24.png"); @@ -351,6 +454,12 @@ namespace BlackMisc return pm; } + const QPixmap &CIcons::swiftDatabase16() + { + static const QPixmap pm(":/own/icons/own/swift/swiftDatabase16.png"); + return pm; + } + const QPixmap &CIcons::swiftDatabase24() { static const QPixmap pm(":/own/icons/own/swift/swiftDatabase24.png"); @@ -363,6 +472,12 @@ namespace BlackMisc return pm; } + const QPixmap &CIcons::swiftNova16() + { + static const QPixmap pm(swiftNova48().scaled(16, 16)); + return pm; + } + const QPixmap &CIcons::appWeather16() { return weatherCloudy16(); @@ -403,7 +518,7 @@ namespace BlackMisc return radar16(); } - const QPixmap &CIcons::appAircrafts16() + const QPixmap &CIcons::appAircraft16() { return paperPlane16(); } @@ -428,6 +543,46 @@ namespace BlackMisc return tableRelationship16(); } + const QPixmap &CIcons::appDatabase16() + { + return database16(); + } + + const QPixmap &CIcons::appAircraftIcao16() + { + return paperPlane16(); + } + + const QPixmap &CIcons::appAirlineIcao16() + { + return paperPlane16(); + } + + const QPixmap &CIcons::appLiveries16() + { + return paintCan16(); + } + + const QPixmap &CIcons::appModels16() + { + return appMappings16(); + } + + const QPixmap &CIcons::appCountries16() + { + return globe16(); + } + + const QPixmap &CIcons::appDistributors16() + { + return users16(); + } + + const QPixmap &CIcons::appDbStash16() + { + return databaseAdd16(); + } + const QPixmap &CIcons::roleC1() { static const QPixmap pm(":/vatsim/icons/vatsim/C1.png"); @@ -624,127 +779,301 @@ namespace BlackMisc { switch (index) { - case ApplicationIconAircrafts: return appAircrafts16(); - case ApplicationIconAtc: return appAtc16(); - case ApplicationIconAudio: return appAudio16(); - case ApplicationIconCockpit: return appCockpit16(); - case ApplicationIconFlightPlan: return appFlightPlan16(); - case ApplicationIconLog: return appLog16(); - case ApplicationIconMappings: return appMappings16(); - case ApplicationIconSettings: return appSettings16(); - case ApplicationIconSimulator: return appSimulator16(); - case ApplicationIconTextMessages: return appTextMessages16(); - case ApplicationIconWeather: return appWeather16(); - case AviationAtis: return atis(); - case AviationAttitudeIndicator: return attitudeIndicator16(); - case AviationMetar: return metar(); - case GeoPosition: return geoPosition16(); - case NetworkCapabilityTextOnly: return capabilityTextOnly(); - case NetworkCapabilityUnknown: return capabilityUnknown(); - case NetworkCapabilityVoice: return capabilityVoice(); - case NetworkCapabilityVoiceBackground: return capabilityVoiceBackground(); - case NetworkCapabilityVoiceReceiveOnly: return capabilityVoiceReceiveOnly(); - case NetworkCapabilityVoiceReceiveOnlyBackground: return capabilityVoiceReceiveOnlyBackground(); - case NetworkRoleApproach: return roleApproach(); - case NetworkRoleC1: return roleC1(); - case NetworkRoleC3: return roleC3(); - case NetworkRoleCenter: return roleCenter(); - case NetworkRoleDelivery: return roleDelivery(); - case NetworkRoleFss: return roleFss(); - case NetworkRoleGround: return roleGround(); - case NetworkRoleI1: return roleI1(); - case NetworkRoleI3: return roleI3(); - case NetworkRoleMnt: return roleMnt(); - case NetworkRoleObs: return roleObs(); - case NetworkRolePilot: return rolePilot(); - case NetworkRoleS1: return roleS1(); - case NetworkRoleS2: return roleS2(); - case NetworkRoleS3: return roleS3(); - case NetworkRoleSup: return roleSup(); - case NetworkRoleTower: return roleTower(); - case NetworkRoleUnknown: return roleUnknown(); - case NetworkVatsimLogo: return vatsimLogo16(); - case NetworkVatsimLogoWhite: return vatsimLogoWhite16(); - case NotSet: return empty(); - case StandardIconAppAircrafts16: return appAircrafts16(); - case StandardIconAppAtc16: return appAtc16(); - case StandardIconAppFlightPlan16: return appFlightPlan16(); - case StandardIconAppLog16: return appLog16(); - case StandardIconAppMappings16: return appMappings16(); - case StandardIconAppSettings16: return appSettings16(); - case StandardIconAppSimulator16: return appSimulator16(); - case StandardIconAppTextMessages16: return appTextMessages16(); - case StandardIconAppUsers16: return appUsers16(); - case StandardIconAppWeather16: return appWeather16(); - case StandardIconArrowMediumEast16: return arrowMediumEast16(); - case StandardIconArrowMediumNorth16: return arrowMediumNorth16(); - case StandardIconArrowMediumSouth16: return arrowMediumSouth16(); - case StandardIconArrowMediumWest16: return arrowMediumWest16(); - case StandardIconClose16: return close16(); - case StandardIconCross16: return cross16(); - case StandardIconCrossCircle16: return crossCircle16(); - case StandardIconCrossSmall16: return crossSmall16(); - case StandardIconCrossWhite16: return crossWhite16(); - case StandardIconDelete16: return delete16(); - case StandardIconDockBottom16: return dockBottom16(); - case StandardIconDockTop16: return dockTop16(); - case StandardIconEmpty16: return empty16(); - case StandardIconEmpty: return empty(); - case StandardIconError16: return error16(); - case StandardIconFloatAll16: return floatAll16(); - case StandardIconFloatOne16: return floatOne16(); - case StandardIconGlobe16: return globe16(); - case StandardIconHeadingOne16: return headingOne16(); - case StandardIconInfo16: return info16(); - case StandardIconJoystick16: return joystick16(); - case StandardIconMonitorError16: return monitorError16(); - case StandardIconPaperPlane16: return paperPlane16(); - case StandardIconPlugin16: return plugin16(); - case StandardIconRadar16: return radar16(); - case StandardIconRadio16: return radio16(); - case StandardIconRefresh16: return refresh16(); - case StandardIconResize16: return resize16(); - case StandardIconResizeHorizontal16: return resizeHorizontal16(); - case StandardIconResizeVertical16: return resizeVertical16(); - case StandardIconSpeakerNetwork16: return speakerNetwork16(); - case StandardIconStatusBar16: return statusBar16(); - case StandardIconSwift24: return swift24(); - case StandardIconSwift48: return swift48(); - case StandardIconSwiftNova24: return swiftNova24(); - case StandardIconSwiftNova48: return swiftNova48(); - case StandardIconTableRelationship16: return tableRelationship16(); - case StandardIconTableSheet16: return tableSheet16(); - case StandardIconText16: return text16(); - case StandardIconTick16: return tick16(); - case StandardIconTickRed16: return tickRed16(); - case StandardIconTickSmall16: return tickSmall16(); - case StandardIconTickWhite16: return tickWhite16(); - case StandardIconUnknown16: return unknown16(); - case StandardIconUser16: return user16(); - case StandardIconUsers16: return users16(); - case StandardIconViewMulticolumn16: return viewMultiColumn(); - case StandardIconViewTile16: return viewTile(); - case StandardIconVolumeHigh16: return volumeHigh16(); - case StandardIconVolumeLow16: return volumeLow16(); - case StandardIconVolumeMuted16: return volumeMuted16(); - case StandardIconWarning16: return warning16(); - case StandardIconWeatherCloudy16: return weatherCloudy16(); - case StandardIconWrench16: return wrench16(); - default: return empty(); + case ApplicationAircraft: + return appAircraft16(); + case ApplicationAircraftIcao: + return appAircraftIcao16(); + case ApplicationAirlineIcao: + return appAirlineIcao16(); + case ApplicationAtc: + return appAtc16(); + case ApplicationAudio: + return appAudio16(); + case ApplicationCockpit: + return appCockpit16(); + case ApplicationCountries: + return appCountries16(); + case ApplicationDatabase: + return appDatabase16(); + case ApplicationDbStash: + return appDbStash16(); + case ApplicationDistributors: + return appDistributors16(); + case ApplicationFlightPlan: + return appFlightPlan16(); + case ApplicationLiveries: + return appLiveries16(); + case ApplicationLog: + return appLog16(); + case ApplicationMappings: + return appMappings16(); + case ApplicationModels: + return appModels16(); + case ApplicationSettings: + return appSettings16(); + case ApplicationSimulator: + return appSimulator16(); + case ApplicationTextMessages: + return appTextMessages16(); + case ApplicationWeather: + return appWeather16(); + case AviationAtis: + return atis(); + case AviationAttitudeIndicator: + return attitudeIndicator16(); + case AviationMetar: + return metar(); + case GeoPosition: + return geoPosition16(); + case NetworkCapabilityTextOnly: + return capabilityTextOnly(); + case NetworkCapabilityUnknown: + return capabilityUnknown(); + case NetworkCapabilityVoice: + return capabilityVoice(); + case NetworkCapabilityVoiceBackground: + return capabilityVoiceBackground(); + case NetworkCapabilityVoiceReceiveOnly: + return capabilityVoiceReceiveOnly(); + case NetworkCapabilityVoiceReceiveOnlyBackground: + return capabilityVoiceReceiveOnlyBackground(); + case NetworkRoleApproach: + return roleApproach(); + case NetworkRoleC1: + return roleC1(); + case NetworkRoleC3: + return roleC3(); + case NetworkRoleCenter: + return roleCenter(); + case NetworkRoleDelivery: + return roleDelivery(); + case NetworkRoleFss: + return roleFss(); + case NetworkRoleGround: + return roleGround(); + case NetworkRoleI1: + return roleI1(); + case NetworkRoleI3: + return roleI3(); + case NetworkRoleMnt: + return roleMnt(); + case NetworkRoleObs: + return roleObs(); + case NetworkRolePilot: + return rolePilot(); + case NetworkRoleS1: + return roleS1(); + case NetworkRoleS2: + return roleS2(); + case NetworkRoleS3: + return roleS3(); + case NetworkRoleSup: + return roleSup(); + case NetworkRoleTower: + return roleTower(); + case NetworkRoleUnknown: + return roleUnknown(); + case NetworkVatsimLogo: + return vatsimLogo16(); + case NetworkVatsimLogoWhite: + return vatsimLogoWhite16(); + case NotSet: + return empty(); + case StandardIconAppAircrafts16: + return appAircraft16(); + case StandardIconAppAtc16: + return appAtc16(); + case StandardIconAppFlightPlan16: + return appFlightPlan16(); + case StandardIconAppLog16: + return appLog16(); + case StandardIconAppMappings16: + return appMappings16(); + case StandardIconAppSettings16: + return appSettings16(); + case StandardIconAppSimulator16: + return appSimulator16(); + case StandardIconAppTextMessages16: + return appTextMessages16(); + case StandardIconAppUsers16: + return appUsers16(); + case StandardIconAppWeather16: + return appWeather16(); + case StandardIconArrowMediumEast16: + return arrowMediumEast16(); + case StandardIconArrowMediumNorth16: + return arrowMediumNorth16(); + case StandardIconArrowMediumSouth16: + return arrowMediumSouth16(); + case StandardIconArrowMediumWest16: + return arrowMediumWest16(); + case StandardIconClose16: + return close16(); + case StandardIconColor16: + return color16(); + case StandardIconColorPicker16: + return colorPicker16(); + case StandardIconColorSwatch16: + return colorSwatch16(); + case StandardIconCross16: + return cross16(); + case StandardIconCrossCircle16: + return crossCircle16(); + case StandardIconCrossSmall16: + return crossSmall16(); + case StandardIconCrossWhite16: + return crossWhite16(); + case StandardIconDatabase16: + return database16(); + case StandardIconDatabaseAdd16: + return databaseAdd16(); + case StandardIconDatabaseConnect16: + return databaseConnect16(); + case StandardIconDatabaseDelete16: + return databaseDelete16(); + case StandardIconDatabaseEdit16: + return databaseEdit16(); + case StandardIconDatabaseError16: + return databaseError16(); + case StandardIconDatabaseKey16: + return databaseKey16(); + case StandardIconDatabaseTable16: + return databaseTable16(); + case StandardIconDelete16: + return delete16(); + case StandardIconDockBottom16: + return dockBottom16(); + case StandardIconDockTop16: + return dockTop16(); + case StandardIconDragAndDrop16: + return dragAndDrop16(); + case StandardIconEmpty16: + return empty16(); + case StandardIconEmpty: + return empty(); + case StandardIconError16: + return error16(); + case StandardIconFloatAll16: + return floatAll16(); + case StandardIconFloatOne16: + return floatOne16(); + case StandardIconGlobe16: + return globe16(); + case StandardIconHeadingOne16: + return headingOne16(); + case StandardIconInfo16: + return info16(); + case StandardIconJoystick16: + return joystick16(); + case StandardIconMonitorError16: + return monitorError16(); + case StandardIconPaperPlane16: + return paperPlane16(); + case StandardIconPaintCan16: + return paintCan16(); + case StandardIconPlugin16: + return plugin16(); + case StandardIconRadar16: + return radar16(); + case StandardIconRadio16: + return radio16(); + case StandardIconRefresh16: + return refresh16(); + case StandardIconResize16: + return resize16(); + case StandardIconResizeHorizontal16: + return resizeHorizontal16(); + case StandardIconResizeVertical16: + return resizeVertical16(); + case StandardIconSpeakerNetwork16: + return speakerNetwork16(); + case StandardIconStatusBar16: + return statusBar16(); + case StandardIconTableRelationship16: + return tableRelationship16(); + case StandardIconTableSheet16: + return tableSheet16(); + case StandardIconText16: + return text16(); + case StandardIconTick16: + return tick16(); + case StandardIconTickRed16: + return tickRed16(); + case StandardIconTickSmall16: + return tickSmall16(); + case StandardIconTickWhite16: + return tickWhite16(); + case StandardIconUnknown16: + return unknown16(); + case StandardIconUser16: + return user16(); + case StandardIconUsers16: + return users16(); + case StandardIconViewMulticolumn16: + return viewMultiColumn(); + case StandardIconViewTile16: + return viewTile(); + case StandardIconVolumeHigh16: + return volumeHigh16(); + case StandardIconVolumeLow16: + return volumeLow16(); + case StandardIconVolumeMuted16: + return volumeMuted16(); + case StandardIconWarning16: + return warning16(); + case StandardIconWeatherCloudy16: + return weatherCloudy16(); + case StandardIconWrench16: + return wrench16(); + case Swift16: + return swift16(); + case Swift24: + return swift24(); + case Swift48: + return swift48(); + case SwiftNova16: + return swiftNova16(); + case SwiftNova24: + return swiftNova24(); + case SwiftNova48: + return swiftNova48(); + case SwiftDatabase16: + return swiftDatabase16(); + case SwiftDatabase24: + return swiftDatabase24(); + case SwiftDatabase48: + return swiftDatabase48(); + default: + return empty(); } } QPixmap CIcons::pixmapByIndex(CIcons::IconIndex index, int rotateDegrees) { - const QPixmap original = pixmapByIndex(index); - if (rotateDegrees == 0) return original; - QMatrix rm; - rm.rotate(rotateDegrees); - QPixmap rotated = original.transformed(rm); - int xoffset = (rotated.width() - original.width()) / 2; - int yoffset = (rotated.height() - original.height()) / 2; - rotated = rotated.copy(xoffset, yoffset, original.width(), original.height()); - return rotated; + if (rotateDegrees == 0) { return pixmapByIndex(index); } + return rotate(rotateDegrees, pixmapByIndex(index)); + } + + const QPixmap &CIcons::pixmapByResourceFileName(const QString &fileName) + { + Q_ASSERT_X(!fileName.isEmpty(), Q_FUNC_INFO, "missing filename"); + if (!getResourceFileCache().contains(fileName)) + { + QString path = fileName.contains("resources") ? + QCoreApplication::applicationDirPath().append("/").append(fileName) : + QCoreApplication::applicationDirPath().append("/resources/").append(fileName); + QPixmap pm; + bool s = pm.load(path); + if (s) + { + getResourceFileCache().insert(fileName, pm); + } + else + { + getResourceFileCache().insert(fileName, CIcons::empty()); + } + } + return getResourceFileCache()[fileName]; } QImage CIcons::changeImageBackgroundColor(const QImage &imgSource, Qt::GlobalColor backgroundColor) @@ -757,6 +1086,23 @@ namespace BlackMisc return destBackgroundImg; } + QPixmap CIcons::rotate(int rotateDegrees, const QPixmap &original) + { + QMatrix rm; + rm.rotate(rotateDegrees); + QPixmap rotated = original.transformed(rm); + int xoffset = (rotated.width() - original.width()) / 2; + int yoffset = (rotated.height() - original.height()) / 2; + rotated = rotated.copy(xoffset, yoffset, original.width(), original.height()); + return rotated; + } + + QMap &CIcons::getResourceFileCache() + { + static QMap cache; + return cache; + } + QPixmap CIcons::changeResourceBackgroundColor(const QString &resource, Qt::GlobalColor backgroundColor) { QImage imgSource(resource); diff --git a/src/blackmisc/icons.h b/src/blackmisc/icons.h index 90bdb6898..2a836bb85 100644 --- a/src/blackmisc/icons.h +++ b/src/blackmisc/icons.h @@ -14,6 +14,7 @@ #include "blackmiscexport.h" #include +#include namespace BlackMisc { @@ -29,17 +30,25 @@ namespace BlackMisc enum IconIndex { // !! keep indexes alphabetically sorted and in sync with CIconList - ApplicationIconAircrafts, - ApplicationIconAtc, - ApplicationIconAudio, - ApplicationIconCockpit, - ApplicationIconFlightPlan, - ApplicationIconLog, - ApplicationIconMappings, - ApplicationIconSettings, - ApplicationIconSimulator, - ApplicationIconTextMessages, - ApplicationIconWeather, + ApplicationAircraft = 0, + ApplicationAircraftIcao, + ApplicationAirlineIcao, + ApplicationAtc, + ApplicationAudio, + ApplicationCockpit, + ApplicationCountries, + ApplicationDatabase, + ApplicationDbStash, + ApplicationDistributors, + ApplicationFlightPlan, + ApplicationLiveries, + ApplicationLog, + ApplicationMappings, + ApplicationModels, + ApplicationSettings, + ApplicationSimulator, + ApplicationTextMessages, + ApplicationWeather, AviationAttitudeIndicator, AviationAtis, AviationMetar, @@ -86,13 +95,25 @@ namespace BlackMisc StandardIconArrowMediumSouth16, StandardIconArrowMediumWest16, StandardIconClose16, + StandardIconColor16, + StandardIconColorPicker16, + StandardIconColorSwatch16, StandardIconCross16, StandardIconCrossCircle16, StandardIconCrossSmall16, StandardIconCrossWhite16, + StandardIconDatabase16, + StandardIconDatabaseAdd16, + StandardIconDatabaseConnect16, + StandardIconDatabaseDelete16, + StandardIconDatabaseEdit16, + StandardIconDatabaseError16, + StandardIconDatabaseKey16, + StandardIconDatabaseTable16, StandardIconDelete16, StandardIconDockBottom16, StandardIconDockTop16, + StandardIconDragAndDrop16, StandardIconEmpty, StandardIconEmpty16, StandardIconError16, @@ -106,6 +127,7 @@ namespace BlackMisc StandardIconLockOpen16, StandardIconMonitorError16, StandardIconPaperPlane16, + StandardIconPaintCan16, StandardIconPlugin16, StandardIconRadar16, StandardIconRadio16, @@ -115,12 +137,6 @@ namespace BlackMisc StandardIconResizeVertical16, StandardIconSpeakerNetwork16, StandardIconStatusBar16, - StandardIconSwift24, - StandardIconSwift48, - StandardIconSwiftDatabase24, - StandardIconSwiftDatabase48, - StandardIconSwiftNova24, - StandardIconSwiftNova48, StandardIconTableRelationship16, StandardIconTableSheet16, StandardIconText16, @@ -138,7 +154,26 @@ namespace BlackMisc StandardIconVolumeMuted16, StandardIconWarning16, StandardIconWeatherCloudy16, - StandardIconWrench16 + StandardIconWrench16, + Swift16, + Swift24, + Swift48, + SwiftDatabase16, + SwiftDatabase24, + SwiftDatabase48, + SwiftNova16, + SwiftNova24, + SwiftNova48, + + // --------------------------- + // Icon is not from resources, but generated at runtime + // --------------------------- + IconIsGenerated, + + // --------------------------- + // Icon is not from resources, but a file + // --------------------------- + IconIsFile }; // ------------------------------------------------------------- @@ -157,6 +192,15 @@ namespace BlackMisc //! Close static const QPixmap &close16(); + //! Color + static const QPixmap &color16(); + + //! Color picker + static const QPixmap &colorPicker16(); + + //! Color swatch + static const QPixmap &colorSwatch16(); + //! Resize static const QPixmap &resize16(); @@ -232,6 +276,9 @@ namespace BlackMisc //! Lock static const QPixmap &lockClosed16(); + //! Paint can + static const QPixmap &paintCan16(); + //! Plugin static const QPixmap &plugin16(); @@ -241,6 +288,9 @@ namespace BlackMisc //! Docking static const QPixmap &dockBottom16(); + //! Drag and drop + static const QPixmap &dragAndDrop16(); + //! Float all static const QPixmap &floatAll16(); @@ -301,24 +351,82 @@ namespace BlackMisc //! Arrow static const QPixmap &arrowMediumWest16(); + // -------------------------------------------------- + // -- Database + // -------------------------------------------------- + + //! Database + static const QPixmap &database16(); + + //! Database add + static const QPixmap &databaseAdd16(); + + //! Database connect + static const QPixmap &databaseConnect16(); + + //! Database delete + static const QPixmap &databaseDelete16(); + + //! Database edit + static const QPixmap &databaseEdit16(); + + //! Database error + static const QPixmap &databaseError16(); + + //! Database key + static const QPixmap &databaseKey16(); + + //! Database table + static const QPixmap &databaseTable16(); + + // -------------------------------------------------- + // -- Preloader icons + // -------------------------------------------------- + + //! Preloader + static const QPixmap &preloader64(); + + //! Preloader + static const QPixmap &preloader32(); + + //! Preloader + static const QPixmap &preloader16(); + + // -------------------------------------------------- + // -- swift + // -------------------------------------------------- + + //! swift icon + static const QPixmap &swift16(); + //! swift icon static const QPixmap &swift24(); //! swift icon static const QPixmap &swift48(); + //! swift icon / database + static const QPixmap &swiftDatabase16(); + //! swift icon / database static const QPixmap &swiftDatabase24(); //! swift icon / database static const QPixmap &swiftDatabase48(); + //! swift icon (nova) + static const QPixmap &swiftNova16(); + //! swift icon (nova) static const QPixmap &swiftNova24(); //! swift icon (nova) static const QPixmap &swiftNova48(); + // -------------------------------------------------- + // -- application icons + // -------------------------------------------------- + //! Application weather static const QPixmap &appWeather16(); @@ -344,7 +452,7 @@ namespace BlackMisc static const QPixmap &appAtc16(); //! Application aircrafts - static const QPixmap &appAircrafts16(); + static const QPixmap &appAircraft16(); //! Application mappings static const QPixmap &appMappings16(); @@ -358,6 +466,30 @@ namespace BlackMisc //! Voice rooms static const QPixmap &appVoiceRooms16(); + //! App.database + static const QPixmap &appDatabase16(); + + //! Aircraft ICAO + static const QPixmap &appAircraftIcao16(); + + //! Airline ICAO + static const QPixmap &appAirlineIcao16(); + + //! Liveries + static const QPixmap &appLiveries16(); + + //! Models + static const QPixmap &appModels16(); + + //! Countries + static const QPixmap &appCountries16(); + + //! Distributors + static const QPixmap &appDistributors16(); + + //! Stash + static const QPixmap &appDbStash16(); + // ------------------------------------------------------------- // Network and aviation // ------------------------------------------------------------- @@ -471,6 +603,13 @@ namespace BlackMisc //! Pixmap by given index rotated static QPixmap pixmapByIndex(IconIndex index, int rotateDegrees); + // ------------------------------------------------------------- + // By file from swift resource directory + // ------------------------------------------------------------- + + //! Pixmap by given index + static const QPixmap &pixmapByResourceFileName(const QString &fileName); + // ------------------------------------------------------------- // Utility functions // ------------------------------------------------------------- @@ -483,6 +622,13 @@ namespace BlackMisc //! Change image background color static QImage changeImageBackgroundColor(const QImage &imgSource, Qt::GlobalColor backgroundColor); + + //! Rotate by pixmap + static QPixmap rotate(int rotateDegrees, const QPixmap &original); + + private: + //! File cache for the loaded + static QMap &getResourceFileCache(); }; } #endif // guard diff --git a/src/blackmisc/icons/famfamfam/License.txt b/src/blackmisc/icons/famfamfam/License.txt new file mode 100644 index 000000000..1020f893c --- /dev/null +++ b/src/blackmisc/icons/famfamfam/License.txt @@ -0,0 +1,3 @@ +I also love to hear of my work being used, feel encouraged to send an email with a link or screenshot of the icons in their new home to mjames at gmail dot com. This work is licensed under a Creative Commons Attribution 2.5 License. This means you may use it for any purpose, and make any changes you like. All I ask is that you include a link back to this page in your credits (although a giant link on every page of your website really isn't needed, contact me to discuss specifics). +The icons can also be used under Creative Commons Attribution 3.0 License (Hi Debian folks!) with the following requirements: +As an author, I would appreciate a reference to my authorship of the Silk icon set contents within a readme file or equivalent documentation for the software which includes the set or a subset of the icons contained within. \ No newline at end of file diff --git a/src/blackmisc/icons/own/swift/swift16Database.png b/src/blackmisc/icons/own/swift/swift16Database.png new file mode 100644 index 000000000..729947075 Binary files /dev/null and b/src/blackmisc/icons/own/swift/swift16Database.png differ diff --git a/src/blackmisc/icons/pastel/License.txt b/src/blackmisc/icons/pastel/License.txt new file mode 100644 index 000000000..409080335 --- /dev/null +++ b/src/blackmisc/icons/pastel/License.txt @@ -0,0 +1,13 @@ +License + +The Pastel SVG icon set Created by Michael Buckley is licensed under the + +Creative Commons Attribution NonCommercial Share Alike 4.0 http://creativecommons.org/licenses/by-nc-sa/4.0/ + +However additionally I would kindly ask that: + +For non commercial use a link back to the home page is very appreciated but in no way required. +If you put Pastel SVG package on another web host in modified form that you provide a link back to the Pastel SVG home page as part of the attribution. http://codefisher.org/pastel-svg/ +For those that want to use the icons commercially, I ask that you first make a donation and then you may use it under following license. + +Creative Commons Attribution Share Alike 4.0 http://creativecommons.org/licenses/by-sa/4.0/ \ No newline at end of file diff --git a/src/blackmisc/icons/preloaders/FillingRing16.gif b/src/blackmisc/icons/preloaders/FillingRing16.gif new file mode 100644 index 000000000..c6ae824b7 Binary files /dev/null and b/src/blackmisc/icons/preloaders/FillingRing16.gif differ diff --git a/src/blackmisc/icons/preloaders/FillingRing32.gif b/src/blackmisc/icons/preloaders/FillingRing32.gif new file mode 100644 index 000000000..4c91e5369 Binary files /dev/null and b/src/blackmisc/icons/preloaders/FillingRing32.gif differ diff --git a/src/blackmisc/icons/preloaders/FillingRing64.gif b/src/blackmisc/icons/preloaders/FillingRing64.gif new file mode 100644 index 000000000..9427a5f76 Binary files /dev/null and b/src/blackmisc/icons/preloaders/FillingRing64.gif differ diff --git a/src/blackmisc/icons/preloaders/FloatingRays16.gif b/src/blackmisc/icons/preloaders/FloatingRays16.gif new file mode 100644 index 000000000..969300360 Binary files /dev/null and b/src/blackmisc/icons/preloaders/FloatingRays16.gif differ diff --git a/src/blackmisc/icons/preloaders/FloatingRays32.gif b/src/blackmisc/icons/preloaders/FloatingRays32.gif new file mode 100644 index 000000000..f14e60010 Binary files /dev/null and b/src/blackmisc/icons/preloaders/FloatingRays32.gif differ diff --git a/src/blackmisc/icons/preloaders/FloatingRays64.gif b/src/blackmisc/icons/preloaders/FloatingRays64.gif new file mode 100644 index 000000000..fc1a6764f Binary files /dev/null and b/src/blackmisc/icons/preloaders/FloatingRays64.gif differ diff --git a/src/blackmisc/icons/preloaders/License.txt b/src/blackmisc/icons/preloaders/License.txt new file mode 100644 index 000000000..02427dbdd --- /dev/null +++ b/src/blackmisc/icons/preloaders/License.txt @@ -0,0 +1,5 @@ +You are encouraged and legally entitled to copy and modify any animated GIF and APNG images, generated by http://preloaders.net web-site. +All animated GIF and APNG images are completely free to use in all projects (web and desktop applications, freeware and commercial projects) +You are encouraged, but NOT obligated to place any reference to http://preloaders.net web-site to use it`s content in any projects and applications, WITH THE EXCEPTION of any other animated images generator applications, which must indicate the source of the used image with a visible link to Preloaders.net web-site on one or more pages that is/are linked to from the main page of the web-site that uses the image from Preloaders.net web-application +Preloaders.net project reserves the right to refuse service to anyone without any explanation and/or notification +When using animations from "Social bookmarks" category you agree to terms of use and privacy policy of a particular logo provided by it`s owner \ No newline at end of file diff --git a/src/blackmisc/icons/preloaders/Preloaders.net.url b/src/blackmisc/icons/preloaders/Preloaders.net.url new file mode 100644 index 000000000..57e02c771 --- /dev/null +++ b/src/blackmisc/icons/preloaders/Preloaders.net.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://preloaders.net/