36 changed files with 854 additions and 534 deletions
@ -0,0 +1,130 @@
@@ -0,0 +1,130 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "AppSettings.h" |
||||
|
||||
#include <QQmlEngine> |
||||
#include <QtQml> |
||||
|
||||
const char* AppSettings::appSettingsGroupName = "app"; |
||||
const char* AppSettings::offlineEditingFirmwareTypeSettingsName = "OfflineEditingFirmwareType"; |
||||
const char* AppSettings::offlineEditingVehicleTypeSettingsName = "OfflineEditingVehicleType"; |
||||
const char* AppSettings::offlineEditingCruiseSpeedSettingsName = "OfflineEditingCruiseSpeed"; |
||||
const char* AppSettings::offlineEditingHoverSpeedSettingsName = "OfflineEditingHoverSpeed"; |
||||
const char* AppSettings::batteryPercentRemainingAnnounceSettingsName = "batteryPercentRemainingAnnounce"; |
||||
const char* AppSettings::defaultMissionItemAltitudeSettingsName = "DefaultMissionItemAltitude"; |
||||
const char* AppSettings::missionAutoLoadDirSettingsName = "MissionAutoLoadDir"; |
||||
const char* AppSettings::promptFlightTelemetrySaveName = "PromptFLightDataSave"; |
||||
const char* AppSettings::promptFlightTelemetrySaveNotArmedName = "PromptFLightDataSaveNotArmed"; |
||||
const char* AppSettings::audioMutedName = "AudioMuted"; |
||||
|
||||
AppSettings::AppSettings(QObject* parent) |
||||
: SettingsGroup(appSettingsGroupName, QString() /* root settings group */, parent) |
||||
, _offlineEditingFirmwareTypeFact(NULL) |
||||
, _offlineEditingVehicleTypeFact(NULL) |
||||
, _offlineEditingCruiseSpeedFact(NULL) |
||||
, _offlineEditingHoverSpeedFact(NULL) |
||||
, _batteryPercentRemainingAnnounceFact(NULL) |
||||
, _defaultMissionItemAltitudeFact(NULL) |
||||
, _missionAutoLoadDirFact(NULL) |
||||
, _promptFlightTelemetrySave(NULL) |
||||
, _promptFlightTelemetrySaveNotArmed(NULL) |
||||
, _audioMuted(NULL) |
||||
{ |
||||
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); |
||||
qmlRegisterUncreatableType<AppSettings>("QGroundControl.SettingsManager", 1, 0, "AppSettings", "Reference only"); |
||||
} |
||||
|
||||
Fact* AppSettings::offlineEditingFirmwareType(void) |
||||
{ |
||||
if (!_offlineEditingFirmwareTypeFact) { |
||||
_offlineEditingFirmwareTypeFact = _createSettingsFact(offlineEditingFirmwareTypeSettingsName); |
||||
} |
||||
|
||||
return _offlineEditingFirmwareTypeFact; |
||||
} |
||||
|
||||
Fact* AppSettings::offlineEditingVehicleType(void) |
||||
{ |
||||
if (!_offlineEditingVehicleTypeFact) { |
||||
_offlineEditingVehicleTypeFact = _createSettingsFact(offlineEditingVehicleTypeSettingsName); |
||||
} |
||||
|
||||
return _offlineEditingVehicleTypeFact; |
||||
} |
||||
|
||||
Fact* AppSettings::offlineEditingCruiseSpeed(void) |
||||
{ |
||||
if (!_offlineEditingCruiseSpeedFact) { |
||||
_offlineEditingCruiseSpeedFact = _createSettingsFact(offlineEditingCruiseSpeedSettingsName); |
||||
} |
||||
return _offlineEditingCruiseSpeedFact; |
||||
} |
||||
|
||||
Fact* AppSettings::offlineEditingHoverSpeed(void) |
||||
{ |
||||
if (!_offlineEditingHoverSpeedFact) { |
||||
_offlineEditingHoverSpeedFact = _createSettingsFact(offlineEditingHoverSpeedSettingsName); |
||||
} |
||||
return _offlineEditingHoverSpeedFact; |
||||
} |
||||
|
||||
Fact* AppSettings::batteryPercentRemainingAnnounce(void) |
||||
{ |
||||
if (!_batteryPercentRemainingAnnounceFact) { |
||||
_batteryPercentRemainingAnnounceFact = _createSettingsFact(batteryPercentRemainingAnnounceSettingsName); |
||||
} |
||||
|
||||
return _batteryPercentRemainingAnnounceFact; |
||||
} |
||||
|
||||
Fact* AppSettings::defaultMissionItemAltitude(void) |
||||
{ |
||||
if (!_defaultMissionItemAltitudeFact) { |
||||
_defaultMissionItemAltitudeFact = _createSettingsFact(defaultMissionItemAltitudeSettingsName); |
||||
} |
||||
|
||||
return _defaultMissionItemAltitudeFact; |
||||
} |
||||
|
||||
Fact* AppSettings::missionAutoLoadDir(void) |
||||
{ |
||||
if (!_missionAutoLoadDirFact) { |
||||
_missionAutoLoadDirFact = _createSettingsFact(missionAutoLoadDirSettingsName); |
||||
} |
||||
|
||||
return _missionAutoLoadDirFact; |
||||
} |
||||
|
||||
Fact* AppSettings::promptFlightTelemetrySave(void) |
||||
{ |
||||
if (!_promptFlightTelemetrySave) { |
||||
_promptFlightTelemetrySave = _createSettingsFact(promptFlightTelemetrySaveName); |
||||
} |
||||
|
||||
return _promptFlightTelemetrySave; |
||||
} |
||||
|
||||
Fact* AppSettings::promptFlightTelemetrySaveNotArmed(void) |
||||
{ |
||||
if (!_promptFlightTelemetrySaveNotArmed) { |
||||
_promptFlightTelemetrySaveNotArmed = _createSettingsFact(promptFlightTelemetrySaveNotArmedName); |
||||
} |
||||
|
||||
return _promptFlightTelemetrySaveNotArmed; |
||||
} |
||||
|
||||
Fact* AppSettings::audioMuted(void) |
||||
{ |
||||
if (!_audioMuted) { |
||||
_audioMuted = _createSettingsFact(audioMutedName); |
||||
} |
||||
|
||||
return _audioMuted; |
||||
} |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "AutoConnectSettings.h" |
||||
|
||||
#include <QQmlEngine> |
||||
#include <QtQml> |
||||
|
||||
const char* AutoConnectSettings::autoConnectSettingsGroupName = "autoConnect"; |
||||
|
||||
AutoConnectSettings::AutoConnectSettings(QObject* parent) |
||||
: SettingsGroup(autoConnectSettingsGroupName, QString() /* root settings group */, parent) |
||||
{ |
||||
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); |
||||
qmlRegisterUncreatableType<AutoConnectSettings>("QGroundControl.SettingsManager", 1, 0, "AutoConnectSettings", "Reference only"); |
||||
} |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#ifndef AutoConnectSettings_H |
||||
#define AutoConnectSettings_H |
||||
|
||||
#include "SettingsGroup.h" |
||||
|
||||
class AutoConnectSettings : public SettingsGroup |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
AutoConnectSettings(QObject* parent = NULL); |
||||
|
||||
static const char* autoConnectSettingsGroupName; |
||||
|
||||
private: |
||||
}; |
||||
|
||||
#endif |
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "SettingsGroup.h" |
||||
#include "QGCCorePlugin.h" |
||||
#include "QGCApplication.h" |
||||
|
||||
SettingsGroup::SettingsGroup(const QString& name, const QString& settingsGroup, QObject* parent) |
||||
: QObject(parent) |
||||
, _name(name) |
||||
, _settingsGroup(settingsGroup) |
||||
, _visible(qgcApp()->toolbox()->corePlugin()->overrideSettingsGroupVisibility(name)) |
||||
{ |
||||
QString jsonNameFormat(":/json/SettingsGroup.%1.json"); |
||||
|
||||
_nameToMetaDataMap = FactMetaData::createMapFromJsonFile(jsonNameFormat.arg(name), this); |
||||
} |
||||
|
||||
SettingsFact* SettingsGroup::_createSettingsFact(const QString& name) |
||||
{ |
||||
return new SettingsFact(_settingsGroup, _nameToMetaDataMap[name], this); |
||||
} |
||||
|
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#ifndef SettingsGroup_H |
||||
#define SettingsGroup_H |
||||
|
||||
#include "QGCLoggingCategory.h" |
||||
#include "Joystick.h" |
||||
#include "MultiVehicleManager.h" |
||||
#include "QGCToolbox.h" |
||||
|
||||
#include <QVariantList> |
||||
|
||||
/// Provides access to group of settings. The group is named and has a visible property associated with which can control whether the group
|
||||
/// is shows in the ui.
|
||||
class SettingsGroup : public QObject |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
/// @param name Name for this Settings group
|
||||
/// @param settingsGroup Group to place settings in for QSettings::setGroup
|
||||
SettingsGroup(const QString& name, const QString& settingsGroup, QObject* parent = NULL); |
||||
|
||||
Q_PROPERTY(bool visible MEMBER _visible CONSTANT) |
||||
|
||||
protected: |
||||
SettingsFact* _createSettingsFact(const QString& name); |
||||
|
||||
QString _name; |
||||
QString _settingsGroup; |
||||
bool _visible; |
||||
|
||||
QMap<QString, FactMetaData*> _nameToMetaDataMap; |
||||
}; |
||||
|
||||
#endif |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "SettingsManager.h" |
||||
|
||||
#include <QQmlEngine> |
||||
#include <QtQml> |
||||
|
||||
SettingsManager::SettingsManager(QGCApplication* app) |
||||
: QGCTool(app) |
||||
, _appSettings(NULL) |
||||
, _unitsSettings(NULL) |
||||
, _autoConnectSettings(NULL) |
||||
, _videoSettings(NULL) |
||||
{ |
||||
|
||||
} |
||||
|
||||
void SettingsManager::setToolbox(QGCToolbox *toolbox) |
||||
{ |
||||
QGCTool::setToolbox(toolbox); |
||||
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); |
||||
qmlRegisterUncreatableType<SettingsManager>("QGroundControl.SettingsManager", 1, 0, "SettingsManager", "Reference only"); |
||||
|
||||
_unitsSettings = new UnitsSettings(this); // Must be first since AppSettings references it
|
||||
_appSettings = new AppSettings(this); |
||||
_autoConnectSettings = new AutoConnectSettings(this); |
||||
_videoSettings = new VideoSettings(this); |
||||
} |
@ -0,0 +1,52 @@
@@ -0,0 +1,52 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#ifndef SettingsManager_H |
||||
#define SettingsManager_H |
||||
|
||||
#include "QGCLoggingCategory.h" |
||||
#include "Joystick.h" |
||||
#include "MultiVehicleManager.h" |
||||
#include "QGCToolbox.h" |
||||
#include "AppSettings.h" |
||||
#include "UnitsSettings.h" |
||||
#include "AutoConnectSettings.h" |
||||
#include "VideoSettings.h" |
||||
|
||||
#include <QVariantList> |
||||
|
||||
/// Provides access to all app settings
|
||||
class SettingsManager : public QGCTool |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
SettingsManager(QGCApplication* app); |
||||
|
||||
Q_PROPERTY(QObject* appSettings READ appSettings CONSTANT) |
||||
Q_PROPERTY(QObject* unitsSettings READ unitsSettings CONSTANT) |
||||
Q_PROPERTY(QObject* autoConnectSettings READ autoConnectSettings CONSTANT) |
||||
Q_PROPERTY(QObject* videoSettings READ videoSettings CONSTANT) |
||||
|
||||
// Override from QGCTool
|
||||
virtual void setToolbox(QGCToolbox *toolbox); |
||||
|
||||
AppSettings* appSettings (void) { return _appSettings; } |
||||
UnitsSettings* unitsSettings (void) { return _unitsSettings; } |
||||
AutoConnectSettings* autoConnectSettings (void) { return _autoConnectSettings; } |
||||
VideoSettings* videoSettings (void) { return _videoSettings; } |
||||
|
||||
private: |
||||
AppSettings* _appSettings; |
||||
UnitsSettings* _unitsSettings; |
||||
AutoConnectSettings* _autoConnectSettings; |
||||
VideoSettings* _videoSettings; |
||||
}; |
||||
|
||||
#endif |
@ -0,0 +1,94 @@
@@ -0,0 +1,94 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "UnitsSettings.h" |
||||
|
||||
#include <QQmlEngine> |
||||
#include <QtQml> |
||||
|
||||
const char* UnitsSettings::unitsSettingsGroupName = "units"; |
||||
const char* UnitsSettings::distanceUnitsSettingsName = "DistanceUnits"; |
||||
const char* UnitsSettings::areaUnitsSettingsName = "AreaUnits"; |
||||
const char* UnitsSettings::speedUnitsSettingsName = "SpeedUnits"; |
||||
|
||||
UnitsSettings::UnitsSettings(QObject* parent) |
||||
: SettingsGroup(unitsSettingsGroupName, QString() /* root settings group */, parent) |
||||
, _distanceUnitsFact(NULL) |
||||
, _areaUnitsFact(NULL) |
||||
, _speedUnitsFact(NULL) |
||||
{ |
||||
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); |
||||
qmlRegisterUncreatableType<UnitsSettings>("QGroundControl.SettingsManager", 1, 0, "UnitsSettings", "Reference only"); |
||||
} |
||||
|
||||
Fact* UnitsSettings::distanceUnits(void) |
||||
{ |
||||
if (!_distanceUnitsFact) { |
||||
// Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading.
|
||||
QStringList enumStrings; |
||||
QVariantList enumValues; |
||||
|
||||
enumStrings << "Feet" << "Meters"; |
||||
enumValues << QVariant::fromValue((uint32_t)DistanceUnitsFeet) << QVariant::fromValue((uint32_t)DistanceUnitsMeters); |
||||
|
||||
FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); |
||||
metaData->setName(distanceUnitsSettingsName); |
||||
metaData->setEnumInfo(enumStrings, enumValues); |
||||
metaData->setRawDefaultValue(DistanceUnitsMeters); |
||||
|
||||
_distanceUnitsFact = new SettingsFact(QString() /* no settings group */, metaData, this); |
||||
|
||||
} |
||||
|
||||
return _distanceUnitsFact; |
||||
|
||||
} |
||||
|
||||
Fact* UnitsSettings::areaUnits(void) |
||||
{ |
||||
if (!_areaUnitsFact) { |
||||
// Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading.
|
||||
QStringList enumStrings; |
||||
QVariantList enumValues; |
||||
|
||||
enumStrings << "SquareFeet" << "SquareMeters" << "SquareKilometers" << "Hectares" << "Acres" << "SquareMiles"; |
||||
enumValues << QVariant::fromValue((uint32_t)AreaUnitsSquareFeet) << QVariant::fromValue((uint32_t)AreaUnitsSquareMeters) << QVariant::fromValue((uint32_t)AreaUnitsSquareKilometers) << QVariant::fromValue((uint32_t)AreaUnitsHectares) << QVariant::fromValue((uint32_t)AreaUnitsAcres) << QVariant::fromValue((uint32_t)AreaUnitsSquareMiles); |
||||
|
||||
FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); |
||||
metaData->setName(areaUnitsSettingsName); |
||||
metaData->setEnumInfo(enumStrings, enumValues); |
||||
metaData->setRawDefaultValue(AreaUnitsSquareMeters); |
||||
|
||||
_areaUnitsFact = new SettingsFact(QString() /* no settings group */, metaData, this); |
||||
} |
||||
|
||||
return _areaUnitsFact; |
||||
|
||||
} |
||||
|
||||
Fact* UnitsSettings::speedUnits(void) |
||||
{ |
||||
if (!_speedUnitsFact) { |
||||
// Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading.
|
||||
QStringList enumStrings; |
||||
QVariantList enumValues; |
||||
|
||||
enumStrings << "Feet/second" << "Meters/second" << "Miles/hour" << "Kilometers/hour" << "Knots"; |
||||
enumValues << QVariant::fromValue((uint32_t)SpeedUnitsFeetPerSecond) << QVariant::fromValue((uint32_t)SpeedUnitsMetersPerSecond) << QVariant::fromValue((uint32_t)SpeedUnitsMilesPerHour) << QVariant::fromValue((uint32_t)SpeedUnitsKilometersPerHour) << QVariant::fromValue((uint32_t)SpeedUnitsKnots); |
||||
|
||||
FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); |
||||
metaData->setName(speedUnitsSettingsName); |
||||
metaData->setEnumInfo(enumStrings, enumValues); |
||||
metaData->setRawDefaultValue(SpeedUnitsMetersPerSecond); |
||||
|
||||
_speedUnitsFact = new SettingsFact(QString() /* no settings group */, metaData, this); |
||||
} |
||||
|
||||
return _speedUnitsFact; |
||||
} |
@ -0,0 +1,68 @@
@@ -0,0 +1,68 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#ifndef UnitsSettings_H |
||||
#define UnitsSettings_H |
||||
|
||||
#include "SettingsGroup.h" |
||||
|
||||
class UnitsSettings : public SettingsGroup |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
UnitsSettings(QObject* parent = NULL); |
||||
|
||||
enum DistanceUnits { |
||||
DistanceUnitsFeet = 0, |
||||
DistanceUnitsMeters |
||||
}; |
||||
|
||||
enum AreaUnits { |
||||
AreaUnitsSquareFeet = 0, |
||||
AreaUnitsSquareMeters, |
||||
AreaUnitsSquareKilometers, |
||||
AreaUnitsHectares, |
||||
AreaUnitsAcres, |
||||
AreaUnitsSquareMiles, |
||||
}; |
||||
|
||||
enum SpeedUnits { |
||||
SpeedUnitsFeetPerSecond = 0, |
||||
SpeedUnitsMetersPerSecond, |
||||
SpeedUnitsMilesPerHour, |
||||
SpeedUnitsKilometersPerHour, |
||||
SpeedUnitsKnots, |
||||
}; |
||||
|
||||
Q_ENUMS(DistanceUnits) |
||||
Q_ENUMS(AreaUnits) |
||||
Q_ENUMS(SpeedUnits) |
||||
|
||||
Q_PROPERTY(Fact* distanceUnits READ distanceUnits CONSTANT) |
||||
Q_PROPERTY(Fact* areaUnits READ areaUnits CONSTANT) |
||||
Q_PROPERTY(Fact* speedUnits READ speedUnits CONSTANT) |
||||
|
||||
Fact* distanceUnits (void); |
||||
Fact* areaUnits (void); |
||||
Fact* speedUnits (void); |
||||
|
||||
static const char* unitsSettingsGroupName; |
||||
|
||||
static const char* distanceUnitsSettingsName; |
||||
static const char* areaUnitsSettingsName; |
||||
static const char* speedUnitsSettingsName; |
||||
|
||||
private: |
||||
SettingsFact* _distanceUnitsFact; |
||||
SettingsFact* _areaUnitsFact; |
||||
SettingsFact* _speedUnitsFact; |
||||
}; |
||||
|
||||
#endif |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "VideoSettings.h" |
||||
|
||||
#include <QQmlEngine> |
||||
#include <QtQml> |
||||
|
||||
const char* VideoSettings::VideoSettingsGroupName = "video"; |
||||
|
||||
VideoSettings::VideoSettings(QObject* parent) |
||||
: SettingsGroup(VideoSettingsGroupName, QString() /* root settings group */, parent) |
||||
{ |
||||
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); |
||||
qmlRegisterUncreatableType<VideoSettings>("QGroundControl.SettingsManager", 1, 0, "VideoSettings", "Reference only"); |
||||
} |
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#ifndef VideoSettings_H |
||||
#define VideoSettings_H |
||||
|
||||
#include "SettingsGroup.h" |
||||
|
||||
class VideoSettings : public SettingsGroup |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
VideoSettings(QObject* parent = NULL); |
||||
|
||||
static const char* VideoSettingsGroupName; |
||||
|
||||
private: |
||||
}; |
||||
|
||||
#endif |
@ -1,214 +0,0 @@
@@ -1,214 +0,0 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "SettingsManager.h" |
||||
#include "QGCApplication.h" |
||||
|
||||
QGC_LOGGING_CATEGORY(SettingsManagerLog, "SettingsManagerLog") |
||||
|
||||
const char* SettingsManager::offlineEditingFirmwareTypeSettingsName = "OfflineEditingFirmwareType"; |
||||
const char* SettingsManager::offlineEditingVehicleTypeSettingsName = "OfflineEditingVehicleType"; |
||||
const char* SettingsManager::offlineEditingCruiseSpeedSettingsName = "OfflineEditingCruiseSpeed"; |
||||
const char* SettingsManager::offlineEditingHoverSpeedSettingsName = "OfflineEditingHoverSpeed"; |
||||
const char* SettingsManager::distanceUnitsSettingsName = "DistanceUnits"; |
||||
const char* SettingsManager::areaUnitsSettingsName = "AreaUnits"; |
||||
const char* SettingsManager::speedUnitsSettingsName = "SpeedUnits"; |
||||
const char* SettingsManager::batteryPercentRemainingAnnounceSettingsName = "batteryPercentRemainingAnnounce"; |
||||
const char* SettingsManager::defaultMissionItemAltitudeSettingsName = "DefaultMissionItemAltitude"; |
||||
const char* SettingsManager::missionAutoLoadDirSettingsName = "MissionAutoLoadDir"; |
||||
const char* SettingsManager::promptFlightTelemetrySaveName = "PromptFLightDataSave"; |
||||
const char* SettingsManager::promptFlightTelemetrySaveNotArmedName = "PromptFLightDataSaveNotArmed"; |
||||
const char* SettingsManager::audioMutedName = "AudioMuted"; |
||||
|
||||
SettingsManager::SettingsManager(QGCApplication* app) |
||||
: QGCTool(app) |
||||
, _offlineEditingFirmwareTypeFact(NULL) |
||||
, _offlineEditingVehicleTypeFact(NULL) |
||||
, _offlineEditingCruiseSpeedFact(NULL) |
||||
, _offlineEditingHoverSpeedFact(NULL) |
||||
, _distanceUnitsFact(NULL) |
||||
, _areaUnitsFact(NULL) |
||||
, _speedUnitsFact(NULL) |
||||
, _batteryPercentRemainingAnnounceFact(NULL) |
||||
, _defaultMissionItemAltitudeFact(NULL) |
||||
, _missionAutoLoadDirFact(NULL) |
||||
, _promptFlightTelemetrySave(NULL) |
||||
, _promptFlightTelemetrySaveNotArmed(NULL) |
||||
, _audioMuted(NULL) |
||||
{ |
||||
|
||||
} |
||||
|
||||
void SettingsManager::setToolbox(QGCToolbox *toolbox) |
||||
{ |
||||
QGCTool::setToolbox(toolbox); |
||||
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); |
||||
qmlRegisterUncreatableType<SettingsManager>("QGroundControl.SettingsManager", 1, 0, "SettingsManager", "Reference only"); |
||||
|
||||
_nameToMetaDataMap = FactMetaData::createMapFromJsonFile(":/json/SettingsManager.json", this); |
||||
} |
||||
|
||||
SettingsFact* SettingsManager::_createSettingsFact(const QString& name) |
||||
{ |
||||
return new SettingsFact(QString() /* no settings group */, _nameToMetaDataMap[name], this); |
||||
} |
||||
|
||||
Fact* SettingsManager::offlineEditingFirmwareType(void) |
||||
{ |
||||
if (!_offlineEditingFirmwareTypeFact) { |
||||
_offlineEditingFirmwareTypeFact = _createSettingsFact(offlineEditingFirmwareTypeSettingsName); |
||||
} |
||||
|
||||
return _offlineEditingFirmwareTypeFact; |
||||
} |
||||
|
||||
Fact* SettingsManager::offlineEditingVehicleType(void) |
||||
{ |
||||
if (!_offlineEditingVehicleTypeFact) { |
||||
_offlineEditingVehicleTypeFact = _createSettingsFact(offlineEditingVehicleTypeSettingsName); |
||||
} |
||||
|
||||
return _offlineEditingVehicleTypeFact; |
||||
} |
||||
|
||||
Fact* SettingsManager::offlineEditingCruiseSpeed(void) |
||||
{ |
||||
if (!_offlineEditingCruiseSpeedFact) { |
||||
_offlineEditingCruiseSpeedFact = _createSettingsFact(offlineEditingCruiseSpeedSettingsName); |
||||
} |
||||
return _offlineEditingCruiseSpeedFact; |
||||
} |
||||
|
||||
Fact* SettingsManager::offlineEditingHoverSpeed(void) |
||||
{ |
||||
if (!_offlineEditingHoverSpeedFact) { |
||||
_offlineEditingHoverSpeedFact = _createSettingsFact(offlineEditingHoverSpeedSettingsName); |
||||
} |
||||
return _offlineEditingHoverSpeedFact; |
||||
} |
||||
|
||||
Fact* SettingsManager::batteryPercentRemainingAnnounce(void) |
||||
{ |
||||
if (!_batteryPercentRemainingAnnounceFact) { |
||||
_batteryPercentRemainingAnnounceFact = _createSettingsFact(batteryPercentRemainingAnnounceSettingsName); |
||||
} |
||||
|
||||
return _batteryPercentRemainingAnnounceFact; |
||||
} |
||||
|
||||
Fact* SettingsManager::defaultMissionItemAltitude(void) |
||||
{ |
||||
if (!_defaultMissionItemAltitudeFact) { |
||||
_defaultMissionItemAltitudeFact = _createSettingsFact(defaultMissionItemAltitudeSettingsName); |
||||
} |
||||
|
||||
return _defaultMissionItemAltitudeFact; |
||||
} |
||||
|
||||
Fact* SettingsManager::missionAutoLoadDir(void) |
||||
{ |
||||
if (!_missionAutoLoadDirFact) { |
||||
_missionAutoLoadDirFact = _createSettingsFact(missionAutoLoadDirSettingsName); |
||||
} |
||||
|
||||
return _missionAutoLoadDirFact; |
||||
} |
||||
|
||||
Fact* SettingsManager::promptFlightTelemetrySave(void) |
||||
{ |
||||
if (!_promptFlightTelemetrySave) { |
||||
_promptFlightTelemetrySave = _createSettingsFact(promptFlightTelemetrySaveName); |
||||
} |
||||
|
||||
return _promptFlightTelemetrySave; |
||||
} |
||||
|
||||
Fact* SettingsManager::promptFlightTelemetrySaveNotArmed(void) |
||||
{ |
||||
if (!_promptFlightTelemetrySaveNotArmed) { |
||||
_promptFlightTelemetrySaveNotArmed = _createSettingsFact(promptFlightTelemetrySaveNotArmedName); |
||||
} |
||||
|
||||
return _promptFlightTelemetrySaveNotArmed; |
||||
} |
||||
|
||||
Fact* SettingsManager::audioMuted(void) |
||||
{ |
||||
if (!_audioMuted) { |
||||
_audioMuted = _createSettingsFact(audioMutedName); |
||||
} |
||||
|
||||
return _audioMuted; |
||||
} |
||||
|
||||
Fact* SettingsManager::distanceUnits(void) |
||||
{ |
||||
if (!_distanceUnitsFact) { |
||||
// Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading.
|
||||
QStringList enumStrings; |
||||
QVariantList enumValues; |
||||
|
||||
enumStrings << "Feet" << "Meters"; |
||||
enumValues << QVariant::fromValue((uint32_t)DistanceUnitsFeet) << QVariant::fromValue((uint32_t)DistanceUnitsMeters); |
||||
|
||||
FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); |
||||
metaData->setName(distanceUnitsSettingsName); |
||||
metaData->setEnumInfo(enumStrings, enumValues); |
||||
metaData->setRawDefaultValue(DistanceUnitsMeters); |
||||
|
||||
_distanceUnitsFact = new SettingsFact(QString() /* no settings group */, metaData, this); |
||||
|
||||
} |
||||
|
||||
return _distanceUnitsFact; |
||||
|
||||
} |
||||
|
||||
Fact* SettingsManager::areaUnits(void) |
||||
{ |
||||
if (!_areaUnitsFact) { |
||||
// Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading.
|
||||
QStringList enumStrings; |
||||
QVariantList enumValues; |
||||
|
||||
enumStrings << "SquareFeet" << "SquareMeters" << "SquareKilometers" << "Hectares" << "Acres" << "SquareMiles"; |
||||
enumValues << QVariant::fromValue((uint32_t)AreaUnitsSquareFeet) << QVariant::fromValue((uint32_t)AreaUnitsSquareMeters) << QVariant::fromValue((uint32_t)AreaUnitsSquareKilometers) << QVariant::fromValue((uint32_t)AreaUnitsHectares) << QVariant::fromValue((uint32_t)AreaUnitsAcres) << QVariant::fromValue((uint32_t)AreaUnitsSquareMiles); |
||||
|
||||
FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); |
||||
metaData->setName(areaUnitsSettingsName); |
||||
metaData->setEnumInfo(enumStrings, enumValues); |
||||
metaData->setRawDefaultValue(AreaUnitsSquareMeters); |
||||
|
||||
_areaUnitsFact = new SettingsFact(QString() /* no settings group */, metaData, this); |
||||
} |
||||
|
||||
return _areaUnitsFact; |
||||
|
||||
} |
||||
|
||||
Fact* SettingsManager::speedUnits(void) |
||||
{ |
||||
if (!_speedUnitsFact) { |
||||
// Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading.
|
||||
QStringList enumStrings; |
||||
QVariantList enumValues; |
||||
|
||||
enumStrings << "Feet/second" << "Meters/second" << "Miles/hour" << "Kilometers/hour" << "Knots"; |
||||
enumValues << QVariant::fromValue((uint32_t)SpeedUnitsFeetPerSecond) << QVariant::fromValue((uint32_t)SpeedUnitsMetersPerSecond) << QVariant::fromValue((uint32_t)SpeedUnitsMilesPerHour) << QVariant::fromValue((uint32_t)SpeedUnitsKilometersPerHour) << QVariant::fromValue((uint32_t)SpeedUnitsKnots); |
||||
|
||||
FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); |
||||
metaData->setName(speedUnitsSettingsName); |
||||
metaData->setEnumInfo(enumStrings, enumValues); |
||||
metaData->setRawDefaultValue(SpeedUnitsMetersPerSecond); |
||||
|
||||
_speedUnitsFact = new SettingsFact(QString() /* no settings group */, metaData, this); |
||||
} |
||||
|
||||
return _speedUnitsFact; |
||||
} |
Loading…
Reference in new issue