From 4a399fc0085f33a3c5cc1bb32a6a27b08cb449e1 Mon Sep 17 00:00:00 2001
From: DonLakeFlyer <don@thegagnes.com>
Date: Tue, 29 May 2018 13:24:25 -0700
Subject: [PATCH] Clean up SettingsGroup name and settingsGroup

---
 src/Settings/AppSettings.cc         |  6 ++++--
 src/Settings/AppSettings.h          |  1 +
 src/Settings/AutoConnectSettings.cc |  6 +++---
 src/Settings/AutoConnectSettings.h  |  5 ++---
 src/Settings/BrandImageSettings.cc  | 10 ++++++----
 src/Settings/BrandImageSettings.h   |  3 ++-
 src/Settings/FlightMapSettings.cc   | 11 ++++++-----
 src/Settings/FlightMapSettings.h    |  6 +++---
 src/Settings/GuidedSettings.cc      |  6 ++++--
 src/Settings/GuidedSettings.h       |  3 ++-
 src/Settings/RTKSettings.cc         |  6 ++++--
 src/Settings/RTKSettings.h          |  3 ++-
 src/Settings/SettingsGroup.cc       | 12 ++++++------
 src/Settings/SettingsGroup.h        |  6 +++---
 src/Settings/UnitsSettings.cc       | 14 ++++++++------
 src/Settings/UnitsSettings.h        |  3 ++-
 src/Settings/VideoSettings.cc       |  5 +++--
 src/Settings/VideoSettings.h        |  3 ++-
 src/api/QGCCorePlugin.h             |  4 ++--
 19 files changed, 65 insertions(+), 48 deletions(-)

diff --git a/src/Settings/AppSettings.cc b/src/Settings/AppSettings.cc
index 64716bc..b9f341c 100644
--- a/src/Settings/AppSettings.cc
+++ b/src/Settings/AppSettings.cc
@@ -15,7 +15,9 @@
 #include <QtQml>
 #include <QStandardPaths>
 
-const char* AppSettings::settingsGroup =                                "App";
+const char* AppSettings::name =                                         "App";
+const char* AppSettings::settingsGroup =                                ""; // settings are in root group
+
 const char* AppSettings::offlineEditingFirmwareTypeSettingsName =       "OfflineEditingFirmwareType";
 const char* AppSettings::offlineEditingVehicleTypeSettingsName =        "OfflineEditingVehicleType";
 const char* AppSettings::offlineEditingCruiseSpeedSettingsName =        "OfflineEditingCruiseSpeed";
@@ -58,7 +60,7 @@ const char* AppSettings::videoDirectory =           "Video";
 const char* AppSettings::crashDirectory =           "CrashLogs";
 
 AppSettings::AppSettings(QObject* parent)
-    : SettingsGroup                         (settingsGroup, QString() /* root settings group */, parent)
+    : SettingsGroup                         (name, settingsGroup, parent)
     , _offlineEditingFirmwareTypeFact       (NULL)
     , _offlineEditingVehicleTypeFact        (NULL)
     , _offlineEditingCruiseSpeedFact        (NULL)
diff --git a/src/Settings/AppSettings.h b/src/Settings/AppSettings.h
index 93bf1f5..327ce30 100644
--- a/src/Settings/AppSettings.h
+++ b/src/Settings/AppSettings.h
@@ -93,6 +93,7 @@ public:
     static MAV_AUTOPILOT offlineEditingFirmwareTypeFromFirmwareType(MAV_AUTOPILOT firmwareType);
     static MAV_TYPE offlineEditingVehicleTypeFromVehicleType(MAV_TYPE vehicleType);
 
+    static const char* name;
     static const char* settingsGroup;
 
     static const char* offlineEditingFirmwareTypeSettingsName;
diff --git a/src/Settings/AutoConnectSettings.cc b/src/Settings/AutoConnectSettings.cc
index cb5a403..ef70507 100644
--- a/src/Settings/AutoConnectSettings.cc
+++ b/src/Settings/AutoConnectSettings.cc
@@ -13,7 +13,8 @@
 #include <QQmlEngine>
 #include <QtQml>
 
