AppSettings.h 4.77 KB
Newer Older
1 2
/****************************************************************************
 *
Gus Grubba's avatar
Gus Grubba committed
3
 * (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
4 5 6 7 8
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/
Gus Grubba's avatar
Gus Grubba committed
9 10 11 12

/// @file
/// @brief Application Settings

13
#pragma once
14
#include <QTranslator>
15

16
#include "SettingsGroup.h"
17
#include "QGCMAVLink.h"
18

Gus Grubba's avatar
Gus Grubba committed
19
/// Application Settings
20
class AppSettings : public SettingsGroup
21 22
{
    Q_OBJECT
23

24
public:
25
    AppSettings(QObject* parent = nullptr);
26

27 28 29 30 31 32 33 34 35 36 37 38 39
    DEFINE_SETTING_NAME_GROUP()

    DEFINE_SETTINGFACT(offlineEditingFirmwareType)
    DEFINE_SETTINGFACT(offlineEditingVehicleType)
    DEFINE_SETTINGFACT(offlineEditingCruiseSpeed)
    DEFINE_SETTINGFACT(offlineEditingHoverSpeed)
    DEFINE_SETTINGFACT(offlineEditingAscentSpeed)
    DEFINE_SETTINGFACT(offlineEditingDescentSpeed)
    DEFINE_SETTINGFACT(batteryPercentRemainingAnnounce)
    DEFINE_SETTINGFACT(defaultMissionItemAltitude)
    DEFINE_SETTINGFACT(telemetrySave)
    DEFINE_SETTINGFACT(telemetrySaveNotArmed)
    DEFINE_SETTINGFACT(audioMuted)
40
    DEFINE_SETTINGFACT(checkInternet)
41
    DEFINE_SETTINGFACT(virtualJoystick)
42
    DEFINE_SETTINGFACT(virtualJoystickCentralized)
43 44 45 46 47 48 49 50 51 52 53
    DEFINE_SETTINGFACT(appFontPointSize)
    DEFINE_SETTINGFACT(indoorPalette)
    DEFINE_SETTINGFACT(showLargeCompass)
    DEFINE_SETTINGFACT(savePath)
    DEFINE_SETTINGFACT(autoLoadMissions)
    DEFINE_SETTINGFACT(useChecklist)
    DEFINE_SETTINGFACT(mapboxToken)
    DEFINE_SETTINGFACT(esriToken)
    DEFINE_SETTINGFACT(defaultFirmwareType)
    DEFINE_SETTINGFACT(gstDebugLevel)
    DEFINE_SETTINGFACT(followTarget)
54 55
    DEFINE_SETTINGFACT(enableTaisync)
    DEFINE_SETTINGFACT(enableTaisyncVideo)
56
    DEFINE_SETTINGFACT(enableMicrohard)
57
    DEFINE_SETTINGFACT(language)
58
    DEFINE_SETTINGFACT(disableAllPersistence)
Gus Grubba's avatar
Gus Grubba committed
59
    DEFINE_SETTINGFACT(usePairing)
60
    DEFINE_SETTINGFACT(saveCsvTelemetry)
61

62 63 64
    // Although this is a global setting it only affects ArduPilot vehicle since PX4 automatically starts the stream from the vehicle side
    DEFINE_SETTINGFACT(apmStartMavlinkStreams)

65 66 67
    Q_PROPERTY(QString missionSavePath      READ missionSavePath    NOTIFY savePathsChanged)
    Q_PROPERTY(QString parameterSavePath    READ parameterSavePath  NOTIFY savePathsChanged)
    Q_PROPERTY(QString telemetrySavePath    READ telemetrySavePath  NOTIFY savePathsChanged)
68
    Q_PROPERTY(QString logSavePath          READ logSavePath        NOTIFY savePathsChanged)
69
    Q_PROPERTY(QString videoSavePath        READ videoSavePath      NOTIFY savePathsChanged)
70
    Q_PROPERTY(QString crashSavePath        READ crashSavePath      NOTIFY savePathsChanged)
71

72
    Q_PROPERTY(QString planFileExtension        MEMBER planFileExtension        CONSTANT)
73
    Q_PROPERTY(QString missionFileExtension     MEMBER missionFileExtension     CONSTANT)
74
    Q_PROPERTY(QString waypointsFileExtension   MEMBER waypointsFileExtension   CONSTANT)
75 76
    Q_PROPERTY(QString parameterFileExtension   MEMBER parameterFileExtension   CONSTANT)
    Q_PROPERTY(QString telemetryFileExtension   MEMBER telemetryFileExtension   CONSTANT)
77
    Q_PROPERTY(QString kmlFileExtension         MEMBER kmlFileExtension         CONSTANT)
78
    Q_PROPERTY(QString shpFileExtension         MEMBER shpFileExtension         CONSTANT)
79
    Q_PROPERTY(QString logFileExtension         MEMBER logFileExtension         CONSTANT)
80

81 82 83 84 85 86
    QString missionSavePath     ();
    QString parameterSavePath   ();
    QString telemetrySavePath   ();
    QString logSavePath         ();
    QString videoSavePath       ();
    QString crashSavePath       ();
87

88 89
    static MAV_AUTOPILOT    offlineEditingFirmwareTypeFromFirmwareType  (MAV_AUTOPILOT firmwareType);
    static MAV_TYPE         offlineEditingVehicleTypeFromVehicleType    (MAV_TYPE vehicleType);
90 91 92

    // Application wide file extensions
    static const char* parameterFileExtension;
93
    static const char* planFileExtension;
94
    static const char* missionFileExtension;
95
    static const char* waypointsFileExtension;
96 97 98
    static const char* fenceFileExtension;
    static const char* rallyPointFileExtension;
    static const char* telemetryFileExtension;
99
    static const char* kmlFileExtension;
100
    static const char* shpFileExtension;
101
    static const char* logFileExtension;
102 103 104 105 106

    // Child directories of savePath for specific file types
    static const char* parameterDirectory;
    static const char* telemetryDirectory;
    static const char* missionDirectory;
107
    static const char* logDirectory;
108
    static const char* videoDirectory;
109
    static const char* crashDirectory;
110 111

signals:
112
    void savePathsChanged();
113 114

private slots:
115 116
    void _indoorPaletteChanged();
    void _checkSavePathDirectories();
117 118 119 120
    void _languageChanged();

private:
    QTranslator _QGCTranslator;
121 122

};