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/