Commit 80ee708c authored by Don Gagne's avatar Don Gagne

Convert mission auto load dir setting to SettingsFact

parent 526e5c53
......@@ -21,7 +21,6 @@ static const char* kQmlGlobalKeyName = "QGCQml";
const char* QGroundControlQmlGlobal::_virtualTabletJoystickKey = "VirtualTabletJoystick";
const char* QGroundControlQmlGlobal::_baseFontPointSizeKey = "BaseDeviceFontPointSize";
const char* QGroundControlQmlGlobal::_missionAutoLoadDirKey = "MissionAutoLoadDir";
QGroundControlQmlGlobal::QGroundControlQmlGlobal(QGCApplication* app)
: QGCTool(app)
......@@ -227,15 +226,3 @@ bool QGroundControlQmlGlobal::linesIntersect(QPointF line1A, QPointF line1B, QPo
return QLineF(line1A, line1B).intersect(QLineF(line2A, line2B), &intersectPoint) == QLineF::BoundedIntersection &&
intersectPoint != line1A && intersectPoint != line1B;
}
QString QGroundControlQmlGlobal::missionAutoLoadDir(void)
{
QSettings settings;
return settings.value(_missionAutoLoadDirKey).toString();
}
void QGroundControlQmlGlobal::setMissionAutoLoadDir(const QString& missionAutoLoadDir)
{
QSettings settings;
settings.setValue(_missionAutoLoadDirKey, missionAutoLoadDir);
}
......@@ -61,7 +61,6 @@ public:
Q_PROPERTY(bool isSaveLogPromptNotArmed READ isSaveLogPromptNotArmed WRITE setIsSaveLogPromptNotArmed NOTIFY isSaveLogPromptNotArmedChanged)
Q_PROPERTY(bool virtualTabletJoystick READ virtualTabletJoystick WRITE setVirtualTabletJoystick NOTIFY virtualTabletJoystickChanged)
Q_PROPERTY(qreal baseFontPointSize READ baseFontPointSize WRITE setBaseFontPointSize NOTIFY baseFontPointSizeChanged)
Q_PROPERTY(QString missionAutoLoadDir READ missionAutoLoadDir WRITE setMissionAutoLoadDir NOTIFY missionAutoLoadDirChanged STORED false)
//-------------------------------------------------------------------------
// MavLink Protocol
......@@ -127,6 +126,8 @@ public:
Q_INVOKABLE bool linesIntersect(QPointF xLine1, QPointF yLine1, QPointF xLine2, QPointF yLine2);
Q_INVOKABLE QString urlToLocalFile(QUrl url) { return url.toLocalFile(); }
// Property accesors
FlightMapSettings* flightMapSettings () { return _flightMapSettings; }
......@@ -174,9 +175,6 @@ public:
QString qgcVersion(void) const { return qgcApp()->applicationVersion(); }
static QString missionAutoLoadDir(void);
static void setMissionAutoLoadDir(const QString& missionAutoLoadDir);
// Overrides from QGCTool
virtual void setToolbox(QGCToolbox* toolbox);
......@@ -192,7 +190,6 @@ signals:
void mavlinkSystemIDChanged (int id);
void flightMapPositionChanged (QGeoCoordinate flightMapPosition);
void flightMapZoomChanged (double flightMapZoom);
void missionAutoLoadDirChanged (QString missionAutoLoadDir);
private:
FlightMapSettings* _flightMapSettings;
......@@ -214,7 +211,6 @@ private:
static const char* _virtualTabletJoystickKey;
static const char* _baseFontPointSizeKey;
static const char* _missionAutoLoadDirKey;
};
#endif
......@@ -21,6 +21,7 @@ const char* SettingsManager::areaUnitsSettingsName = "Are
const char* SettingsManager::speedUnitsSettingsName = "SpeedUnits";
const char* SettingsManager::batteryPercentRemainingAnnounceSettingsName = "batteryPercentRemainingAnnounce";
const char* SettingsManager::defaultMissionItemAltitudeSettingsName = "DefaultMissionItemAltitude";
const char* SettingsManager::missionAutoLoadDirSettingsName = "MissionAutoLoadDir";
SettingsManager::SettingsManager(QGCApplication* app)
: QGCTool(app)
......@@ -33,6 +34,7 @@ SettingsManager::SettingsManager(QGCApplication* app)
, _speedUnitsFact(NULL)
, _batteryPercentRemainingAnnounceFact(NULL)
, _defaultMissionItemAltitudeFact(NULL)
, _missionAutoLoadDirFact(NULL)
{
}
......@@ -103,6 +105,15 @@ Fact* SettingsManager::defaultMissionItemAltitude(void)
return _defaultMissionItemAltitudeFact;
}
Fact* SettingsManager::missionAutoLoadDir(void)
{
if (!_missionAutoLoadDirFact) {
_missionAutoLoadDirFact = _createSettingsFact(missionAutoLoadDirSettingsName);
}
return _missionAutoLoadDirFact;
}
Fact* SettingsManager::distanceUnits(void)
{
if (!_distanceUnitsFact) {
......
......@@ -54,25 +54,27 @@ public:
Q_ENUMS(AreaUnits)
Q_ENUMS(SpeedUnits)
Q_PROPERTY(Fact* offlineEditingFirmwareType READ offlineEditingFirmwareType CONSTANT)
Q_PROPERTY(Fact* offlineEditingVehicleType READ offlineEditingVehicleType CONSTANT)
Q_PROPERTY(Fact* offlineEditingCruiseSpeed READ offlineEditingCruiseSpeed CONSTANT)
Q_PROPERTY(Fact* offlineEditingHoverSpeed READ offlineEditingHoverSpeed CONSTANT)
Q_PROPERTY(Fact* distanceUnits READ distanceUnits CONSTANT)
Q_PROPERTY(Fact* areaUnits READ areaUnits CONSTANT)
Q_PROPERTY(Fact* speedUnits READ speedUnits CONSTANT)
Q_PROPERTY(Fact* batteryPercentRemainingAnnounce READ batteryPercentRemainingAnnounce CONSTANT)
Q_PROPERTY(Fact* defaultMissionItemAltitude READ defaultMissionItemAltitude CONSTANT)
Fact* offlineEditingFirmwareType (void);
Fact* offlineEditingVehicleType (void);
Fact* offlineEditingCruiseSpeed (void);
Fact* offlineEditingHoverSpeed (void);
Fact* distanceUnits (void);
Fact* areaUnits (void);
Fact* speedUnits (void);
Fact* batteryPercentRemainingAnnounce(void);
Fact* defaultMissionItemAltitude (void);
Q_PROPERTY(Fact* offlineEditingFirmwareType READ offlineEditingFirmwareType CONSTANT)
Q_PROPERTY(Fact* offlineEditingVehicleType READ offlineEditingVehicleType CONSTANT)
Q_PROPERTY(Fact* offlineEditingCruiseSpeed READ offlineEditingCruiseSpeed CONSTANT)
Q_PROPERTY(Fact* offlineEditingHoverSpeed READ offlineEditingHoverSpeed CONSTANT)
Q_PROPERTY(Fact* distanceUnits READ distanceUnits CONSTANT)
Q_PROPERTY(Fact* areaUnits READ areaUnits CONSTANT)
Q_PROPERTY(Fact* speedUnits READ speedUnits CONSTANT)
Q_PROPERTY(Fact* batteryPercentRemainingAnnounce READ batteryPercentRemainingAnnounce CONSTANT)
Q_PROPERTY(Fact* defaultMissionItemAltitude READ defaultMissionItemAltitude CONSTANT)
Q_PROPERTY(Fact* missionAutoLoadDir READ missionAutoLoadDir CONSTANT)
Fact* offlineEditingFirmwareType (void);
Fact* offlineEditingVehicleType (void);
Fact* offlineEditingCruiseSpeed (void);
Fact* offlineEditingHoverSpeed (void);
Fact* distanceUnits (void);
Fact* areaUnits (void);
Fact* speedUnits (void);
Fact* batteryPercentRemainingAnnounce (void);
Fact* defaultMissionItemAltitude (void);
Fact* missionAutoLoadDir (void);
// Override from QGCTool
virtual void setToolbox(QGCToolbox *toolbox);
......@@ -86,13 +88,8 @@ public:
static const char* speedUnitsSettingsName;
static const char* batteryPercentRemainingAnnounceSettingsName;
static const char* defaultMissionItemAltitudeSettingsName;
static const char* missionAutoLoadDirSettingsName;
public slots:
signals:
private slots:
private:
SettingsFact* _createSettingsFact(const QString& name);
......@@ -107,6 +104,7 @@ private:
SettingsFact* _speedUnitsFact;
SettingsFact* _batteryPercentRemainingAnnounceFact;
SettingsFact* _defaultMissionItemAltitudeFact;
SettingsFact* _missionAutoLoadDirFact;
};
#endif
......@@ -54,5 +54,12 @@
"min": 0.0,
"units": "meters",
"decimalPlaces": 2
},
{
"name": "MissionAutoLoadDir",
"shortDescription": "Mission auto load directory",
"longDescription": "The directory from which missions will be automaticallu loaded onto a vehicle when it connects.",
"type": "string",
"defaultValue": ""
}
]
......@@ -1579,7 +1579,7 @@ void Vehicle::_parametersReady(bool parametersReady)
{
if (parametersReady && !_missionManagerInitialRequestSent) {
_missionManagerInitialRequestSent = true;
QString missionAutoLoadDirPath = QGroundControlQmlGlobal::missionAutoLoadDir();
QString missionAutoLoadDirPath = _settingsManager->missionAutoLoadDir()->rawValue().toString();
if (missionAutoLoadDirPath.isEmpty()) {
_missionManager->requestMissionItems();
} else {
......
......@@ -33,6 +33,7 @@ QGCView {
anchors.margins: ScreenTools.defaultFontPixelWidth
property Fact _percentRemainingAnnounce: QGroundControl.settingsManager.batteryPercentRemainingAnnounce
property Fact _autoLoadDir: QGroundControl.settingsManager.missionAutoLoadDir
property real _labelWidth: ScreenTools.defaultFontPixelWidth * 15
property real _editFieldWidth: ScreenTools.defaultFontPixelWidth * 30
......@@ -331,30 +332,41 @@ QGCView {
}
}
//-----------------------------------------------------------------
//-- AutoLoad
//-- Mission AutoLoad
Row {
spacing: ScreenTools.defaultFontPixelWidth
QGCCheckBox {
id: autoLoadCheckbox
anchors.verticalCenter: parent.verticalCenter
text: qsTr("AutoLoad mission directory:")
checked: QGroundControl.missionAutoLoadDir != ""
checked: _autoLoadDir.valueString
onClicked: {
autoLoadDir.enabled = checked
if (!checked) {
QGroundControl.missionAutoLoadDir = ""
autoLoadDir.text = ""
if (checked) {
_autoLoadDir.rawValue = QGroundControl.urlToLocalFile(autoloadDirPicker.shortcuts.home)
} else {
_autoLoadDir.rawValue = ""
}
}
}
QGCTextField {
id: autoLoadDir
FactTextField {
id: autoLoadDirField
width: _editFieldWidth
enabled: autoLoadCheckbox.checked
anchors.verticalCenter: parent.verticalCenter
text: QGroundControl.missionAutoLoadDir
onEditingFinished: QGroundControl.missionAutoLoadDir = text
fact: _autoLoadDir
}
QGCButton {
text: qsTr("Browse")
onClicked: autoloadDirPicker.visible = true
FileDialog {
id: autoloadDirPicker
title: qsTr("Choose the location of mission file.")
folder: shortcuts.home
selectFolder: true
onAccepted: _autoLoadDir.rawValue = QGroundControl.urlToLocalFile(autoloadDirPicker.fileUrl)
}
}
}
//-----------------------------------------------------------------
......@@ -561,7 +573,7 @@ QGCView {
readOnly: true
text: QGroundControl.videoManager.videoSavePath
}
Button {
QGCButton {
text: "Browse"
onClicked: fileDialog.visible = true
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment