22#ifndef QGC_NO_SERIAL_LINK
29#include <QtCore/QLineF>
30#include <QtCore/QSettings>
31#include <QtGui/QClipboard>
32#include <QtGui/QGuiApplication>
34#include "qgc_version.h"
61 settings.beginGroup(_flightMapPositionSettingsGroup);
62 _coord.setLatitude(settings.value(_flightMapPositionLatitudeSettingsKey, _coord.latitude()).toDouble());
63 _coord.setLongitude(settings.value(_flightMapPositionLongitudeSettingsKey, _coord.longitude()).toDouble());
64 _zoom = settings.value(_flightMapZoomSettingsKey, _zoom).toDouble();
65 _flightMapPositionSettledTimer.setSingleShot(
true);
66 _flightMapPositionSettledTimer.setInterval(1000);
67 (void) connect(&_flightMapPositionSettledTimer, &QTimer::timeout,
this, []() {
69 QSettings settingsInner;
70 settingsInner.beginGroup(_flightMapPositionSettingsGroup);
71 settingsInner.setValue(_flightMapPositionLatitudeSettingsKey, _coord.latitude());
72 settingsInner.setValue(_flightMapPositionLongitudeSettingsKey, _coord.longitude());
73 settingsInner.setValue(_flightMapZoomSettingsKey, _zoom);
76 if (!_flightMapPositionSettledTimer.isActive()) {
77 _flightMapPositionSettledTimer.start();
81 if (!_flightMapPositionSettledTimer.isActive()) {
82 _flightMapPositionSettledTimer.start();
106 settings.beginGroup(kQmlGlobalKeyName);
107 settings.setValue(key, value);
113 settings.beginGroup(kQmlGlobalKeyName);
114 return settings.value(key, defaultValue).toString();
120 settings.beginGroup(kQmlGlobalKeyName);
121 settings.setValue(key, value);
127 settings.beginGroup(kQmlGlobalKeyName);
128 return settings.value(key, defaultValue).toBool();
140 if (!mockConfig->setProperty(it.key().toUtf8().constData(), it.value())) {
141 qCWarning(QGroundControlQmlGlobalLog) <<
"Invalid MockConfiguration property:" << it.key() << it.value();
155 for (
int i=0; i<sharedLinks.count(); i++) {
157 MockLink* mockLink = qobject_cast<MockLink*>(link);
193 QPointF intersectPoint;
195 auto intersect = QLineF(line1A, line1B).intersects(QLineF(line2A, line2B), &intersectPoint);
197 return intersect == QLineF::BoundedIntersection &&
198 intersectPoint != line1A && intersectPoint != line1B;
204 _coord.setLatitude(coordinate.latitude());
205 _coord.setLongitude(coordinate.longitude());
220 QString versionStr = QCoreApplication::applicationVersion();
221 if(QSysInfo::buildAbi().contains(
"32"))
223 versionStr += QStringLiteral(
" %1").arg(tr(
"32 bit"));
225 else if(QSysInfo::buildAbi().contains(
"64"))
227 versionStr += QStringLiteral(
" %1").arg(tr(
"64 bit"));
286 const QString& title,
289 QJSValue acceptFunction,
290 QJSValue closeFunction)
302 QGuiApplication::clipboard()->setText(text);
307 return _settingsManager->
flightMapSettings()->elevationMapProvider()->rawValue().toString();
312 return _settingsManager->
flightMapSettings()->elevationMapProvider()->rawValue().toString();
327 return QCoreApplication::applicationName();
332#ifndef QGC_NO_SERIAL_LINK
334 (void) manager->availablePorts();
#define QGC_LOGGING_CATEGORY(name, categoryStr)
static constexpr const char * parameterFileExtension
static constexpr const char * telemetryFileExtension
void testAudioOutput()
Tests the audio output. Will stop current output before test.
static AudioOutput * instance()
bool firmwareClassSupported(QGCMAVLink::FirmwareClass_t firmwareClass)
Returns true if the specified firmware class is supported by the system.
bool singleFirmwareSupport()
Returns true if the system supports only a single firmware class.
bool singleVehicleSupport()
Returns true if the system supports only a single firmware class with a single vehicle type.
static FirmwarePluginManager * instance()
static GPSManager * instance()
PositionManager * positionManager() const
The link interface defines the interface for all links used to communicate with the ground station ap...
Manage communication links The Link Manager organizes the physical Links. It can manage arbitrary lin...
static LinkManager * instance()
QList< SharedLinkInterfacePtr > links()
Bag of named MAVLink signing keys; correct key per vehicle is auto-detected from incoming signed pack...
Manages a hierarchy of MissionCommandUIInfo.
static MockLink * startMockLink(MockConfiguration *mockConfig)
Starts a MockLink from a fully caller-configured MockConfiguration (ownership transfers to LinkManage...
Extension mechanism for generic, non-firmware-specific customization of QGC.
static constexpr const FirmwareClass_t FirmwareClassPX4
static constexpr const FirmwareClass_t FirmwareClassArduPilot
QGCPalette is used in QML ui to expose color properties for the QGC palette.
static QGCVersionCheck * instance()
QString newStableVersion() const
Newer stable version available for download, empty if none.
void newStableVersionChanged()
void setFlightMapPosition(QGeoCoordinate &coordinate)
static QString qgcAppDate()
void setFlightMapZoom(double zoom)
static double flightMapZoom()
QString telemetryFileExtension(void) const
Q_INVOKABLE void startMockLink(const QVariantMap &properties)
Starts a MockLink whose MockConfiguration properties are set from the map (e.g. { name: "PX4",...
void showMessageDialogRequested(QObject *owner, QString title, QString text, int buttons, QJSValue acceptFunction, QJSValue closeFunction)
QString elevationProviderName()
~QGroundControlQmlGlobal()
bool singleFirmwareSupport()
void flightMapPositionChanged(QGeoCoordinate flightMapPosition)
Q_INVOKABLE QString loadGlobalSetting(const QString &key, const QString &defaultValue)
static QString newStableVersion()
QObject * serialPortManager() const
@ AltitudeFrameCalcAboveTerrain
Q_INVOKABLE QString altitudeFrameExtraUnits(AltitudeFrame altFrame)
String shown in the FactTextField.extraUnits ui.
bool singleVehicleSupport()
bool px4ProFirmwareSupported()
QString elevationProviderNotice()
GPSManager * gpsManager() const
static Q_INVOKABLE QString bigSizeToString(quint64 size)
Byte size with a locale-aware unit, as QGC::bigSizeToString().
static QGeoCoordinate flightMapPosition()
PositionManager * positionManager() const
void flightMapZoomChanged(double flightMapZoom)
Q_INVOKABLE void stopOneMockLink(void)
void newStableVersionChanged()
Q_INVOKABLE bool loadBoolGlobalSetting(const QString &key, bool defaultValue)
static QString qgcVersion()
QString parameterFileExtension(void) const
Q_INVOKABLE bool linesIntersect(QPointF xLine1, QPointF yLine1, QPointF xLine2, QPointF yLine2)
Q_INVOKABLE void saveBoolGlobalSetting(const QString &key, bool value)
Q_INVOKABLE QString altitudeFrameShortDescription(AltitudeFrame altFrame)
String shown when a user needs to select an altitude frame.
Q_INVOKABLE void showMessageDialog(QObject *owner, const QString &title, const QString &text, int buttons=kDefaultMessageDialogButtons, QJSValue acceptFunction=QJSValue(), QJSValue closeFunction=QJSValue())
bool apmFirmwareSupported()
static Q_INVOKABLE void copyToClipboard(const QString &text)
Copy text to the system clipboard.
Q_INVOKABLE void saveGlobalSetting(const QString &key, const QString &value)
Q_INVOKABLE void testAudioOutput()
static SerialPortManager * instance()
Provides access to all app settings.
FlightMapSettings * flightMapSettings() const
static GParamSpec * properties[PROP_LAST]
QString bigSizeToString(quint64 size)
Byte size with unit: B, KB, MB, GB, TB. 1 fractional digit above 1 KB.