From 7a89279c68be16b8f27e7b7f7641bb6202caf49c Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sun, 26 Feb 2017 19:35:04 -0800 Subject: [PATCH] Fix indoorPalette overriding --- src/Settings/AppSettings.cc | 14 +++----------- src/api/QGCCorePlugin.cc | 13 ++++++++++++- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/Settings/AppSettings.cc b/src/Settings/AppSettings.cc index 74feaa270..e30ca2c05 100644 --- a/src/Settings/AppSettings.cc +++ b/src/Settings/AppSettings.cc @@ -46,16 +46,8 @@ AppSettings::AppSettings(QObject* parent) , _indoorPaletteFact(NULL) { QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); - qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "AppSettings", "Reference only"); - - // Set up correct default for palette setting - QVariant outdoorPalette; -#if defined (__mobile__) - outdoorPalette = 0; -#else - outdoorPalette = 1; -#endif - _nameToMetaDataMap[indoorPaletteName]->setRawDefaultValue(outdoorPalette); + qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "AppSettings", "Reference only"); + QGCPalette::setGlobalTheme(indoorPalette()->rawValue().toBool() ? QGCPalette::Dark : QGCPalette::Light); } Fact* AppSettings::offlineEditingFirmwareType(void) @@ -177,5 +169,5 @@ Fact* AppSettings::indoorPalette(void) void AppSettings::_indoorPaletteChanged(void) { qgcApp()->_loadCurrentStyleSheet(); - QGCPalette::setGlobalTheme(_indoorPaletteFact->rawValue().toBool() ? QGCPalette::Dark : QGCPalette::Light); + QGCPalette::setGlobalTheme(indoorPalette()->rawValue().toBool() ? QGCPalette::Dark : QGCPalette::Light); } diff --git a/src/api/QGCCorePlugin.cc b/src/api/QGCCorePlugin.cc index 78fa0150d..3d7ff1098 100644 --- a/src/api/QGCCorePlugin.cc +++ b/src/api/QGCCorePlugin.cc @@ -11,6 +11,7 @@ #include "QGCOptions.h" #include "QGCSettings.h" #include "FactMetaData.h" +#include "SettingsManager.h" #include #include @@ -164,6 +165,16 @@ bool QGCCorePlugin::overrideSettingsGroupVisibility(QString name) bool QGCCorePlugin::adjustSettingMetaData(FactMetaData& metaData) { - Q_UNUSED(metaData); // No mods to standard meta data + if (metaData.name() == AppSettings::indoorPaletteName) { + // Set up correct default for palette setting + QVariant outdoorPalette; +#if defined (__mobile__) + outdoorPalette = 0; +#else + outdoorPalette = 1; +#endif + metaData.setRawDefaultValue(outdoorPalette); + } + return true; // Show setting in ui } -- 2.22.0