/* Copyright (C) 2013 * swift project Community / Contributors * * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, * including this file, may be copied, modified, propagated, or distributed except according to the terms * contained in the LICENSE file. */ #include "icons.h" #include "blackmisc/project.h" #include "blackmisc/fileutils.h" #include #include #include #include namespace BlackMisc { const QPixmap &CIcons::info16() { static const QPixmap pm(":/pastel/icons/pastel/16/infomation.png"); return pm; } const QPixmap &CIcons::warning16() { static const QPixmap pm(":/pastel/icons/pastel/16/bullet-error.png"); return pm; } const QPixmap &CIcons::error16() { static const QPixmap pm(":/pastel/icons/pastel/16/close-red.png"); return pm; } const QPixmap &CIcons::close16() { static const QPixmap pm(":/diagona/icons/diagona/icons/cross-button.png"); return pm; } const QPixmap &CIcons::color16() { static const QPixmap pm(":/diagona/icons/diagona/icons/color.png"); return pm; } const QPixmap &CIcons::disk16() { static const QPixmap pm(":/pastel/icons/pastel/16/disk.png"); return pm; } const QPixmap &CIcons::load16() { return disk16(); } const QPixmap &CIcons::save16() { return disk16(); } 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"); return pm; } const QPixmap &CIcons::resizeHorizontal16() { static const QPixmap pm(":/diagona/icons/diagona/icons/arrow-resize.png"); return pm; } const QPixmap &CIcons::resizeVertical16() { static const QPixmap pm(":/diagona/icons/diagona/icons/arrow-resize-090.png"); return pm; } const QPixmap &CIcons::refresh16() { static const QPixmap pm(":/pastel/icons/pastel/16/arrow-refresh.png"); return pm; } const QPixmap &CIcons::text16() { static const QPixmap pm(":/pastel/icons/pastel/16/application-view-text.png"); return pm; } const QPixmap &CIcons::globe16() { static const QPixmap pm(":/diagona/icons/diagona/icons/globe.png"); return pm; } const QPixmap &CIcons::headingOne16() { static const QPixmap pm(":/pastel/icons/pastel/16/text-heading-1.png"); return pm; } const QPixmap &CIcons::user16() { static const QPixmap pm(":/pastel/icons/pastel/16/user.png"); return pm; } const QPixmap &CIcons::users16() { static const QPixmap pm(":/diagona/icons/diagona/icons/users.png"); return pm; } const QPixmap &CIcons::viewMultiColumn() { static const QPixmap pm(":/pastel/icons/pastel/16/application-view-multicolumns.png"); return pm; } const QPixmap &CIcons::viewTile() { static const QPixmap pm(":/pastel/icons/pastel/16/application-view-tile.png"); return pm; } const QPixmap &CIcons::tick16() { static const QPixmap pm(":/diagona/icons/diagona/icons/tick.png"); return pm; } const QPixmap &CIcons::tickRed16() { static const QPixmap pm(":/diagona/icons/diagona/icons/tick-red.png"); return pm; } const QPixmap &CIcons::tickWhite16() { static const QPixmap pm(":/diagona/icons/diagona/icons/tick-white.png"); return pm; } const QPixmap &CIcons::tickSmall16() { static const QPixmap pm(":/diagona/icons/diagona/icons/tick-small.png"); return pm; } const QPixmap &CIcons::cross16() { static const QPixmap pm(":/diagona/icons/diagona/icons/cross.png"); return pm; } const QPixmap &CIcons::crossWhite16() { static const QPixmap pm(":/diagona/icons/diagona/icons/cross-white.png"); return pm; } const QPixmap &CIcons::crossCircle16() { static const QPixmap pm(":/diagona/icons/diagona/icons/cross-circle.png"); return pm; } const QPixmap &CIcons::crossSmall16() { static const QPixmap pm(":/diagona/icons/diagona/icons/cross-small.png"); return pm; } const QPixmap &CIcons::delete16() { static const QPixmap pm(":/pastel/icons/pastel/16/delete.png"); return pm; } const QPixmap &CIcons::radio16() { static const QPixmap pm(":/diagona/icons/diagona/icons/radio.png"); return pm; } const QPixmap &CIcons::speakerNetwork16() { static const QPixmap pm(":/diagona/icons/diagona/icons/speaker-network.png"); return pm; } const QPixmap &CIcons::joystick16() { static const QPixmap pm(":/diagona/icons/diagona/icons/joystick.png"); return pm; } const QPixmap &CIcons::lockOpen16() { static const QPixmap pm(":/pastel/icons/pastel/16/lock-open.png"); return pm; } const QPixmap &CIcons::lockClosed16() { static const QPixmap pm(":/pastel/icons/pastel/16/lock.png"); 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"); return pm; } const QPixmap &CIcons::dockTop16() { static const QPixmap pm(":/diagona/icons/diagona/icons/application-dock-090.png"); return pm; } const QPixmap &CIcons::dockBottom16() { static const QPixmap pm(":/diagona/icons/diagona/icons/application-dock-270.png"); 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"); return pm; } const QPixmap &CIcons::floatOne16() { static const QPixmap pm(":/pastel/icons/pastel/16/application-double.png"); return pm; } const QPixmap &CIcons::volumeHigh16() { static const QPixmap pm(":/diagona/icons/diagona/icons/speaker-volume.png"); return pm; } const QPixmap &CIcons::volumeLow16() { static const QPixmap pm(":/diagona/icons/diagona/icons/speaker-volume-low.png"); return pm; } const QPixmap &CIcons::volumeMuted16() { static const QPixmap pm(":/diagona/icons/diagona/icons/speaker-volume-control-mute.png"); return pm; } const QPixmap &CIcons::wrench16() { static const QPixmap pm(":/pastel/icons/pastel/16/wrench.png"); return pm; } const QPixmap &CIcons::radar16() { static const QPixmap pm(":/diagona/icons/diagona/icons/radar.png"); return pm; } const QPixmap &CIcons::tableRelationship16() { static const QPixmap pm(":/pastel/icons/pastel/16/table-relationship.png"); return pm; } const QPixmap &CIcons::paperPlane16() { static const QPixmap pm(":/diagona/icons/diagona/icons/paper-plane.png"); return pm; } const QPixmap &CIcons::tableSheet16() { static const QPixmap pm(":/diagona/icons/diagona/icons/table-sheet.png"); return pm; } const QPixmap &CIcons::weatherCloudy16() { static const QPixmap pm(":/diagona/icons/diagona/icons/weather-cloudy.png"); return pm; } const QPixmap &CIcons::monitorError16() { static const QPixmap pm(":/pastel/icons/pastel/16/monitor-error.png"); return pm; } const QPixmap &CIcons::statusBar16() { static const QPixmap pm(":/pastel/icons/pastel/16/application-statusbar.png"); return pm; } const QPixmap &CIcons::unknown16() { static const QPixmap pm(":/pastel/icons/pastel/16/help.png"); return pm; } const QPixmap &CIcons::empty() { static const QPixmap pm; return pm; } QPixmap transparentPixmapImpl(const QSize &size) { // http://curtis.humphreyonline.us/code/qt-code/making-a-qpixmap-transparent-wrong-way-right-way QPixmap pix(size); pix.fill(Qt::transparent); QPainter painter; painter.begin(&pix); painter.drawPixmap(pix.rect(), pix); painter.end(); return pix; } const QPixmap &CIcons::empty16() { static const QPixmap pm(transparentPixmapImpl(QSize(16, 16))); return pm; } const QPixmap &CIcons::arrowMediumNorth16() { static const QPixmap pm(":/diagona/icons/diagona/icons/arrow-090-medium.png"); return pm; } const QPixmap &CIcons::arrowMediumSouth16() { static const QPixmap pm(":/diagona/icons/diagona/icons/arrow-270-medium.png"); return pm; } const QPixmap &CIcons::arrowMediumEast16() { static const QPixmap pm(":/diagona/icons/diagona/icons/arrow-000-medium.png"); return pm; } const QPixmap &CIcons::arrowMediumWest16() { static const QPixmap pm(":/diagona/icons/diagona/icons/arrow-180-medium.png"); return pm; } const QPixmap &CIcons::filter16() { return tableSheet16(); } 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"); return pm; } const QPixmap &CIcons::swift48() { static const QPixmap pm(":/own/icons/own/swift/swift48.png"); return pm; } const QPixmap &CIcons::swiftNova24() { static const QPixmap pm(":/own/icons/own/swift/swiftCartoonNova24.png"); return pm; } const QPixmap &CIcons::swiftNova48() { static const QPixmap pm(":/own/icons/own/swift/swiftCartoonNova48.png"); 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"); return pm; } const QPixmap &CIcons::swiftDatabase48() { static const QPixmap pm(":/own/icons/own/swift/swiftDatabase48.png"); return pm; } const QPixmap &CIcons::swiftNova16() { static const QPixmap pm(swiftNova48().scaled(16, 16)); return pm; } const QPixmap &CIcons::appWeather16() { return weatherCloudy16(); } const QPixmap &CIcons::appSettings16() { return wrench16(); } const QPixmap &CIcons::appUsers16() { return users16(); } const QPixmap &CIcons::appFlightPlan16() { return tableSheet16(); } const QPixmap &CIcons::appCockpit16() { return radio16(); } const QPixmap &CIcons::appSimulator16() { return joystick16(); } const QPixmap &CIcons::appTextMessages16() { return text16(); } const QPixmap &CIcons::appAtc16() { return radar16(); } const QPixmap &CIcons::appAircraft16() { return paperPlane16(); } const QPixmap &CIcons::appMappings16() { return tableRelationship16(); } const QPixmap &CIcons::appLog16() { return monitorError16(); } const QPixmap &CIcons::appAudio16() { return speakerNetwork16(); } const QPixmap &CIcons::appVoiceRooms16() { 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"); return pm; } const QPixmap &CIcons::roleC2() { static const QPixmap pm(":/vatsim/icons/vatsim/C2.png"); return pm; } const QPixmap &CIcons::roleC3() { static const QPixmap pm(":/vatsim/icons/vatsim/C2.png"); return pm; } const QPixmap &CIcons::roleS1() { static const QPixmap pm(":/vatsim/icons/vatsim/S1.png"); return pm; } const QPixmap &CIcons::roleS2() { static const QPixmap pm(":/vatsim/icons/vatsim/S2.png"); return pm; } const QPixmap &CIcons::roleS3() { static const QPixmap pm(":/vatsim/icons/vatsim/S3.png"); return pm; } const QPixmap &CIcons::roleI1() { static const QPixmap pm(":/vatsim/icons/vatsim/I1.png"); return pm; } const QPixmap &CIcons::roleI3() { static const QPixmap pm(":/vatsim/icons/vatsim/I3.png"); return pm; } const QPixmap &CIcons::roleMnt() { static const QPixmap pm(":/vatsim/icons/vatsim/MNT.png"); return pm; } const QPixmap &CIcons::roleObs() { static const QPixmap pm(":/vatsim/icons/vatsim/OBS.png"); return pm; } const QPixmap &CIcons::roleSup() { static const QPixmap pm(":/vatsim/icons/vatsim/SUP.png"); return pm; } const QPixmap &CIcons::rolePilot() { static const QPixmap pm(QPixmap(":/own/icons/own/pilot.png").scaledToWidth(16, Qt::SmoothTransformation)); return pm; } const QPixmap &CIcons::roleApproach() { static const QPixmap pm(QPixmap(":/own/icons/own/app.jpg").scaledToWidth(16, Qt::SmoothTransformation)); return pm; } const QPixmap &CIcons::roleGround() { static const QPixmap pm(QPixmap(":/own/icons/own/gnd.jpg").scaledToWidth(16, Qt::SmoothTransformation)); return pm; } const QPixmap &CIcons::roleDelivery() { static const QPixmap pm(QPixmap(":/own/icons/own/del.jpg").scaledToWidth(16, Qt::SmoothTransformation)); return pm; } const QPixmap &CIcons::roleFss() { return info16(); } const QPixmap &CIcons::roleTower() { static const QPixmap pm(QPixmap(":/own/icons/own/twr.jpg").scaledToWidth(16, Qt::SmoothTransformation)); return pm; } const QPixmap &CIcons::roleCenter() { static const QPixmap pm(QPixmap(":/own/icons/own/ctr.jpg").scaledToWidth(16, Qt::SmoothTransformation)); return pm; } const QPixmap &CIcons::roleUnknown() { static const QPixmap pm(":/pastel/icons/pastel/16/help.png"); return pm; } const QPixmap &CIcons::vatsimLogo16() { static const QPixmap pm(":/vatsim/icons/vatsim/VatsimLogo16.png"); return pm; } const QPixmap &CIcons::vatsimLogo32() { static const QPixmap pm(":/vatsim/icons/vatsim/VatsimLogo32.png"); return pm; } const QPixmap &CIcons::vatsimLogoWhite16() { static const QPixmap pm(":/vatsim/icons/vatsim/VatsimLogoWhite16.png"); return pm; } const QPixmap &CIcons::vatsimLogoWhite32() { static const QPixmap pm(":/vatsim/icons/vatsim/VatsimLogoWhite32.png"); return pm; } const QPixmap &CIcons::capabilityVoice() { static const QPixmap pm(":/diagona/icons/diagona/icons/headphone.png"); return pm; } const QPixmap &CIcons::capabilityVoiceBackground() { static const QPixmap pm(changeResourceBackgroundColor(":/diagona/icons/diagona/icons/headphone.png", Qt::green)); return pm; } const QPixmap &CIcons::capabilityVoiceReceiveOnly() { static const QPixmap pm(":/diagona/icons/diagona/icons/headphone.png"); return pm; } const QPixmap &CIcons::capabilityVoiceReceiveOnlyBackground() { static const QPixmap pm(changeResourceBackgroundColor(":/diagona/icons/diagona/icons/headphone.png", Qt::yellow)); return pm; } const QPixmap &CIcons::capabilityTextOnly() { return appTextMessages16(); } const QPixmap &CIcons::capabilityUnknown() { return unknown16(); } const QPixmap &CIcons::attitudeIndicator16() { static const QPixmap pm(":/own/icons/own/attitude_indicator_climbing_16.png"); return pm; } const QPixmap &CIcons::metar() { return weatherCloudy16(); } const QPixmap &CIcons::atis() { return text16(); } const QPixmap &CIcons::geoPosition16() { return globe16(); } const QPixmap &CIcons::modelInclude16() { static const QPixmap pm(":/diagona/icons/diagona/icons/paper-plane--plus.png"); return pm; } const QPixmap &CIcons::modelExclude16() { // static const QPixmap pm(":/diagona/icons/diagona/icons/paper-plane--minus.png"); // return pm; return cross16(); } const QPixmap &CIcons::pixmapByIndex(CIcons::IconIndex index) { switch (index) { 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 ModelExclude: return modelExclude16(); case ModelInclude: return modelInclude16(); 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 StandardIconLoad16: return load16(); 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 StandardIconSave16: return save16(); 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) { 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 = CFileUtils::appendFilePaths(CProject::getImagesDir(), 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) { QImage destBackgroundImg(imgSource.size(), QImage::Format_RGB32); destBackgroundImg.fill(backgroundColor); QPainter p(&destBackgroundImg); p.setCompositionMode(QPainter::CompositionMode_SourceAtop); p.drawImage(0, 0, imgSource); 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); QImage destBackgroundImg(changeImageBackgroundColor(imgSource, backgroundColor)); return QPixmap::fromImage(destBackgroundImg); } QIcon CIcons::changeIconBackgroundColor(const QIcon &icon, Qt::GlobalColor backgroundColor, const QSize &targetsize) { QImage imgSource(icon.pixmap(targetsize).toImage()); QImage destBackgroundImg(changeImageBackgroundColor(imgSource, backgroundColor)); return QIcon(QPixmap::fromImage(destBackgroundImg)); } } // namespace