From 53b0921322f31ec103febd975c27357460324bb3 Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Mon, 28 May 2018 10:40:53 -0700 Subject: [PATCH] Add settingsGroup qualifer to settings override --- src/FactSystem/Fact.cc | 2 -- src/FactSystem/SettingsFact.cc | 20 ++++++++++---------- src/FactSystem/SettingsFact.h | 13 +++---------- src/Settings/AppSettings.cc | 4 ++-- src/Settings/AppSettings.h | 2 +- src/api/QGCCorePlugin.cc | 7 ++++++- src/api/QGCCorePlugin.h | 3 ++- 7 files changed, 24 insertions(+), 27 deletions(-) diff --git a/src/FactSystem/Fact.cc b/src/FactSystem/Fact.cc index 8f402a35b..b4ecbb2f3 100644 --- a/src/FactSystem/Fact.cc +++ b/src/FactSystem/Fact.cc @@ -62,8 +62,6 @@ Fact::Fact(FactMetaData* metaData, QObject* parent) , _deferredValueChangeSignal(false) , _valueSliderModel (NULL) { - // Allow core plugin a chance to override the default value - qgcApp()->toolbox()->corePlugin()->adjustSettingMetaData(*metaData); setMetaData(metaData, true /* setDefaultFromMetaData */); } diff --git a/src/FactSystem/SettingsFact.cc b/src/FactSystem/SettingsFact.cc index 81a5db872..1d8f4f58f 100644 --- a/src/FactSystem/SettingsFact.cc +++ b/src/FactSystem/SettingsFact.cc @@ -20,19 +20,19 @@ SettingsFact::SettingsFact(QObject* parent) QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); } -SettingsFact::SettingsFact(QString settingGroup, FactMetaData* metaData, QObject* parent) - : Fact(0, metaData->name(), metaData->type(), parent) - , _settingGroup(settingGroup) - , _visible(true) +SettingsFact::SettingsFact(QString settingsGroup, FactMetaData* metaData, QObject* parent) + : Fact (0, metaData->name(), metaData->type(), parent) + , _settingsGroup(settingsGroup) + , _visible (true) { QSettings settings; - if (!_settingGroup.isEmpty()) { - settings.beginGroup(_settingGroup); + if (!_settingsGroup.isEmpty()) { + settings.beginGroup(_settingsGroup); } // Allow core plugin a chance to override the default value - _visible = qgcApp()->toolbox()->corePlugin()->adjustSettingMetaData(*metaData); + _visible = qgcApp()->toolbox()->corePlugin()->adjustSettingMetaData(settingsGroup, *metaData); setMetaData(metaData); QVariant rawDefaultValue = metaData->rawDefaultValue(); @@ -60,7 +60,7 @@ const SettingsFact& SettingsFact::operator=(const SettingsFact& other) { Fact::operator=(other); - _settingGroup = other._settingGroup; + _settingsGroup = other._settingsGroup; return *this; } @@ -69,8 +69,8 @@ void SettingsFact::_rawValueChanged(QVariant value) { QSettings settings; - if (!_settingGroup.isEmpty()) { - settings.beginGroup(_settingGroup); + if (!_settingsGroup.isEmpty()) { + settings.beginGroup(_settingsGroup); } settings.setValue(_name, value); diff --git a/src/FactSystem/SettingsFact.h b/src/FactSystem/SettingsFact.h index eba4a2417..a59c8e5e9 100644 --- a/src/FactSystem/SettingsFact.h +++ b/src/FactSystem/SettingsFact.h @@ -7,12 +7,7 @@ * ****************************************************************************/ - -/// @file -/// @author Don Gagne - -#ifndef SettingsFact_H -#define SettingsFact_H +#pragma once #include "Fact.h" @@ -23,7 +18,7 @@ class SettingsFact : public Fact public: SettingsFact(QObject* parent = NULL); - SettingsFact(QString settingGroup, FactMetaData* metaData, QObject* parent = NULL); + SettingsFact(QString settingsGroup, FactMetaData* metaData, QObject* parent = NULL); SettingsFact(const SettingsFact& other, QObject* parent = NULL); const SettingsFact& operator=(const SettingsFact& other); @@ -37,8 +32,6 @@ private slots: void _rawValueChanged(QVariant value); private: - QString _settingGroup; + QString _settingsGroup; bool _visible; }; - -#endif diff --git a/src/Settings/AppSettings.cc b/src/Settings/AppSettings.cc index 264181c8f..64716bca6 100644 --- a/src/Settings/AppSettings.cc +++ b/src/Settings/AppSettings.cc @@ -15,7 +15,7 @@ #include #include -const char* AppSettings::appSettingsGroupName = "App"; +const char* AppSettings::settingsGroup = "App"; const char* AppSettings::offlineEditingFirmwareTypeSettingsName = "OfflineEditingFirmwareType"; const char* AppSettings::offlineEditingVehicleTypeSettingsName = "OfflineEditingVehicleType"; const char* AppSettings::offlineEditingCruiseSpeedSettingsName = "OfflineEditingCruiseSpeed"; @@ -58,7 +58,7 @@ const char* AppSettings::videoDirectory = "Video"; const char* AppSettings::crashDirectory = "CrashLogs"; AppSettings::AppSettings(QObject* parent) - : SettingsGroup (appSettingsGroupName, QString() /* root settings group */, parent) + : SettingsGroup (settingsGroup, QString() /* root settings group */, parent) , _offlineEditingFirmwareTypeFact (NULL) , _offlineEditingVehicleTypeFact (NULL) , _offlineEditingCruiseSpeedFact (NULL) diff --git a/src/Settings/AppSettings.h b/src/Settings/AppSettings.h index 3b7b88fa6..93bf1f5b8 100644 --- a/src/Settings/AppSettings.h +++ b/src/Settings/AppSettings.h @@ -93,7 +93,7 @@ public: static MAV_AUTOPILOT offlineEditingFirmwareTypeFromFirmwareType(MAV_AUTOPILOT firmwareType); static MAV_TYPE offlineEditingVehicleTypeFromVehicleType(MAV_TYPE vehicleType); - static const char* appSettingsGroupName; + static const char* settingsGroup; static const char* offlineEditingFirmwareTypeSettingsName; static const char* offlineEditingVehicleTypeSettingsName; diff --git a/src/api/QGCCorePlugin.cc b/src/api/QGCCorePlugin.cc index 58b06834e..d99898b52 100644 --- a/src/api/QGCCorePlugin.cc +++ b/src/api/QGCCorePlugin.cc @@ -190,8 +190,13 @@ bool QGCCorePlugin::overrideSettingsGroupVisibility(QString name) return true; } -bool QGCCorePlugin::adjustSettingMetaData(FactMetaData& metaData) +bool QGCCorePlugin::adjustSettingMetaData(const QString& settingsGroup, FactMetaData& metaData) { + if (settingsGroup != AppSettings::settingsGroup) { + // All changes refer to AppSettings + return true; + } + //-- Default Palette if (metaData.name() == AppSettings::indoorPaletteName) { QVariant outdoorPalette; diff --git a/src/api/QGCCorePlugin.h b/src/api/QGCCorePlugin.h index b5d6006f6..63672b0d7 100644 --- a/src/api/QGCCorePlugin.h +++ b/src/api/QGCCorePlugin.h @@ -72,9 +72,10 @@ public: virtual bool overrideSettingsGroupVisibility(QString name); /// Allows the core plugin to override the setting meta data before the setting fact is created. + /// @param settingsGroup - Settings group which contains this value /// @param metaData - MetaData for setting fact /// @return true: Setting should be visible in ui, false: Setting should not be shown in ui - virtual bool adjustSettingMetaData(FactMetaData& metaData); + virtual bool adjustSettingMetaData(const QString& settingsGroup, FactMetaData& metaData); /// Return the resource file which contains the brand image for for Indoor theme. virtual QString brandImageIndoor(void) const { return QString(); } -- 2.22.0