QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
SettingsManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QObject>
4#include <QtQmlIntegration/QtQmlIntegration>
5#include <QtCore/QJsonObject>
6#include <QtCore/QMap>
7
10class AppSettings;
17class FlyViewSettings;
19class MapsSettings;
23class RTKSettings;
24class UnitsSettings;
25class NTRIPSettings;
26class VideoSettings;
28class MavlinkSettings;
29class FactMetaData;
31
34class SettingsManager : public QObject
35{
36 Q_OBJECT
37 QML_ELEMENT
38 QML_UNCREATABLE("")
39 Q_MOC_INCLUDE("ADSBVehicleManagerSettings.h")
40#ifndef QGC_NO_ARDUPILOT_DIALECT
41 Q_MOC_INCLUDE("APMMavlinkStreamRateSettings.h")
42#endif
43 Q_MOC_INCLUDE("AppSettings.h")
44 Q_MOC_INCLUDE("AutoConnectSettings.h")
45 Q_MOC_INCLUDE("BatteryIndicatorSettings.h")
46 Q_MOC_INCLUDE("MavlinkActionsSettings.h")
47 Q_MOC_INCLUDE("FirmwareUpgradeSettings.h")
48 Q_MOC_INCLUDE("FlightMapSettings.h")
49 Q_MOC_INCLUDE("FlightModeSettings.h")
50 Q_MOC_INCLUDE("FlyViewSettings.h")
51 Q_MOC_INCLUDE("GimbalControllerSettings.h")
52 Q_MOC_INCLUDE("MapsSettings.h")
53 Q_MOC_INCLUDE("OfflineMapsSettings.h")
54 Q_MOC_INCLUDE("PlanViewSettings.h")
55 Q_MOC_INCLUDE("RemoteIDSettings.h")
56 Q_MOC_INCLUDE("RTKSettings.h")
57 Q_MOC_INCLUDE("UnitsSettings.h")
58 Q_MOC_INCLUDE("NTRIPSettings.h")
59 Q_MOC_INCLUDE("VideoSettings.h")
60 Q_MOC_INCLUDE("MavlinkSettings.h")
61 Q_MOC_INCLUDE("JoystickManagerSettings.h")
62 Q_MOC_INCLUDE("Viewer3DSettings.h")
63 Q_PROPERTY(QObject *adsbVehicleManagerSettings READ adsbVehicleManagerSettings CONSTANT)
64#ifndef QGC_NO_ARDUPILOT_DIALECT
65 Q_PROPERTY(QObject *apmMavlinkStreamRateSettings READ apmMavlinkStreamRateSettings CONSTANT)
66#endif
67 Q_PROPERTY(QObject *appSettings READ appSettings CONSTANT)
68 Q_PROPERTY(QObject *autoConnectSettings READ autoConnectSettings CONSTANT)
69 Q_PROPERTY(QObject *batteryIndicatorSettings READ batteryIndicatorSettings CONSTANT)
70 Q_PROPERTY(QObject *mavlinkActionsSettings READ mavlinkActionsSettings CONSTANT)
71 Q_PROPERTY(QObject *firmwareUpgradeSettings READ firmwareUpgradeSettings CONSTANT)
72 Q_PROPERTY(QObject *flightMapSettings READ flightMapSettings CONSTANT)
73 Q_PROPERTY(QObject *flightModeSettings READ flightModeSettings CONSTANT)
74 Q_PROPERTY(QObject *flyViewSettings READ flyViewSettings CONSTANT)
75 Q_PROPERTY(QObject *gimbalControllerSettings READ gimbalControllerSettings CONSTANT)
76 Q_PROPERTY(QObject *mapsSettings READ mapsSettings CONSTANT)
77 Q_PROPERTY(QObject *offlineMapsSettings READ offlineMapsSettings CONSTANT)
78 Q_PROPERTY(QObject *planViewSettings READ planViewSettings CONSTANT)
79 Q_PROPERTY(QObject *remoteIDSettings READ remoteIDSettings CONSTANT)
80 Q_PROPERTY(QObject *rtkSettings READ rtkSettings CONSTANT)
81 Q_PROPERTY(QObject *unitsSettings READ unitsSettings CONSTANT)
82 Q_PROPERTY(QObject *ntripSettings READ ntripSettings CONSTANT)
83 Q_PROPERTY(QObject *videoSettings READ videoSettings CONSTANT)
84 Q_PROPERTY(QObject *mavlinkSettings READ mavlinkSettings CONSTANT)
85 Q_PROPERTY(QObject *joystickManagerSettings READ joystickManagerSettings CONSTANT)
86 Q_PROPERTY(QObject *viewer3DSettings READ viewer3DSettings CONSTANT)
87public:
88 SettingsManager(QObject *parent = nullptr);
90
91 static SettingsManager *instance();
92
93 void init();
94
99 static void adjustSettingMetaData(const QString &settingsGroup, FactMetaData &metaData, bool &userVisible);
100
102#ifndef QGC_NO_ARDUPILOT_DIALECT
104#endif
105 AppSettings *appSettings() const;
114 MapsSettings *mapsSettings() const;
118 RTKSettings *rtkSettings() const;
125
126private:
127 void _loadSettingsFiles();
128
129 ADSBVehicleManagerSettings *_adsbVehicleManagerSettings = nullptr;
130#ifndef QGC_NO_ARDUPILOT_DIALECT
131 APMMavlinkStreamRateSettings *_apmMavlinkStreamRateSettings = nullptr;
132#endif
133 AppSettings *_appSettings = nullptr;
134 AutoConnectSettings *_autoConnectSettings = nullptr;
135 BatteryIndicatorSettings *_batteryIndicatorSettings = nullptr;
136 MavlinkActionsSettings *_mavlinkActionsSettings = nullptr;
137 FirmwareUpgradeSettings *_firmwareUpgradeSettings = nullptr;
138 FlightMapSettings *_flightMapSettings = nullptr;
139 FlightModeSettings *_flightModeSettings = nullptr;
140 FlyViewSettings *_flyViewSettings = nullptr;
141 GimbalControllerSettings *_gimbalControllerSettings = nullptr;
142 MapsSettings *_mapsSettings = nullptr;
143 OfflineMapsSettings *_offlineMapsSettings = nullptr;
144 PlanViewSettings *_planViewSettings = nullptr;
145 RemoteIDSettings *_remoteIDSettings = nullptr;
146 RTKSettings *_rtkSettings = nullptr;
147 UnitsSettings *_unitsSettings = nullptr;
148 NTRIPSettings *_ntripSettings = nullptr;
149 VideoSettings *_videoSettings = nullptr;
150 MavlinkSettings *_mavlinkSettings = nullptr;
151 JoystickManagerSettings *_joystickManagerSettings = nullptr;
152 Viewer3DSettings *_viewer3DSettings = nullptr;
153
154 QMap<QString, QMap<QString, QJsonObject>> _settingsFileOverrides; // groupName:settingName:metaDataObject
155
156 static constexpr int kSettingsFileVersion = 1;
157 static constexpr const char* kSettingsFileType = "Settings";
158 static constexpr const char* kJsonGroupsObjectKey = "groups";
159 static constexpr const char* kJsonVisibleKey = "visible";
160 static constexpr const char* kJsonForceRawValueKey = "forceRawValue";
161};
Application Settings.
Definition AppSettings.h:10
Auto connect settings.
Holds the meta data associated with a Fact.
Application Settings.
Provides access to all app settings.
AutoConnectSettings * autoConnectSettings() const
Viewer3DSettings * viewer3DSettings() const
JoystickManagerSettings * joystickManagerSettings() const
MapsSettings * mapsSettings() const
FlightMapSettings * flightMapSettings() const
ADSBVehicleManagerSettings * adsbVehicleManagerSettings() const
PlanViewSettings * planViewSettings() const
UnitsSettings * unitsSettings() const
RTKSettings * rtkSettings() const
BatteryIndicatorSettings * batteryIndicatorSettings() const
FirmwareUpgradeSettings * firmwareUpgradeSettings() const
FlightModeSettings * flightModeSettings() const
static SettingsManager * instance()
APMMavlinkStreamRateSettings * apmMavlinkStreamRateSettings() const
VideoSettings * videoSettings() const
static void adjustSettingMetaData(const QString &settingsGroup, FactMetaData &metaData, bool &userVisible)
AppSettings * appSettings() const
OfflineMapsSettings * offlineMapsSettings() const
RemoteIDSettings * remoteIDSettings() const
MavlinkActionsSettings * mavlinkActionsSettings() const
FlyViewSettings * flyViewSettings() const
GimbalControllerSettings * gimbalControllerSettings() const
MavlinkSettings * mavlinkSettings() const
NTRIPSettings * ntripSettings() const