From fe3db4cf0001bc1e3014814fefefc58afc02d6a8 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Fri, 19 Apr 2019 12:06:29 -0700 Subject: [PATCH] Object ownership handled by SettingsGroup base class --- src/Airmap/AirMapSettings.cc | 3 +-- src/Settings/APMMavlinkStreamRateSettings.cc | 1 - src/Settings/AppSettings.cc | 1 - src/Settings/AutoConnectSettings.cc | 1 - src/Settings/BrandImageSettings.cc | 1 - src/Settings/FlightMapSettings.cc | 1 - src/Settings/FlyViewSettings.cc | 1 - src/Settings/PlanViewSettings.cc | 1 - src/Settings/RTKSettings.cc | 1 - src/Settings/SettingsGroup.cc | 5 +++++ src/Settings/UnitsSettings.cc | 1 - src/Settings/VideoSettings.cc | 1 - 12 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/Airmap/AirMapSettings.cc b/src/Airmap/AirMapSettings.cc index ed83f0246..1573dfcff 100644 --- a/src/Airmap/AirMapSettings.cc +++ b/src/Airmap/AirMapSettings.cc @@ -15,8 +15,7 @@ DECLARE_SETTINGGROUP(AirMap, "AirMap") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); \ - qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "AirMapSettings", "Reference only"); \ + qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "AirMapSettings", "Reference only"); } DECLARE_SETTINGSFACT(AirMapSettings, usePersonalApiKey) diff --git a/src/Settings/APMMavlinkStreamRateSettings.cc b/src/Settings/APMMavlinkStreamRateSettings.cc index 7516a60d3..3483c177a 100644 --- a/src/Settings/APMMavlinkStreamRateSettings.cc +++ b/src/Settings/APMMavlinkStreamRateSettings.cc @@ -15,7 +15,6 @@ DECLARE_SETTINGGROUP(APMMavlinkStreamRate, "APMMavlinkStreamRate") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "APMMavlinkStreamRateSettings", "Reference only"); connect(streamRateRawSensors(), &Fact::rawValueChanged, this, &APMMavlinkStreamRateSettings::_updateStreamRateRawSensors); diff --git a/src/Settings/AppSettings.cc b/src/Settings/AppSettings.cc index 3d7ec1c58..b9512f606 100644 --- a/src/Settings/AppSettings.cc +++ b/src/Settings/AppSettings.cc @@ -36,7 +36,6 @@ const char* AppSettings::crashDirectory = "CrashLogs"; DECLARE_SETTINGGROUP(App, "") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "AppSettings", "Reference only"); QGCPalette::setGlobalTheme(indoorPalette()->rawValue().toBool() ? QGCPalette::Dark : QGCPalette::Light); diff --git a/src/Settings/AutoConnectSettings.cc b/src/Settings/AutoConnectSettings.cc index c539a1aed..eeeb17e89 100644 --- a/src/Settings/AutoConnectSettings.cc +++ b/src/Settings/AutoConnectSettings.cc @@ -15,7 +15,6 @@ DECLARE_SETTINGGROUP(AutoConnect, "LinkManager") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); \ qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "AutoConnectSettings", "Reference only"); \ } diff --git a/src/Settings/BrandImageSettings.cc b/src/Settings/BrandImageSettings.cc index f3d9edfc7..ac9ddbf55 100644 --- a/src/Settings/BrandImageSettings.cc +++ b/src/Settings/BrandImageSettings.cc @@ -14,7 +14,6 @@ DECLARE_SETTINGGROUP(BrandImage, "Branding") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); \ qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "BrandImageSettings", "Reference only"); \ } diff --git a/src/Settings/FlightMapSettings.cc b/src/Settings/FlightMapSettings.cc index 6e28b85b7..d18f840fb 100644 --- a/src/Settings/FlightMapSettings.cc +++ b/src/Settings/FlightMapSettings.cc @@ -18,7 +18,6 @@ DECLARE_SETTINGGROUP(FlightMap, "FlightMap") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "FlightMapSettings", "Reference only"); // Save the original version since we modify based on map provider diff --git a/src/Settings/FlyViewSettings.cc b/src/Settings/FlyViewSettings.cc index ad04e35e2..ee4ee9b0e 100644 --- a/src/Settings/FlyViewSettings.cc +++ b/src/Settings/FlyViewSettings.cc @@ -14,7 +14,6 @@ DECLARE_SETTINGGROUP(FlyView, "FlyView") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); \ qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "FlyViewSettings", "Reference only"); \ } diff --git a/src/Settings/PlanViewSettings.cc b/src/Settings/PlanViewSettings.cc index 4ca6e43f1..ecd85cf15 100644 --- a/src/Settings/PlanViewSettings.cc +++ b/src/Settings/PlanViewSettings.cc @@ -14,6 +14,5 @@ DECLARE_SETTINGGROUP(PlanView, "PlanView") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); \ qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "PlanViewSettings", "Reference only"); \ } diff --git a/src/Settings/RTKSettings.cc b/src/Settings/RTKSettings.cc index ca808b887..8f1bb2090 100644 --- a/src/Settings/RTKSettings.cc +++ b/src/Settings/RTKSettings.cc @@ -14,7 +14,6 @@ DECLARE_SETTINGGROUP(RTK, "RTK") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); \ qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "RTKSettings", "Reference only"); \ } diff --git a/src/Settings/SettingsGroup.cc b/src/Settings/SettingsGroup.cc index d93ed4c9f..9550e606f 100644 --- a/src/Settings/SettingsGroup.cc +++ b/src/Settings/SettingsGroup.cc @@ -11,6 +11,9 @@ #include "QGCCorePlugin.h" #include "QGCApplication.h" +#include +#include + static const char* kJsonFile = ":/json/%1.SettingsGroup.json"; SettingsGroup::SettingsGroup(const QString& name, const QString& settingsGroup, QObject* parent) @@ -19,6 +22,8 @@ SettingsGroup::SettingsGroup(const QString& name, const QString& settingsGroup, , _name (name) , _settingsGroup(settingsGroup) { + QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); + _nameToMetaDataMap = FactMetaData::createMapFromJsonFile(QString(kJsonFile).arg(name), this); } diff --git a/src/Settings/UnitsSettings.cc b/src/Settings/UnitsSettings.cc index 547c742e4..7ccbcbee5 100644 --- a/src/Settings/UnitsSettings.cc +++ b/src/Settings/UnitsSettings.cc @@ -14,7 +14,6 @@ DECLARE_SETTINGGROUP(Units, "Units") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "UnitsSettings", "Reference only"); } diff --git a/src/Settings/VideoSettings.cc b/src/Settings/VideoSettings.cc index 544e5e132..2759b976b 100644 --- a/src/Settings/VideoSettings.cc +++ b/src/Settings/VideoSettings.cc @@ -28,7 +28,6 @@ const char* VideoSettings::videoSourceMPEGTS = "MPEG-TS (h.264) Video Stream" DECLARE_SETTINGGROUP(Video, "Video") { - QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "VideoSettings", "Reference only"); // Setup enum values for videoSource settings into meta data -- 2.22.0