-const char* AutoConnectSettings::_settingsGroup =                       "LinkManager";
+const char* AutoConnectSettings::name =                                 "AutoConnect";
+const char* AutoConnectSettings::settingsGroup =                        "LinkManager";
 
 const char* AutoConnectSettings:: autoConnectUDPSettingsName =          "AutoconnectUDP";
 const char* AutoConnectSettings:: autoConnectPixhawkSettingsName =      "AutoconnectPixhawk";
@@ -27,10 +28,9 @@ const char* AutoConnectSettings:: udpListenPortName =                   "Autocon
 const char* AutoConnectSettings:: udpTargetHostIPName =                 "AutoconnectUDPTargetHostIP";
 const char* AutoConnectSettings:: udpTargetHostPortName =               "AutoconnectUDPTargetHostPort";
 
-const char* AutoConnectSettings::autoConnectSettingsGroupName = "AutoConnect";
 
 AutoConnectSettings::AutoConnectSettings(QObject* parent)
-    : SettingsGroup             (autoConnectSettingsGroupName, _settingsGroup, parent)
+    : SettingsGroup             (name, settingsGroup, parent)
     , _autoConnectUDPFact       (NULL)
     , _autoConnectPixhawkFact   (NULL)
     , _autoConnectSiKRadioFact  (NULL)
diff --git a/src/Settings/AutoConnectSettings.h b/src/Settings/AutoConnectSettings.h
index 74081bd..039d3b9 100644
--- a/src/Settings/AutoConnectSettings.h
+++ b/src/Settings/AutoConnectSettings.h
@@ -43,7 +43,8 @@ public:
     Fact* udpTargetHostIP       (void);
     Fact* udpTargetHostPort     (void);
 
-    static const char* autoConnectSettingsGroupName;
+    static const char* name;
+    static const char* settingsGroup;
 
     static const char* autoConnectUDPSettingsName;
     static const char* autoConnectPixhawkSettingsName;
@@ -69,8 +70,6 @@ private:
     SettingsFact* _udpListenPortFact;
     SettingsFact* _udpTargetHostIPFact;
     SettingsFact* _udpTargetHostPortFact;
-
-    static const char* _settingsGroup;
 };
 
 #endif
diff --git a/src/Settings/BrandImageSettings.cc b/src/Settings/BrandImageSettings.cc
index 20bdc6d..f660869 100644
--- a/src/Settings/BrandImageSettings.cc
+++ b/src/Settings/BrandImageSettings.cc
@@ -12,12 +12,14 @@
 #include <QQmlEngine>
 #include <QtQml>
 
-const char* BrandImageSettings::brandImageSettingsGroupName =   "BrandImage";
-const char* BrandImageSettings::userBrandImageIndoorName =      "UserBrandImageIndoor";
-const char* BrandImageSettings::userBrandImageOutdoorName =     "UserBrandImageOutdoor";
+const char* BrandImageSettings::name =                      "BrandImage";
+const char* BrandImageSettings::settingsGroup =             ""; // settings are in root group
+
+const char* BrandImageSettings::userBrandImageIndoorName =  "UserBrandImageIndoor";
+const char* BrandImageSettings::userBrandImageOutdoorName = "UserBrandImageOutdoor";
 
 BrandImageSettings::BrandImageSettings(QObject* parent)
