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;
33
36class SettingsManager : public QObject
37{
38 Q_OBJECT
39 QML_ELEMENT
40 QML_UNCREATABLE("")
41 Q_MOC_INCLUDE("ADSBVehicleManagerSettings.h")
42#ifndef QGC_NO_ARDUPILOT_DIALECT
43 Q_MOC_INCLUDE("APMMavlinkStreamRateSettings.h")
44#endif
45 Q_MOC_INCLUDE("AppSettings.h")
46 Q_MOC_INCLUDE("AutoConnectSettings.h")
47 Q_MOC_INCLUDE("BatteryIndicatorSettings.h")
48 Q_MOC_INCLUDE("MavlinkActionsSettings.h")
49 Q_MOC_INCLUDE("FirmwareUpgradeSettings.h")
50 Q_MOC_INCLUDE("FlightMapSettings.h")
51 Q_MOC_INCLUDE("FlightModeSettings.h")
52 Q_MOC_INCLUDE("FlyViewSettings.h")
53 Q_MOC_INCLUDE("GimbalControllerSettings.h")
54 Q_MOC_INCLUDE("MapsSettings.h")
55 Q_MOC_INCLUDE("OfflineMapsSettings.h")
56 Q_MOC_INCLUDE("PlanViewSettings.h")
57 Q_MOC_INCLUDE("RemoteIDSettings.h")
58 Q_MOC_INCLUDE("RTKSettings.h")
59 Q_MOC_INCLUDE("UnitsSettings.h")
60 Q_MOC_INCLUDE("NTRIPSettings.h")
61 Q_MOC_INCLUDE("VideoSettings.h")
62 Q_MOC_INCLUDE("MavlinkSettings.h")
63 Q_MOC_INCLUDE("JoystickManagerSettings.h")
64 Q_MOC_INCLUDE("LogManagerSettings.h")
65 Q_MOC_INCLUDE("LogViewerSettings.h")
66 Q_MOC_INCLUDE("Viewer3DSettings.h")
67 Q_PROPERTY(QObject *adsbVehicleManagerSettings READ adsbVehicleManagerSettings CONSTANT)
68#ifndef QGC_NO_ARDUPILOT_DIALECT
69 Q_PROPERTY(QObject *apmMavlinkStreamRateSettings READ apmMavlinkStreamRateSettings CONSTANT)
70#endif
71 Q_PROPERTY(QObject *appSettings READ appSettings CONSTANT)
72 Q_PROPERTY(QObject *autoConnectSettings READ autoConnectSettings CONSTANT)
73 Q_PROPERTY(QObject *batteryIndicatorSettings READ batteryIndicatorSettings CONSTANT)
74 Q_PROPERTY(QObject *mavlinkActionsSettings READ mavlinkActionsSettings CONSTANT)
75 Q_PROPERTY(QObject *firmwareUpgradeSettings READ firmwareUpgradeSettings CONSTANT)
76 Q_PROPERTY(QObject *flightMapSettings READ flightMapSettings CONSTANT)
77 Q_PROPERTY(QObject *flightModeSettings READ flightModeSettings CONSTANT)
78 Q_PROPERTY(QObject *flyViewSettings READ flyViewSettings CONSTANT)
79 Q_PROPERTY(QObject *gimbalControllerSettings READ gimbalControllerSettings CONSTANT)
80 Q_PROPERTY(QObject *mapsSettings READ mapsSettings CONSTANT)
81 Q_PROPERTY(QObject *offlineMapsSettings READ offlineMapsSettings CONSTANT)
82 Q_PROPERTY(QObject *planViewSettings READ planViewSettings CONSTANT)
83 Q_PROPERTY(QObject *remoteIDSettings READ remoteIDSettings CONSTANT)
84 Q_PROPERTY(QObject *rtkSettings READ rtkSettings CONSTANT)
85 Q_PROPERTY(QObject *unitsSettings READ unitsSettings CONSTANT)
86 Q_PROPERTY(QObject *ntripSettings READ ntripSettings CONSTANT)
87 Q_PROPERTY(QObject *videoSettings READ videoSettings CONSTANT)
88 Q_PROPERTY(QObject *mavlinkSettings READ mavlinkSettings CONSTANT)
89 Q_PROPERTY(QObject *joystickManagerSettings READ joystickManagerSettings CONSTANT)
90 Q_PROPERTY(QObject *logManagerSettings READ logManagerSettings CONSTANT)
91 Q_PROPERTY(QObject *logViewerSettings READ logViewerSettings CONSTANT)
92 Q_PROPERTY(QObject *viewer3DSettings READ viewer3DSettings CONSTANT)
93public:
94 SettingsManager(QObject *parent = nullptr);
96
97 static SettingsManager *instance();
98
99 void init();
100
105 static void adjustSettingMetaData(const QString &settingsGroup, FactMetaData &metaData, bool &userVisible);
106
108#ifndef QGC_NO_ARDUPILOT_DIALECT
110#endif
111 AppSettings *appSettings() const;
120 MapsSettings *mapsSettings() const;
124 RTKSettings *rtkSettings() const;
133
134private:
135 void _loadSettingsFiles();
136
137 ADSBVehicleManagerSettings *_adsbVehicleManagerSettings = nullptr;
138#ifndef QGC_NO_ARDUPILOT_DIALECT
139 APMMavlinkStreamRateSettings *_apmMavlinkStreamRateSettings = nullptr;
140#endif
141 AppSettings *_appSettings = nullptr;
142 AutoConnectSettings *_autoConnectSettings = nullptr;
143 BatteryIndicatorSettings *_batteryIndicatorSettings = nullptr;
144 MavlinkActionsSettings *_mavlinkActionsSettings = nullptr;
145 FirmwareUpgradeSettings *_firmwareUpgradeSettings = nullptr;
146 FlightMapSettings *_flightMapSettings = nullptr;
147 FlightModeSettings *_flightModeSettings = nullptr;
148 FlyViewSettings *_flyViewSettings = nullptr;
149 GimbalControllerSettings *_gimbalControllerSettings = nullptr;
150 MapsSettings *_mapsSettings = nullptr;
151 OfflineMapsSettings *_offlineMapsSettings = nullptr;
152 PlanViewSettings *_planViewSettings = nullptr;
153 RemoteIDSettings *_remoteIDSettings = nullptr;
154 RTKSettings *_rtkSettings = nullptr;
155 UnitsSettings *_unitsSettings = nullptr;
156 NTRIPSettings *_ntripSettings = nullptr;
157 VideoSettings *_videoSettings = nullptr;
158 MavlinkSettings *_mavlinkSettings = nullptr;
159 JoystickManagerSettings *_joystickManagerSettings = nullptr;
160 LogManagerSettings *_logManagerSettings = nullptr;
161 LogViewerSettings *_logViewerSettings = nullptr;
162 Viewer3DSettings *_viewer3DSettings = nullptr;
163
164 QMap<QString, QMap<QString, QJsonObject>> _settingsFileOverrides; // groupName:settingName:metaDataObject
165
166 static constexpr int kSettingsFileVersion = 1;
167 static constexpr const char* kSettingsFileType = "Settings";
168 static constexpr const char* kJsonGroupsObjectKey = "groups";
169 static constexpr const char* kJsonVisibleKey = "visible";
170 static constexpr const char* kJsonForceRawValueKey = "forceRawValue";
171};
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
LogViewerSettings * logViewerSettings() const
BatteryIndicatorSettings * batteryIndicatorSettings() const
FirmwareUpgradeSettings * firmwareUpgradeSettings() const
FlightModeSettings * flightModeSettings() const
static SettingsManager * instance()
APMMavlinkStreamRateSettings * apmMavlinkStreamRateSettings() const
LogManagerSettings * logManagerSettings() 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