QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
AppSettings.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtQmlIntegration/QtQmlIntegration>
4
5#include "SettingsGroup.h"
6
10{
11 Q_OBJECT
12 QML_ELEMENT
13 QML_UNCREATABLE("")
14public:
15 AppSettings(QObject* parent = nullptr);
16
18
19 DEFINE_SETTINGFACT(preferredFirmwareClass)
20 DEFINE_SETTINGFACT(preferredVehicleClass)
21 DEFINE_SETTINGFACT(offlineEditingFirmwareClass)
22 DEFINE_SETTINGFACT(offlineEditingVehicleClass)
23 DEFINE_SETTINGFACT(offlineEditingCruiseSpeed)
24 DEFINE_SETTINGFACT(offlineEditingHoverSpeed)
25 DEFINE_SETTINGFACT(offlineEditingAscentSpeed)
26 DEFINE_SETTINGFACT(offlineEditingDescentSpeed)
27 DEFINE_SETTINGFACT(batteryPercentRemainingAnnounce) // Important: This is only used to calculate battery swaps
28 DEFINE_SETTINGFACT(defaultMissionItemAltitude)
29 DEFINE_SETTINGFACT(audioMuted)
30 DEFINE_SETTINGFACT(audioVolume)
31 DEFINE_SETTINGFACT(virtualJoystick)
32 DEFINE_SETTINGFACT(virtualJoystickAutoCenterThrottle)
33 DEFINE_SETTINGFACT(virtualJoystickLeftHandedMode)
34 DEFINE_SETTINGFACT(uiScalePercent)
35 DEFINE_SETTINGFACT(indoorPalette)
36 DEFINE_SETTINGFACT(savePath)
37 DEFINE_SETTINGFACT(androidDontSaveToSDCard)
38 DEFINE_SETTINGFACT(useChecklist)
39 DEFINE_SETTINGFACT(enforceChecklist)
40 DEFINE_SETTINGFACT(enableMultiVehiclePanel)
41 DEFINE_SETTINGFACT(tiandituToken)
42 DEFINE_SETTINGFACT(mapboxToken)
43 DEFINE_SETTINGFACT(mapboxAccount)
44 DEFINE_SETTINGFACT(mapboxStyle)
45 DEFINE_SETTINGFACT(esriToken)
46 DEFINE_SETTINGFACT(customURL)
47 DEFINE_SETTINGFACT(vworldToken)
48 DEFINE_SETTINGFACT(openaipToken)
49 DEFINE_SETTINGFACT(gstDebugLevel)
50 DEFINE_SETTINGFACT(followTarget)
51 DEFINE_SETTINGFACT(qLocaleLanguage)
52 DEFINE_SETTINGFACT(clearSettingsNextBoot)
53 DEFINE_SETTINGFACT(disableAllPersistence)
54 DEFINE_SETTINGFACT(firstRunPromptIdsShown)
55 DEFINE_SETTINGFACT(favoriteParameters)
56 DEFINE_SETTINGFACT(showAppLogTimestampAsElapsedTime)
57
58 // QSettings key for clearSettingsNextBoot. Accessed directly by QGCApplication
59 // at startup before SettingsManager is initialized.
60 static constexpr const char *clearSettingsNextBootKey = "clearSettingsNextBoot";
61
62 Q_PROPERTY(QString missionSavePath READ missionSavePath NOTIFY savePathsChanged)
63 Q_PROPERTY(QString parameterSavePath READ parameterSavePath NOTIFY savePathsChanged)
64 Q_PROPERTY(QString telemetrySavePath READ telemetrySavePath NOTIFY savePathsChanged)
65 Q_PROPERTY(QString logSavePath READ logSavePath NOTIFY savePathsChanged)
66 Q_PROPERTY(QString videoSavePath READ videoSavePath NOTIFY savePathsChanged)
67 Q_PROPERTY(QString photoSavePath READ photoSavePath NOTIFY savePathsChanged)
68 Q_PROPERTY(QString crashSavePath READ crashSavePath NOTIFY savePathsChanged)
70 Q_PROPERTY(QString settingsSavePath READ settingsSavePath NOTIFY savePathsChanged)
71
72 Q_PROPERTY(QString planFileExtension MEMBER planFileExtension CONSTANT)
73 Q_PROPERTY(QString waypointsFileExtension MEMBER waypointsFileExtension CONSTANT)
74 Q_PROPERTY(QString parameterFileExtension MEMBER parameterFileExtension CONSTANT)
75 Q_PROPERTY(QString telemetryFileExtension MEMBER telemetryFileExtension CONSTANT)
76 Q_PROPERTY(QString kmlFileExtension MEMBER kmlFileExtension CONSTANT)
77 Q_PROPERTY(QString shpFileExtension MEMBER shpFileExtension CONSTANT)
78 Q_PROPERTY(QString logFileExtension MEMBER logFileExtension CONSTANT)
79 Q_PROPERTY(QString tilesetFileExtension MEMBER tilesetFileExtension CONSTANT)
80 Q_PROPERTY(QString settingsFileExtension MEMBER settingsFileExtension CONSTANT)
81
82
83 QString missionSavePath ();
84 QString parameterSavePath ();
85 QString telemetrySavePath ();
86 QString logSavePath ();
87 QString videoSavePath ();
88 QString photoSavePath ();
89 QString crashSavePath ();
90 QString mavlinkActionsSavePath();
91 QString settingsSavePath ();
92
93 // Helper methods for working with firstRunPromptIds QVariant settings string list
94 static QList<int> firstRunPromptsIdsVariantToList (const QVariant& firstRunPromptIds);
95 static QVariant firstRunPromptsIdsListToVariant (const QList<int>& rgIds);
96 Q_INVOKABLE void firstRunPromptIdsMarkIdAsShown (int id);
97
98 // Application wide file extensions
99 static constexpr const char* parameterFileExtension = "params";
100 static constexpr const char* planFileExtension = "plan";
101 static constexpr const char* waypointsFileExtension = "waypoints";
102 static constexpr const char* telemetryFileExtension = "tlog";
103 static constexpr const char* kmlFileExtension = "kml";
104 static constexpr const char* shpFileExtension = "shp";
105 static constexpr const char* logFileExtension = "ulg";
106 static constexpr const char* tilesetFileExtension = "qgctiledb";
107 static constexpr const char* settingsFileExtension = "settings";
108
109 // Child directories of savePath for specific file types
110 static constexpr const char* parameterDirectory = QT_TRANSLATE_NOOP("AppSettings", "Parameters");
111 static constexpr const char* telemetryDirectory = QT_TRANSLATE_NOOP("AppSettings", "Telemetry");
112 static constexpr const char* missionDirectory = QT_TRANSLATE_NOOP("AppSettings", "Missions");
113 static constexpr const char* logDirectory = QT_TRANSLATE_NOOP("AppSettings", "Logs");
114 static constexpr const char* videoDirectory = QT_TRANSLATE_NOOP("AppSettings", "Video");
115 static constexpr const char* photoDirectory = QT_TRANSLATE_NOOP("AppSettings", "Photo");
116 static constexpr const char* crashDirectory = QT_TRANSLATE_NOOP("AppSettings", "CrashLogs");
117 static constexpr const char* mavlinkActionsDirectory = QT_TRANSLATE_NOOP("AppSettings", "MavlinkActions");
118 static constexpr const char* settingsDirectory = QT_TRANSLATE_NOOP("AppSettings", "Settings");
119
120signals:
122
123private slots:
124 void _indoorPaletteChanged();
125 void _checkSavePathDirectories();
126 void _qLocaleLanguageChanged();
127
128private:
129 static QLocale::Language _qLocaleLanguageEarlyAccess(void);
130
131 static QList<QLocale::Language> _rgReleaseLanguages;
132 static QList<QLocale::Language> _rgPartialLanguages;
133
134 QString _childSavePath(const char* directory);
135
136 typedef struct {
137 QLocale::Language languageId;
138 const char* languageName;
139 } LanguageInfo_t;
140 static LanguageInfo_t _rgLanguageInfo[];
141
142 friend class QGCApplication;
143};
#define DEFINE_SETTING_NAME_GROUP()
#define DEFINE_SETTINGFACT(NAME)
Application Settings.
Definition AppSettings.h:10
static QVariant firstRunPromptsIdsListToVariant(const QList< int > &rgIds)
static constexpr const char * planFileExtension
QString videoSavePath()
static constexpr const char * logFileExtension
QString logSavePath()
QString telemetrySavePath()
QString crashSavePath()
static constexpr const char * settingsDirectory
QString parameterSavePath()
static constexpr const char * photoDirectory
AppSettings(QObject *parent=nullptr)
static constexpr const char * telemetryDirectory
Q_INVOKABLE void firstRunPromptIdsMarkIdAsShown(int id)
static constexpr const char * parameterFileExtension
Definition AppSettings.h:99
static constexpr const char * logDirectory
static constexpr const char * telemetryFileExtension
void savePathsChanged()
QString settingsSavePath()
static constexpr const char * tilesetFileExtension
static constexpr const char * kmlFileExtension
static constexpr const char * videoDirectory
static QList< int > firstRunPromptsIdsVariantToList(const QVariant &firstRunPromptIds)
static constexpr const char * settingsFileExtension
static constexpr const char * shpFileExtension
static constexpr const char * waypointsFileExtension
static constexpr const char * missionDirectory
static constexpr const char * mavlinkActionsDirectory
static constexpr const char * clearSettingsNextBootKey
Definition AppSettings.h:60
QString photoSavePath()
QString missionSavePath()
static constexpr const char * crashDirectory
QString mavlinkActionsSavePath()
static constexpr const char * parameterDirectory
The main application and management class.
Provides access to group of settings.