-    : SettingsGroup(brandImageSettingsGroupName, QString() /* root settings group */, parent)
+    : SettingsGroup(name, settingsGroup, parent)
     , _userBrandImageIndoorFact(NULL)
     , _userBrandImageOutdoorFact(NULL)
 {
diff --git a/src/Settings/BrandImageSettings.h b/src/Settings/BrandImageSettings.h
index c2f66b3..a1bb1b5 100644
--- a/src/Settings/BrandImageSettings.h
+++ b/src/Settings/BrandImageSettings.h
@@ -25,7 +25,8 @@ public:
     Fact* userBrandImageIndoor      (void);
     Fact* userBrandImageOutdoor     (void);
 
-    static const char* brandImageSettingsGroupName;
+    static const char* name;
+    static const char* settingsGroup;
 
     static const char* userBrandImageIndoorName;
     static const char* userBrandImageOutdoorName;
diff --git a/src/Settings/FlightMapSettings.cc b/src/Settings/FlightMapSettings.cc
index 7f50161..d2af256 100644
--- a/src/Settings/FlightMapSettings.cc
+++ b/src/Settings/FlightMapSettings.cc
@@ -16,13 +16,14 @@
 #include <QQmlEngine>
 #include <QtQml>
 
-const char* FlightMapSettings::flightMapSettingsGroupName =  "FlightMap";
-const char* FlightMapSettings::mapProviderSettingsName =     "MapProvider";
-const char* FlightMapSettings::mapTypeSettingsName =         "MapType";
-const char* FlightMapSettings::_settingsGroupName =          "FlightMap";
+const char* FlightMapSettings::name =                       "FlightMap";
+const char* FlightMapSettings::settingsGroup =              "FlightMap";
+
+const char* FlightMapSettings::mapProviderSettingsName =    "MapProvider";
+const char* FlightMapSettings::mapTypeSettingsName =        "MapType";
 
 FlightMapSettings::FlightMapSettings(QObject* parent)
-    : SettingsGroup(flightMapSettingsGroupName, QString(_settingsGroupName) /* root settings group */, parent)
+    : SettingsGroup(name, settingsGroup, parent)
     , _mapProviderFact(NULL)
     , _mapTypeFact(NULL)
 {
diff --git a/src/Settings/FlightMapSettings.h b/src/Settings/FlightMapSettings.h
index d7dc2a3..edbc793 100644
--- a/src/Settings/FlightMapSettings.h
+++ b/src/Settings/FlightMapSettings.h
@@ -43,7 +43,9 @@ public:
     Fact* mapProvider   (void);
     Fact* mapType       (void);
 
-    static const char* flightMapSettingsGroupName;
+    static const char* name;
+    static const char* settingsGroup;
+
     static const char* mapProviderSettingsName;
     static const char* mapTypeSettingsName;
 
@@ -61,8 +63,6 @@ private:
     SettingsFact*   _mapTypeFact;
     QStringList     _savedMapTypeStrings;
     QVariantList    _savedMapTypeValues;
-
-    static const char* _settingsGroupName;
 };
 
 #endif
diff --git a/src/Settings/GuidedSettings.cc b/src/Settings/GuidedSettings.cc
index 3aa93e2..9c81519 100644
--- a/src/Settings/GuidedSettings.cc
+++ b/src/Settings/GuidedSettings.cc
@@ -15,14 +15,16 @@
 #include <QtQml>
 #include <QStandardPaths>
 
-const char* GuidedSettings::guidedSettingsGroupName =       "Guided";
+const char* GuidedSettings::name =                          "Guided";
+const char* GuidedSettings::settingsGroup =                 ""; // settings are in root group
+
 const char* GuidedSettings::fixedWingMinimumAltitudeName =  "FixedWingMinimumAltitude";
 const char* GuidedSettings::fixedWingMaximumAltitudeName =  "FixedWingMaximumAltitude";
 const char* GuidedSettings::vehicleMinimumAltitudeName =    "VehicleMinimumAltitude";
 const char* GuidedSettings::vehicleMaximumAltitudeName =    "VehicleMaximumAltitude";
 
 GuidedSettings::GuidedSettings(QObject* parent)
-    : SettingsGroup(guidedSettingsGroupName, QString() /* root settings group */, parent)
+    : SettingsGroup(name, settingsGroup, parent)
     , _fixedWingMinimumAltitudeFact (NULL)
     , _fixedWingMaximumAltitudeFact (NULL)
     , _vehicleMinimumAltitudeFact   (NULL)
diff --git a/src/Settings/GuidedSettings.h b/src/Settings/GuidedSettings.h
index bc6b29d..52bba38 100644
--- a/src/Settings/GuidedSettings.h
+++ b/src/Settings/GuidedSettings.h
@@ -31,7 +31,8 @@ public:
     Fact* vehicleMinimumAltitude    (void);
     Fact* vehicleMaximumAltitude    (void);
 
-    static const char* guidedSettingsGroupName;
+    static const char* name;
+    static const char* settingsGroup;
 
     static const char* fixedWingMinimumAltitudeName;
     static const char* fixedWingMaximumAltitudeName;
diff --git a/src/Settings/RTKSettings.cc b/src/Settings/RTKSettings.cc
index 1e86991..c876da3 100644
--- a/src/Settings/RTKSettings.cc
+++ b/src/Settings/RTKSettings.cc
@@ -12,12 +12,14 @@
 #include <QQmlEngine>
 #include <QtQml>
 
-const char* RTKSettings::RTKSettingsGroupName =                 "RTK";
+const char* RTKSettings::name =                                 "RTK";
+const char* RTKSettings::settingsGroup =                        "RTK";
+
 const char* RTKSettings::surveyInAccuracyLimitName =            "SurveyInAccuracyLimit";
 const char* RTKSettings::surveyInMinObservationDurationName =   "SurveyInMinObservationDuration";
 
 RTKSettings::RTKSettings(QObject* parent)
-    : SettingsGroup(RTKSettingsGroupName, QString(RTKSettingsGroupName), parent)
+    : SettingsGroup(name, settingsGroup, parent)
     , _surveyInAccuracyLimitFact(NULL)
     , _surveyInMinObservationDurationFact(NULL)
 {
diff --git a/src/Settings/RTKSettings.h b/src/Settings/RTKSettings.h
index 467df27..6688c4c 100644
--- a/src/Settings/RTKSettings.h
+++ b/src/Settings/RTKSettings.h
@@ -24,7 +24,8 @@ public:
     Fact* surveyInAccuracyLimit         (void);
     Fact* surveyInMinObservationDuration(void);
 
-    static const char* RTKSettingsGroupName;
+    static const char* name;
+    static const char* settingsGroup;
 
     static const char* surveyInAccuracyLimitName;
     static const char* surveyInMinObservationDurationName;
diff --git a/src/Settings/SettingsGroup.cc b/src/Settings/SettingsGroup.cc
index e0f1ac2..0e56bdf 100644
--- a/src/Settings/SettingsGroup.cc
+++ b/src/Settings/SettingsGroup.cc
@@ -12,18 +12,18 @@
 #include "QGCApplication.h"
 
 SettingsGroup::SettingsGroup(const QString& name, const QString& settingsGroup, QObject* parent)
-    : QObject(parent)
-    , _name(name)
+    : QObject       (parent)
+    , _name         (name)
     , _settingsGroup(settingsGroup)
-    , _visible(qgcApp()->toolbox()->corePlugin()->overrideSettingsGroupVisibility(name))
+    , _visible      (qgcApp()->toolbox()->corePlugin()->overrideSettingsGroupVisibility(_name))
 {
     QString jsonNameFormat(":/json/%1.SettingsGroup.json");
 
-    _nameToMetaDataMap = FactMetaData::createMapFromJsonFile(jsonNameFormat.arg(name), this);
+    _nameToMetaDataMap = FactMetaData::createMapFromJsonFile(jsonNameFormat.arg(_name), this);
 }
 
-SettingsFact* SettingsGroup::_createSettingsFact(const QString& name)
+SettingsFact* SettingsGroup::_createSettingsFact(const QString& factName)
 {
-    return new SettingsFact(_settingsGroup, _nameToMetaDataMap[name], this);
+    return new SettingsFact(_settingsGroup, _nameToMetaDataMap[factName], this);
 }
 
diff --git a/src/Settings/SettingsGroup.h b/src/Settings/SettingsGroup.h
index 048c0b1..db85bb4 100644
--- a/src/Settings/SettingsGroup.h
+++ b/src/Settings/SettingsGroup.h
@@ -31,10 +31,10 @@ public:
     Q_PROPERTY(bool visible MEMBER _visible CONSTANT)
 
 protected:
-    SettingsFact* _createSettingsFact(const QString& name);
+    SettingsFact* _createSettingsFact(const QString& factName);
 
-    QString _name;
-    QString _settingsGroup;
+    QString _name;              ///< Name for group. Used to generate name for loaded json meta data file.
+    QString _settingsGroup;     ///< QSettings group which contains these settings. empty for settings in root
     bool    _visible;
 
     QMap<QString, FactMetaData*> _nameToMetaDataMap;
diff --git a/src/Settings/UnitsSettings.cc b/src/Settings/UnitsSettings.cc
index cd59888..e0e75a9 100644
--- a/src/Settings/UnitsSettings.cc
+++ b/src/Settings/UnitsSettings.cc
@@ -12,14 +12,16 @@
 #include <QQmlEngine>
 #include <QtQml>
 
-const char* UnitsSettings::unitsSettingsGroupName =     "Units";
-const char* UnitsSettings::distanceUnitsSettingsName =  "DistanceUnits";
-const char* UnitsSettings::areaUnitsSettingsName =      "AreaUnits";
-const char* UnitsSettings::speedUnitsSettingsName =     "SpeedUnits";
-const char* UnitsSettings::temperatureUnitsSettingsName = "TemperatureUnits";
+const char* UnitsSettings::name =                           "Units";
+const char* UnitsSettings::settingsGroup =                  ""; // settings are in root group
+
+const char* UnitsSettings::distanceUnitsSettingsName =      "DistanceUnits";
+const char* UnitsSettings::areaUnitsSettingsName =          "AreaUnits";
+const char* UnitsSettings::speedUnitsSettingsName =         "SpeedUnits";
+const char* UnitsSettings::temperatureUnitsSettingsName =   "TemperatureUnits";
 
 UnitsSettings::UnitsSettings(QObject* parent)
-    : SettingsGroup(unitsSettingsGroupName, QString() /* root settings group */, parent)
+    : SettingsGroup(name, settingsGroup, parent)
     , _distanceUnitsFact(NULL)
     , _areaUnitsFact(NULL)
     , _speedUnitsFact(NULL)
diff --git a/src/Settings/UnitsSettings.h b/src/Settings/UnitsSettings.h
index 1d09201..28c3d3d 100644
--- a/src/Settings/UnitsSettings.h
+++ b/src/Settings/UnitsSettings.h
@@ -61,7 +61,8 @@ public:
     Fact* speedUnits                        (void);
     Fact* temperatureUnits                  (void);
 
-    static const char* unitsSettingsGroupName;
+    static const char* name;
+    static const char* settingsGroup;
 
     static const char* distanceUnitsSettingsName;
     static const char* areaUnitsSettingsName;
diff --git a/src/Settings/VideoSettings.cc b/src/Settings/VideoSettings.cc
index cb6ab51..a76d588 100644
--- a/src/Settings/VideoSettings.cc
+++ b/src/Settings/VideoSettings.cc
@@ -17,7 +17,8 @@
 #include <QCameraInfo>
 #endif
 
-const char* VideoSettings::videoSettingsGroupName = "Video";
+const char* VideoSettings::name =                   "Video";
+const char* VideoSettings::settingsGroup =          ""; // settings are in root group
 
 const char* VideoSettings::videoSourceName =        "VideoSource";
 const char* VideoSettings::udpPortName =            "VideoUDPPort";
@@ -40,7 +41,7 @@ const char* VideoSettings::videoSourceRTSP =        "RTSP Video Stream";
 const char* VideoSettings::videoSourceTCP =         "TCP-MPEG2 Video Stream";
 
 VideoSettings::VideoSettings(QObject* parent)
-    : SettingsGroup(videoSettingsGroupName, QString() /* root settings group */, parent)
+    : SettingsGroup(name, settingsGroup, parent)
     , _videoSourceFact(NULL)
     , _udpPortFact(NULL)
     , _tcpUrlFact(NULL)
diff --git a/src/Settings/VideoSettings.h b/src/Settings/VideoSettings.h
index 63b6840..a893397 100644
--- a/src/Settings/VideoSettings.h
+++ b/src/Settings/VideoSettings.h
@@ -49,7 +49,8 @@ public:
     Fact* disableWhenDisarmed   (void);
     bool  streamConfigured      (void);
 
-    static const char* videoSettingsGroupName;
+    static const char* name;
+    static const char* settingsGroup;
 
     static const char* videoSourceName;
     static const char* udpPortName;
diff --git a/src/api/QGCCorePlugin.h b/src/api/QGCCorePlugin.h
index 63672b0..cb8b82a 100644
--- a/src/api/QGCCorePlugin.h
+++ b/src/api/QGCCorePlugin.h
@@ -67,12 +67,12 @@ public:
     virtual QGCOptions* options(void);
 
     /// Allows the core plugin to override the visibility for a settings group
-    ///     @param name - Setting group name
+    ///     @param name - SettingsGroup name
     /// @return true: Show settings ui, false: Hide settings ui
     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 settingsGroup - QSettings group which contains this item
     ///     @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(const QString& settingsGroup, FactMetaData& metaData);