From 578d2548e46cd1a506dbd0f0762eb33056500a59 Mon Sep 17 00:00:00 2001 From: DoinLakeFlyer Date: Thu, 26 Mar 2020 17:32:09 -0700 Subject: [PATCH] Add global palette object to QGroundControlQmlGlobal for generic usage --- src/QGCPalette.cc | 14 +++++++---- src/QGCPalette.h | 29 ++++++++++++++++++++++ src/QmlControls/QGroundControlQmlGlobal.cc | 1 + src/QmlControls/QGroundControlQmlGlobal.h | 3 +++ 4 files changed, 42 insertions(+), 5 deletions(-) diff --git a/src/QGCPalette.cc b/src/QGCPalette.cc index 6abd89938..69986af82 100644 --- a/src/QGCPalette.cc +++ b/src/QGCPalette.cc @@ -81,11 +81,15 @@ void QGCPalette::_buildMap() DECLARE_QGC_COLOR(statusPassedText, "#9d9d9d", "#000000", "#707070", "#ffffff") DECLARE_QGC_COLOR(statusPendingText, "#9d9d9d", "#000000", "#707070", "#ffffff") - // Colors are not affecting by theming - DECLARE_QGC_COLOR(mapWidgetBorderLight, "#ffffff", "#ffffff", "#ffffff", "#ffffff") - DECLARE_QGC_COLOR(mapWidgetBorderDark, "#000000", "#000000", "#000000", "#000000") - DECLARE_QGC_COLOR(brandingPurple, "#4A2C6D", "#4A2C6D", "#4A2C6D", "#4A2C6D") - DECLARE_QGC_COLOR(brandingBlue, "#48D6FF", "#6045c5", "#48D6FF", "#6045c5") + // Colors not affecting by theming + // Disabled Enabled + DECLARE_QGC_NONTHEMED_COLOR(brandingPurple, "#4A2C6D", "#4A2C6D") + DECLARE_QGC_NONTHEMED_COLOR(brandingBlue, "#48D6FF", "#6045c5") + + // Colors not affecting by theming or enable/disable + DECLARE_QGC_SINGLE_COLOR(mapWidgetBorderLight, "#ffffff") + DECLARE_QGC_SINGLE_COLOR(mapWidgetBorderDark, "#000000") + DECLARE_QGC_SINGLE_COLOR(mapMissionTrajectory, "#be781c") } void QGCPalette::setColorGroupEnabled(bool enabled) diff --git a/src/QGCPalette.h b/src/QGCPalette.h index 91f597ef9..62fbf5a5e 100644 --- a/src/QGCPalette.h +++ b/src/QGCPalette.h @@ -28,6 +28,34 @@ _colors << #name; \ } +#define DECLARE_QGC_NONTHEMED_COLOR(name, disabledColor, enabledColor) \ + { \ + PaletteColorInfo_t colorInfo = { \ + { QColor(disabledColor), QColor(enabledColor) }, \ + { QColor(disabledColor), QColor(enabledColor) } \ + }; \ + qgcApp()->toolbox()->corePlugin()->paletteOverride(#name, colorInfo); \ + _colorInfoMap[Light][ColorGroupEnabled][QStringLiteral(#name)] = colorInfo[Light][ColorGroupEnabled]; \ + _colorInfoMap[Light][ColorGroupDisabled][QStringLiteral(#name)] = colorInfo[Light][ColorGroupDisabled]; \ + _colorInfoMap[Dark][ColorGroupEnabled][QStringLiteral(#name)] = colorInfo[Dark][ColorGroupEnabled]; \ + _colorInfoMap[Dark][ColorGroupDisabled][QStringLiteral(#name)] = colorInfo[Dark][ColorGroupDisabled]; \ + _colors << #name; \ + } + +#define DECLARE_QGC_SINGLE_COLOR(name, color) \ + { \ + PaletteColorInfo_t colorInfo = { \ + { QColor(color), QColor(color) }, \ + { QColor(color), QColor(color) } \ + }; \ + qgcApp()->toolbox()->corePlugin()->paletteOverride(#name, colorInfo); \ + _colorInfoMap[Light][ColorGroupEnabled][QStringLiteral(#name)] = colorInfo[Light][ColorGroupEnabled]; \ + _colorInfoMap[Light][ColorGroupDisabled][QStringLiteral(#name)] = colorInfo[Light][ColorGroupDisabled]; \ + _colorInfoMap[Dark][ColorGroupEnabled][QStringLiteral(#name)] = colorInfo[Dark][ColorGroupEnabled]; \ + _colorInfoMap[Dark][ColorGroupDisabled][QStringLiteral(#name)] = colorInfo[Dark][ColorGroupDisabled]; \ + _colors << #name; \ + } + #define DEFINE_QGC_COLOR(NAME, SETNAME) \ Q_PROPERTY(QColor NAME READ NAME WRITE SETNAME NOTIFY paletteChanged) \ Q_PROPERTY(QStringList NAME ## Colors READ NAME ## Colors NOTIFY paletteChanged) \ @@ -103,6 +131,7 @@ public: DEFINE_QGC_COLOR(mapIndicatorChild, setMapIndicatorChild) DEFINE_QGC_COLOR(mapWidgetBorderLight, setMapWidgetBorderLight) DEFINE_QGC_COLOR(mapWidgetBorderDark, setMapWidgetBorderDark) + DEFINE_QGC_COLOR(mapMissionTrajectory, setMapMissionTrajectory) DEFINE_QGC_COLOR(brandingPurple, setBrandingPurple) DEFINE_QGC_COLOR(brandingBlue, setBrandingBlue) DEFINE_QGC_COLOR(colorGreen, setColorGreen) diff --git a/src/QmlControls/QGroundControlQmlGlobal.cc b/src/QmlControls/QGroundControlQmlGlobal.cc index c89fa1676..20ac868a1 100644 --- a/src/QmlControls/QGroundControlQmlGlobal.cc +++ b/src/QmlControls/QGroundControlQmlGlobal.cc @@ -67,6 +67,7 @@ void QGroundControlQmlGlobal::setToolbox(QGCToolbox* toolbox) _gpsRtkFactGroup = qgcApp()->gpsRtkFactGroup(); _airspaceManager = toolbox->airspaceManager(); _adsbVehicleManager = toolbox->adsbVehicleManager(); + _globalPalette = new QGCPalette(this); #if defined(QGC_ENABLE_PAIRING) _pairingManager = toolbox->pairingManager(); #endif diff --git a/src/QmlControls/QGroundControlQmlGlobal.h b/src/QmlControls/QGroundControlQmlGlobal.h index 1028a0b0f..a3ebcf4d6 100644 --- a/src/QmlControls/QGroundControlQmlGlobal.h +++ b/src/QmlControls/QGroundControlQmlGlobal.h @@ -24,6 +24,7 @@ #include "AppSettings.h" #include "AirspaceManager.h" #include "ADSBVehicleManager.h" +#include "QGCPalette.h" #if defined(QGC_ENABLE_PAIRING) #include "PairingManager.h" #endif @@ -81,6 +82,7 @@ public: Q_PROPERTY(MicrohardManager* microhardManager READ microhardManager CONSTANT) Q_PROPERTY(bool microhardSupported READ microhardSupported CONSTANT) Q_PROPERTY(bool supportsPairing READ supportsPairing CONSTANT) + Q_PROPERTY(QGCPalette* globalPalette MEMBER _globalPalette CONSTANT) // This palette will always return enabled colors #if defined(QGC_ENABLE_PAIRING) Q_PROPERTY(PairingManager* pairingManager READ pairingManager CONSTANT) #endif @@ -280,6 +282,7 @@ private: TaisyncManager* _taisyncManager = nullptr; MicrohardManager* _microhardManager = nullptr; ADSBVehicleManager* _adsbVehicleManager = nullptr; + QGCPalette* _globalPalette = nullptr; #if defined(QGC_ENABLE_PAIRING) PairingManager* _pairingManager = nullptr; #endif -- 2.22.0