QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
AutoConnectSettings.cc
Go to the documentation of this file.
2#include "LinkManager.h"
3
4#include <QtCore/QCoreApplication>
5
6DECLARE_SETTINGGROUP(AutoConnect, "AutoConnect")
7{
8 // Settings group name was changed from "LinkManager" to "AutoConnect" in v5.0.0
9 // Copy over an old settings to the new name
10 QSettings settings;
11 static const char* deprecatedGroupName = "LinkManager";
12 if (settings.childGroups().contains(deprecatedGroupName)) {
13 settings.beginGroup(deprecatedGroupName);
14 QList<QPair<QString, QVariant>> values;
15 for (const QString& key: settings.childKeys()) {
16 values.append(QPair<QString, QVariant>(key, settings.value(key)));
17 }
18 settings.endGroup();
19 settings.remove(deprecatedGroupName);
20
21 settings.beginGroup(_name);
22 for (const QPair<QString, QVariant>& pair: values) {
23 settings.setValue(pair.first, pair.second);
24 }
25 settings.endGroup();
26 }
27
28 // autoConnectNmeaPort used to store a combo label ("Disabled"/"UDP Port"/serial device),
29 // sometimes translated. Migrate it to the nmeaSource enum, leaving only a serial device
30 // name in autoConnectNmeaPort.
31 settings.beginGroup(_name);
32 if (!settings.contains(nmeaSourceName) && settings.contains(autoConnectNmeaPortName)) {
33 const QString oldValue = settings.value(autoConnectNmeaPortName).toString();
34 // The legacy combo labels were written translated from two different QML contexts
35 const auto matches = [&oldValue](const char* source) {
36 return (oldValue == QLatin1String(source)) ||
37 (oldValue == QCoreApplication::translate("NmeaGpsSettings", source)) ||
38 (oldValue == QCoreApplication::translate("RemoteIDGpsLocation", source));
39 };
40 if (oldValue.isEmpty() || matches("Disabled") || matches("Serial <none available>")) {
41 settings.remove(autoConnectNmeaPortName);
42 } else if (matches("UDP Port")) {
43 settings.setValue(nmeaSourceName, static_cast<int>(NmeaSourceUdp));
44 settings.remove(autoConnectNmeaPortName);
45 } else {
46 settings.setValue(nmeaSourceName, static_cast<int>(NmeaSourceSerial));
47 }
48 }
49 settings.endGroup();
50}
51
57
59{
60 if (!_autoConnectPixhawkFact) {
61 _autoConnectPixhawkFact = _createSettingsFact(autoConnectPixhawkName);
62#ifdef Q_OS_IOS
63 _autoConnectPixhawkFact->setUserVisible(false);
64#endif
65 }
66 return _autoConnectPixhawkFact;
67}
68
70{
71 if (!_autoConnectSiKRadioFact) {
72 _autoConnectSiKRadioFact = _createSettingsFact(autoConnectSiKRadioName);
73#ifdef Q_OS_IOS
74 _autoConnectSiKRadioFact->setUserVisible(false);
75#endif
76 }
77 return _autoConnectSiKRadioFact;
78}
79
81{
82 if (!_autoConnectRTKGPSFact) {
83 _autoConnectRTKGPSFact = _createSettingsFact(autoConnectRTKGPSName);
84#ifdef Q_OS_IOS
85 _autoConnectRTKGPSFact->setUserVisible(false);
86#endif
87 }
88 return _autoConnectRTKGPSFact;
89}
90
92{
93 if (!_autoConnectLibrePilotFact) {
94 _autoConnectLibrePilotFact = _createSettingsFact(autoConnectLibrePilotName);
95#ifdef Q_OS_IOS
96 _autoConnectLibrePilotFact->setUserVisible(false);
97#endif
98 }
99 return _autoConnectLibrePilotFact;
100}
101
103{
104 if (!_nmeaSourceFact) {
105 _nmeaSourceFact = _createSettingsFact(nmeaSourceName);
106#ifdef Q_OS_IOS
107 _nmeaSourceFact->setUserVisible(false);
108#endif
109 }
110 return _nmeaSourceFact;
111}
112
114{
115 if (!_autoConnectNmeaPortFact) {
116 _autoConnectNmeaPortFact = _createSettingsFact(autoConnectNmeaPortName);
117#ifdef Q_OS_IOS
118 _autoConnectNmeaPortFact->setUserVisible(false);
119#endif
120 }
121 return _autoConnectNmeaPortFact;
122}
123
125{
126 if (!_autoConnectNmeaBaudFact) {
127 _autoConnectNmeaBaudFact = _createSettingsFact(autoConnectNmeaBaudName);
128#ifdef Q_OS_IOS
129 _autoConnectNmeaBaudFact->setUserVisible(false);
130#endif
131 }
132 return _autoConnectNmeaBaudFact;
133}
134
135
#define DECLARE_SETTINGSFACT_NO_FUNC(CLASS, NAME)
#define DECLARE_SETTINGSFACT(CLASS, NAME)
#define DECLARE_SETTINGGROUP(NAME, GROUP)
Auto connect settings.