Commit 90ec26a5 authored by Don Gagne's avatar Don Gagne

parent 673b9be7
...@@ -65,9 +65,8 @@ ...@@ -65,9 +65,8 @@
<file alias="QGroundControl/Controls/AnalyzePage.qml">src/AnalyzeView/AnalyzePage.qml</file> <file alias="QGroundControl/Controls/AnalyzePage.qml">src/AnalyzeView/AnalyzePage.qml</file>
<file alias="QGroundControl/Controls/AppMessages.qml">src/QmlControls/AppMessages.qml</file> <file alias="QGroundControl/Controls/AppMessages.qml">src/QmlControls/AppMessages.qml</file>
<file alias="QGroundControl/Controls/AxisMonitor.qml">src/QmlControls/AxisMonitor.qml</file> <file alias="QGroundControl/Controls/AxisMonitor.qml">src/QmlControls/AxisMonitor.qml</file>
<file alias="QGroundControl/Controls/CameraCalc.qml">src/PlanView/CameraCalc.qml</file> <file alias="QGroundControl/Controls/CameraCalcCamera.qml">src/PlanView/CameraCalcCamera.qml</file>
<file alias="QGroundControl/Controls/CameraCalcCamera.qml">src/PlanView/CameraCalcCamera.qml</file> <file alias="QGroundControl/Controls/CameraCalcGrid.qml">src/PlanView/CameraCalcGrid.qml</file>
<file alias="QGroundControl/Controls/CameraCalcGrid.qml">src/PlanView/CameraCalcGrid.qml</file>
<file alias="QGroundControl/Controls/CameraSection.qml">src/PlanView/CameraSection.qml</file> <file alias="QGroundControl/Controls/CameraSection.qml">src/PlanView/CameraSection.qml</file>
<file alias="QGroundControl/Controls/ClickableColor.qml">src/QmlControls/ClickableColor.qml</file> <file alias="QGroundControl/Controls/ClickableColor.qml">src/QmlControls/ClickableColor.qml</file>
<file alias="QGroundControl/Controls/CorridorScanMapVisual.qml">src/PlanView/CorridorScanMapVisual.qml</file> <file alias="QGroundControl/Controls/CorridorScanMapVisual.qml">src/PlanView/CorridorScanMapVisual.qml</file>
......
...@@ -201,9 +201,8 @@ void CameraCalc::save(QJsonObject& json) const ...@@ -201,9 +201,8 @@ void CameraCalc::save(QJsonObject& json) const
} }
} }
bool CameraCalc::load(const QJsonObject& json, bool forPresets, bool cameraSpecInPreset, QString& errorString) bool CameraCalc::load(const QJsonObject& json, QString& errorString)
{ {
qDebug() << "CameraCalc::load" << forPresets << cameraSpecInPreset;
QJsonObject v1Json = json; QJsonObject v1Json = json;
if (!json.contains(JsonHelper::jsonVersionKey)) { if (!json.contains(JsonHelper::jsonVersionKey)) {
...@@ -238,7 +237,7 @@ bool CameraCalc::load(const QJsonObject& json, bool forPresets, bool cameraSpecI ...@@ -238,7 +237,7 @@ bool CameraCalc::load(const QJsonObject& json, bool forPresets, bool cameraSpecI
return false; return false;
} }
_disableRecalc = !forPresets; _disableRecalc = true;
_distanceToSurfaceRelative = v1Json[distanceToSurfaceRelativeName].toBool(); _distanceToSurfaceRelative = v1Json[distanceToSurfaceRelativeName].toBool();
...@@ -259,36 +258,16 @@ bool CameraCalc::load(const QJsonObject& json, bool forPresets, bool cameraSpecI ...@@ -259,36 +258,16 @@ bool CameraCalc::load(const QJsonObject& json, bool forPresets, bool cameraSpecI
_sideOverlapFact.setRawValue (v1Json[sideOverlapName].toDouble()); _sideOverlapFact.setRawValue (v1Json[sideOverlapName].toDouble());
} }
if (forPresets) { _cameraNameFact.setRawValue (v1Json[cameraNameName].toString());
if (isManualCamera()) { _adjustedFootprintSideFact.setRawValue (v1Json[adjustedFootprintSideName].toDouble());
_distanceToSurfaceFact.setRawValue(v1Json[distanceToSurfaceName].toDouble()); _adjustedFootprintFrontalFact.setRawValue (v1Json[adjustedFootprintFrontalName].toDouble());
} else { _distanceToSurfaceFact.setRawValue (v1Json[distanceToSurfaceName].toDouble());
if (_valueSetIsDistanceFact.rawValue().toBool()) { if (!isManualCamera()) {
_distanceToSurfaceFact.setRawValue(v1Json[distanceToSurfaceName].toDouble()); _imageDensityFact.setRawValue(v1Json[imageDensityName].toDouble());
} else {
_imageDensityFact.setRawValue(v1Json[imageDensityName].toDouble());
}
if (cameraSpecInPreset) { if (!CameraSpec::load(v1Json, errorString)) {
_cameraNameFact.setRawValue(v1Json[cameraNameName].toString()); _disableRecalc = false;
if (!CameraSpec::load(v1Json, errorString)) { return false;
_disableRecalc = false;
return false;
}
}
}
} else {
_cameraNameFact.setRawValue (v1Json[cameraNameName].toString());
_adjustedFootprintSideFact.setRawValue (v1Json[adjustedFootprintSideName].toDouble());
_adjustedFootprintFrontalFact.setRawValue (v1Json[adjustedFootprintFrontalName].toDouble());
_distanceToSurfaceFact.setRawValue (v1Json[distanceToSurfaceName].toDouble());
if (!isManualCamera()) {
_imageDensityFact.setRawValue(v1Json[imageDensityName].toDouble());
if (!CameraSpec::load(v1Json, errorString)) {
_disableRecalc = false;
return false;
}
} }
} }
......
...@@ -70,7 +70,7 @@ public: ...@@ -70,7 +70,7 @@ public:
void setDistanceToSurfaceRelative (bool distanceToSurfaceRelative); void setDistanceToSurfaceRelative (bool distanceToSurfaceRelative);
void save(QJsonObject& json) const; void save(QJsonObject& json) const;
bool load(const QJsonObject& json, bool forPresets, bool cameraSpecInPreset, QString& errorString); bool load(const QJsonObject& json, QString& errorString);
static const char* cameraNameName; static const char* cameraNameName;
static const char* valueSetIsDistanceName; static const char* valueSetIsDistanceName;
......
...@@ -15,14 +15,9 @@ ...@@ -15,14 +15,9 @@
const char* ComplexMissionItem::jsonComplexItemTypeKey = "complexItemType"; const char* ComplexMissionItem::jsonComplexItemTypeKey = "complexItemType";
const char* ComplexMissionItem::_presetSettingsKey = "_presets"; const char* ComplexMissionItem::_presetSettingsKey = "_presets";
const char* ComplexMissionItem::_presetNameKey = "complexItemPresetName";
const char* ComplexMissionItem::_saveCameraInPresetKey = "complexItemCameraSavedInPreset";
const char* ComplexMissionItem::_builtInPresetKey = "complexItemBuiltInPreset";
ComplexMissionItem::ComplexMissionItem(Vehicle* vehicle, bool flyView, QObject* parent) ComplexMissionItem::ComplexMissionItem(Vehicle* vehicle, bool flyView, QObject* parent)
: VisualMissionItem (vehicle, flyView, parent) : VisualMissionItem (vehicle, flyView, parent)
, _cameraInPreset (true)
, _builtInPreset (false)
{ {
} }
...@@ -31,10 +26,6 @@ const ComplexMissionItem& ComplexMissionItem::operator=(const ComplexMissionItem ...@@ -31,10 +26,6 @@ const ComplexMissionItem& ComplexMissionItem::operator=(const ComplexMissionItem
{ {
VisualMissionItem::operator=(other); VisualMissionItem::operator=(other);
_currentPreset = other._currentPreset;
_cameraInPreset = other._cameraInPreset;
_builtInPreset = other._builtInPreset;
return *this; return *this;
} }
...@@ -61,39 +52,23 @@ void ComplexMissionItem::savePreset(const QString& name) ...@@ -61,39 +52,23 @@ void ComplexMissionItem::savePreset(const QString& name)
qgcApp()->showMessage(tr("This Pattern does not support Presets.")); qgcApp()->showMessage(tr("This Pattern does not support Presets."));
} }
void ComplexMissionItem::clearCurrentPreset(void) void ComplexMissionItem::deletePreset(const QString& name)
{
_currentPreset.clear();
emit currentPresetChanged(_currentPreset);
}
void ComplexMissionItem::deleteCurrentPreset(void)
{ {
qDebug() << "deleteCurrentPreset" << _currentPreset; QSettings settings;
if (!_currentPreset.isEmpty()) {
QSettings settings;
settings.beginGroup(presetsSettingsGroup());
settings.beginGroup(_presetSettingsKey);
settings.remove(_currentPreset);
emit presetNamesChanged();
clearCurrentPreset(); settings.beginGroup(presetsSettingsGroup());
} settings.beginGroup(_presetSettingsKey);
settings.remove(name);
emit presetNamesChanged();
} }
void ComplexMissionItem::_savePresetJson(const QString& name, QJsonObject& presetObject) void ComplexMissionItem::_savePresetJson(const QString& name, QJsonObject& presetObject)
{ {
presetObject[_presetNameKey] = name;
QSettings settings; QSettings settings;
settings.beginGroup(presetsSettingsGroup()); settings.beginGroup(presetsSettingsGroup());
settings.beginGroup(_presetSettingsKey); settings.beginGroup(_presetSettingsKey);
settings.setValue(name, QJsonDocument(presetObject).toBinaryData()); settings.setValue(name, QJsonDocument(presetObject).toBinaryData());
emit presetNamesChanged(); emit presetNamesChanged();
_currentPreset = name;
emit currentPresetChanged(name);
} }
QJsonObject ComplexMissionItem::_loadPresetJson(const QString& name) QJsonObject ComplexMissionItem::_loadPresetJson(const QString& name)
...@@ -103,42 +78,3 @@ QJsonObject ComplexMissionItem::_loadPresetJson(const QString& name) ...@@ -103,42 +78,3 @@ QJsonObject ComplexMissionItem::_loadPresetJson(const QString& name)
settings.beginGroup(_presetSettingsKey); settings.beginGroup(_presetSettingsKey);
return QJsonDocument::fromBinaryData(settings.value(name).toByteArray()).object(); return QJsonDocument::fromBinaryData(settings.value(name).toByteArray()).object();
} }
void ComplexMissionItem::_saveItem(QJsonObject& saveObject)
{
qDebug() << "_saveItem" << _cameraInPreset;
saveObject[_presetNameKey] = _currentPreset;
saveObject[_saveCameraInPresetKey] = _cameraInPreset;
saveObject[_builtInPresetKey] = _builtInPreset;
}
void ComplexMissionItem::_loadItem(const QJsonObject& saveObject)
{
_currentPreset = saveObject[_presetNameKey].toString();
_cameraInPreset = saveObject[_saveCameraInPresetKey].toBool(false);
_builtInPreset = saveObject[_builtInPresetKey].toBool(false);
if (!presetNames().contains(_currentPreset)) {
_currentPreset.clear();
}
emit cameraInPresetChanged (_cameraInPreset);
emit currentPresetChanged (_currentPreset);
emit builtInPresetChanged (_builtInPreset);
}
void ComplexMissionItem::setCameraInPreset(bool cameraInPreset)
{
if (cameraInPreset != _cameraInPreset) {
_cameraInPreset = cameraInPreset;
emit cameraInPresetChanged(_cameraInPreset);
}
}
void ComplexMissionItem::setBuiltInPreset(bool builtInPreset)
{
if (builtInPreset != _builtInPreset) {
_builtInPreset = builtInPreset;
emit builtInPresetChanged(_builtInPreset);
}
}
...@@ -27,9 +27,6 @@ public: ...@@ -27,9 +27,6 @@ public:
Q_PROPERTY(double complexDistance READ complexDistance NOTIFY complexDistanceChanged) Q_PROPERTY(double complexDistance READ complexDistance NOTIFY complexDistanceChanged)
Q_PROPERTY(bool presetsSupported READ presetsSupported CONSTANT) Q_PROPERTY(bool presetsSupported READ presetsSupported CONSTANT)
Q_PROPERTY(QStringList presetNames READ presetNames NOTIFY presetNamesChanged) Q_PROPERTY(QStringList presetNames READ presetNames NOTIFY presetNamesChanged)
Q_PROPERTY(QString currentPreset READ currentPreset NOTIFY currentPresetChanged)
Q_PROPERTY(bool cameraInPreset READ cameraInPreset WRITE setCameraInPreset NOTIFY cameraInPresetChanged)
Q_PROPERTY(bool builtInPreset READ builtInPreset WRITE setBuiltInPreset NOTIFY builtInPresetChanged)
/// @return The distance covered the complex mission item in meters. /// @return The distance covered the complex mission item in meters.
/// Signals complexDistanceChanged /// Signals complexDistanceChanged
...@@ -50,8 +47,8 @@ public: ...@@ -50,8 +47,8 @@ public:
/// @param name User visible name for preset. Will replace existing preset if already exists. /// @param name User visible name for preset. Will replace existing preset if already exists.
Q_INVOKABLE virtual void savePreset(const QString& name); Q_INVOKABLE virtual void savePreset(const QString& name);
Q_INVOKABLE void clearCurrentPreset(void); Q_INVOKABLE void deletePreset(const QString& name);
Q_INVOKABLE void deleteCurrentPreset(void);
/// Get the point of complex mission item furthest away from a coordinate /// Get the point of complex mission item furthest away from a coordinate
/// @param other QGeoCoordinate to which distance is calculated /// @param other QGeoCoordinate to which distance is calculated
...@@ -67,12 +64,7 @@ public: ...@@ -67,12 +64,7 @@ public:
/// Empty string signals no support for presets. /// Empty string signals no support for presets.
virtual QString presetsSettingsGroup(void) { return QString(); } virtual QString presetsSettingsGroup(void) { return QString(); }
bool presetsSupported (void) { return !presetsSettingsGroup().isEmpty(); } bool presetsSupported(void) { return !presetsSettingsGroup().isEmpty(); }
QString currentPreset (void) const { return _currentPreset; }
bool cameraInPreset (void) const { return _cameraInPreset; }
bool builtInPreset (void) const { return _builtInPreset; }
void setCameraInPreset (bool cameraInPreset);
void setBuiltInPreset (bool builtInPreset);
/// This mission item attribute specifies the type of the complex item. /// This mission item attribute specifies the type of the complex item.
static const char* jsonComplexItemTypeKey; static const char* jsonComplexItemTypeKey;
...@@ -82,28 +74,15 @@ signals: ...@@ -82,28 +74,15 @@ signals:
void boundingCubeChanged (void); void boundingCubeChanged (void);
void greatestDistanceToChanged (void); void greatestDistanceToChanged (void);
void presetNamesChanged (void); void presetNamesChanged (void);
void currentPresetChanged (QString currentPreset);
void cameraInPresetChanged (bool cameraInPreset);
void builtInPresetChanged (bool builtInPreset);
protected: protected:
void _saveItem (QJsonObject& saveObject);
void _loadItem (const QJsonObject& saveObject);
void _savePresetJson (const QString& name, QJsonObject& presetObject); void _savePresetJson (const QString& name, QJsonObject& presetObject);
QJsonObject _loadPresetJson (const QString& name); QJsonObject _loadPresetJson (const QString& name);
QMap<QString, FactMetaData*> _metaDataMap; QMap<QString, FactMetaData*> _metaDataMap;
QString _currentPreset;
SettingsFact _saveCameraInPresetFact;
bool _cameraInPreset;
bool _builtInPreset;
static const char* _presetSettingsKey; static const char* _presetSettingsKey;
static const char* _presetNameKey;
static const char* _saveCameraInPresetKey;
static const char* _builtInPresetKey;
}; };
#endif #endif
...@@ -213,7 +213,7 @@ bool StructureScanComplexItem::load(const QJsonObject& complexObject, int sequen ...@@ -213,7 +213,7 @@ bool StructureScanComplexItem::load(const QJsonObject& complexObject, int sequen
setSequenceNumber(sequenceNumber); setSequenceNumber(sequenceNumber);
// Load CameraCalc first since it will trigger camera name change which will trounce gimbal angles // Load CameraCalc first since it will trigger camera name change which will trounce gimbal angles
if (!_cameraCalc.load(complexObject[_jsonCameraCalcKey].toObject(), false /* forPresets */, false /* cameraSpecInPreset */, errorString)) { if (!_cameraCalc.load(complexObject[_jsonCameraCalcKey].toObject(), errorString)) {
return false; return false;
} }
......
...@@ -134,8 +134,6 @@ void TransectStyleComplexItem::setDirty(bool dirty) ...@@ -134,8 +134,6 @@ void TransectStyleComplexItem::setDirty(bool dirty)
void TransectStyleComplexItem::_save(QJsonObject& complexObject) void TransectStyleComplexItem::_save(QJsonObject& complexObject)
{ {
ComplexMissionItem::_saveItem(complexObject);
QJsonObject innerObject; QJsonObject innerObject;
innerObject[JsonHelper::jsonVersionKey] = 1; innerObject[JsonHelper::jsonVersionKey] = 1;
...@@ -189,8 +187,6 @@ void TransectStyleComplexItem::setSequenceNumber(int sequenceNumber) ...@@ -189,8 +187,6 @@ void TransectStyleComplexItem::setSequenceNumber(int sequenceNumber)
bool TransectStyleComplexItem::_load(const QJsonObject& complexObject, bool forPresets, QString& errorString) bool TransectStyleComplexItem::_load(const QJsonObject& complexObject, bool forPresets, QString& errorString)
{ {
ComplexMissionItem::_loadItem(complexObject);
QList<JsonHelper::KeyValidateInfo> keyInfoList = { QList<JsonHelper::KeyValidateInfo> keyInfoList = {
{ _jsonTransectStyleComplexItemKey, QJsonValue::Object, true }, { _jsonTransectStyleComplexItemKey, QJsonValue::Object, true },
}; };
...@@ -248,7 +244,7 @@ bool TransectStyleComplexItem::_load(const QJsonObject& complexObject, bool forP ...@@ -248,7 +244,7 @@ bool TransectStyleComplexItem::_load(const QJsonObject& complexObject, bool forP
} }
// Load CameraCalc data // Load CameraCalc data
if (!_cameraCalc.load(innerObject[_jsonCameraCalcKey].toObject(), forPresets, cameraInPreset(), errorString)) { if (!_cameraCalc.load(innerObject[_jsonCameraCalcKey].toObject(), errorString)) {
return false; return false;
} }
......
This diff is collapsed.
...@@ -14,16 +14,12 @@ Column { ...@@ -14,16 +14,12 @@ Column {
anchors.right: parent.right anchors.right: parent.right
spacing: _margin spacing: _margin
visible: !usingPreset || !cameraSpecifiedInPreset
property var cameraCalc property var cameraCalc
property bool vehicleFlightIsFrontal: true property bool vehicleFlightIsFrontal: true
property string distanceToSurfaceLabel property string distanceToSurfaceLabel
property int distanceToSurfaceAltitudeMode: QGroundControl.AltitudeModeNone property int distanceToSurfaceAltitudeMode: QGroundControl.AltitudeModeNone
property string frontalDistanceLabel property string frontalDistanceLabel
property string sideDistanceLabel property string sideDistanceLabel
property bool usingPreset: false
property bool cameraSpecifiedInPreset: false
property real _margin: ScreenTools.defaultFontPixelWidth / 2 property real _margin: ScreenTools.defaultFontPixelWidth / 2
property string _cameraName: cameraCalc.cameraName.value property string _cameraName: cameraCalc.cameraName.value
......
...@@ -14,16 +14,12 @@ Column { ...@@ -14,16 +14,12 @@ Column {
anchors.right: parent.right anchors.right: parent.right
spacing: _margin spacing: _margin
visible: !usingPreset || !cameraSpecifiedInPreset
property var cameraCalc property var cameraCalc
property bool vehicleFlightIsFrontal: true property bool vehicleFlightIsFrontal: true
property string distanceToSurfaceLabel property string distanceToSurfaceLabel
property int distanceToSurfaceAltitudeMode: QGroundControl.AltitudeModeNone property int distanceToSurfaceAltitudeMode: QGroundControl.AltitudeModeNone
property string frontalDistanceLabel property string frontalDistanceLabel
property string sideDistanceLabel property string sideDistanceLabel
property bool usingPreset: false
property bool cameraSpecifiedInPreset: false
property real _margin: ScreenTools.defaultFontPixelWidth / 2 property real _margin: ScreenTools.defaultFontPixelWidth / 2
property string _cameraName: cameraCalc.cameraName.value property string _cameraName: cameraCalc.cameraName.value
...@@ -49,7 +45,6 @@ Column { ...@@ -49,7 +45,6 @@ Column {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
spacing: _margin spacing: _margin
visible: !usingPreset
Item { Layout.fillWidth: true } Item { Layout.fillWidth: true }
QGCLabel { QGCLabel {
Layout.preferredWidth: _root._fieldWidth Layout.preferredWidth: _root._fieldWidth
...@@ -65,7 +60,6 @@ Column { ...@@ -65,7 +60,6 @@ Column {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
spacing: _margin spacing: _margin
visible: !usingPreset
QGCLabel { text: qsTr("Overlap"); Layout.fillWidth: true } QGCLabel { text: qsTr("Overlap"); Layout.fillWidth: true }
FactTextField { FactTextField {
Layout.preferredWidth: _root._fieldWidth Layout.preferredWidth: _root._fieldWidth
...@@ -82,7 +76,6 @@ Column { ...@@ -82,7 +76,6 @@ Column {
text: qsTr("Select one:") text: qsTr("Select one:")
Layout.preferredWidth: parent.width Layout.preferredWidth: parent.width
Layout.columnSpan: 2 Layout.columnSpan: 2
visible: !usingPreset
} }
GridLayout { GridLayout {
...@@ -91,7 +84,6 @@ Column { ...@@ -91,7 +84,6 @@ Column {
columnSpacing: _margin columnSpacing: _margin
rowSpacing: _margin rowSpacing: _margin
columns: 2 columns: 2
visible: !usingPreset
QGCRadioButton { QGCRadioButton {
id: fixedDistanceRadio id: fixedDistanceRadio
......
...@@ -28,8 +28,6 @@ Rectangle { ...@@ -28,8 +28,6 @@ Rectangle {
property real _fieldWidth: ScreenTools.defaultFontPixelWidth * 10.5 property real _fieldWidth: ScreenTools.defaultFontPixelWidth * 10.5
property var _vehicle: QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle : QGroundControl.multiVehicleManager.offlineEditingVehicle property var _vehicle: QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle : QGroundControl.multiVehicleManager.offlineEditingVehicle
property real _cameraMinTriggerInterval: missionItem.cameraCalc.minTriggerInterval.rawValue property real _cameraMinTriggerInterval: missionItem.cameraCalc.minTriggerInterval.rawValue
property string _currentPreset: missionItem.currentPreset
property bool _usingPreset: _currentPreset !== ""
function polygonCaptureStarted() { function polygonCaptureStarted() {
missionItem.clearPolygon() missionItem.clearPolygon()
...@@ -94,8 +92,6 @@ Rectangle { ...@@ -94,8 +92,6 @@ Rectangle {
missionItem.cameraCalc.distanceToSurfaceRelative missionItem.cameraCalc.distanceToSurfaceRelative
frontalDistanceLabel: qsTr("Trigger Dist") frontalDistanceLabel: qsTr("Trigger Dist")
sideDistanceLabel: qsTr("Spacing") sideDistanceLabel: qsTr("Spacing")
usingPreset: _usingPreset
cameraSpecifiedInPreset: missionItem.cameraInPreset
} }
SectionHeader { SectionHeader {
...@@ -134,12 +130,10 @@ Rectangle { ...@@ -134,12 +130,10 @@ Rectangle {
QGCLabel { QGCLabel {
text: qsTr("Turnaround dist") text: qsTr("Turnaround dist")
visible: !_usingPreset
} }
FactTextField { FactTextField {
fact: missionItem.turnAroundDistance fact: missionItem.turnAroundDistance
Layout.fillWidth: true Layout.fillWidth: true
visible: !_usingPreset
} }
} }
...@@ -152,7 +146,7 @@ Rectangle { ...@@ -152,7 +146,7 @@ Rectangle {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
spacing: _margin spacing: _margin
visible: transectsHeader.checked && !_usingPreset visible: transectsHeader.checked
/* /*
Temporarily removed due to bug https://github.com/mavlink/qgroundcontrol/issues/7005 Temporarily removed due to bug https://github.com/mavlink/qgroundcontrol/issues/7005
...@@ -213,14 +207,13 @@ Rectangle { ...@@ -213,14 +207,13 @@ Rectangle {
id: terrainHeader id: terrainHeader
text: qsTr("Terrain") text: qsTr("Terrain")
checked: missionItem.followTerrain checked: missionItem.followTerrain
visible: !_usingPreset
} }
ColumnLayout { ColumnLayout {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
spacing: _margin spacing: _margin
visible: terrainHeader.checked && !_usingPreset visible: terrainHeader.checked
QGCCheckBox { QGCCheckBox {
...@@ -280,102 +273,53 @@ Rectangle { ...@@ -280,102 +273,53 @@ Rectangle {
missionItem.cameraCalc.distanceToSurfaceRelative missionItem.cameraCalc.distanceToSurfaceRelative
frontalDistanceLabel: qsTr("Trigger Dist") frontalDistanceLabel: qsTr("Trigger Dist")
sideDistanceLabel: qsTr("Spacing") sideDistanceLabel: qsTr("Spacing")
usingPreset: _usingPreset
cameraSpecifiedInPreset: missionItem.cameraInPreset
} }
} // Camera Column } // Camera Column
Column { ColumnLayout {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
spacing: _margin spacing: _margin
visible: tabBar.currentIndex == 2 visible: tabBar.currentIndex == 2
QGCLabel {
Layout.fillWidth: true
text: qsTr("Presets")
wrapMode: Text.WordWrap
}
QGCComboBox { QGCComboBox {
id: presetCombo id: presetCombo
anchors.left: parent.left Layout.fillWidth: true
anchors.right: parent.right model: missionItem.presetNames
model: _presetList }
property var _presetList: []
readonly property int _indexCustom: 0
readonly property int _indexCreate: 1
readonly property int _indexDelete: 2
readonly property int _indexLabel: 3
readonly property int _indexFirstPreset: 4
Component.onCompleted: _updateList()
onActivated: {
if (index == _indexCustom) {
missionItem.clearCurrentPreset()
} else if (index == _indexCreate) {
mainWindow.showComponentDialog(savePresetDialog, qsTr("Save Preset"), mainWindow.showDialogDefaultWidth, StandardButton.Save | StandardButton.Cancel)
} else if (index == _indexDelete) {
if (missionItem.builtInPreset) {
mainWindow.showMessage(qsTr("Delete Preset"), qsTr("This preset cannot be deleted."))
} else {
missionItem.deleteCurrentPreset()
}
} else if (index >= _indexFirstPreset) {
missionItem.loadPreset(textAt(index))
} else {
_selectCurrentPreset()
}
}
Connections {
target: missionItem
onPresetNamesChanged: presetCombo._updateList()
onCurrentPresetChanged: presetCombo._selectCurrentPreset()
}
// There is some major strangeness going on with programatically changing the index of a combo box in this scenario.
// If you just set currentIndex directly it will just change back 1o -1 magically. Has something to do with resetting
// model on the fly I think. But not sure. To work around I delay the currentIndex changes to let things unwind.
Timer {
id: delayedIndexChangeTimer
interval: 10
property int newIndex
onTriggered: presetCombo.currentIndex = newIndex RowLayout {
Layout.fillWidth: true
QGCButton {
Layout.fillWidth: true
text: qsTr("Apply Preset")
enabled: missionItem.presetNames.length != 0
onClicked: missionItem.loadPreset(presetCombo.textAt(presetCombo.currentIndex))
} }
function delayedIndexChange(index) { QGCButton {
delayedIndexChangeTimer.newIndex = index Layout.fillWidth: true
delayedIndexChangeTimer.start() text: qsTr("Delete Preset")
enabled: missionItem.presetNames.length != 0
onClicked: missionItem.deletePreset(presetCombo.textAt(presetCombo.currentIndex))
} }
function _updateList() { }
_presetList = []
_presetList.push(qsTr("Custom (specify all settings)"))
_presetList.push(qsTr("Save Settings As Preset"))
_presetList.push(qsTr("Delete Current Preset"))
if (missionItem.presetNames.length !== 0) {
_presetList.push(qsTr("Presets:"))
}
for (var i=0; i<missionItem.presetNames.length; i++) { Item { height: ScreenTools.defaultFontPixelHeight; width: 1 }
_presetList.push(missionItem.presetNames[i])
}
model = _presetList
_selectCurrentPreset()
}
function _selectCurrentPreset() { QGCButton {
if (_usingPreset) { Layout.alignment: Qt.AlignCenter
var newIndex = find(_currentPreset) Layout.fillWidth: true
if (newIndex !== -1) { text: qsTr("Save Settings As New Preset")
delayedIndexChange(newIndex) onClicked: mainWindow.showComponentDialog(savePresetDialog, qsTr("Save Preset"), mainWindow.showDialogDefaultWidth, StandardButton.Save | StandardButton.Cancel)
return
}
}
delayedIndexChange(presetCombo._indexCustom)
}
} }
} // Camera Column } // Camera Column
...@@ -408,13 +352,6 @@ Rectangle { ...@@ -408,13 +352,6 @@ Rectangle {
QGCTextField { QGCTextField {
id: presetNameField id: presetNameField
Layout.fillWidth: true Layout.fillWidth: true
text: _currentPreset
}
QGCCheckBox {
text: qsTr("Save Camera In Preset")
checked: missionItem.cameraInPreset
onClicked: missionItem.cameraInPreset = checked
} }
} }
} }
......
...@@ -3,7 +3,6 @@ Module QGroundControl.Controls ...@@ -3,7 +3,6 @@ Module QGroundControl.Controls
AnalyzePage 1.0 AnalyzePage.qml AnalyzePage 1.0 AnalyzePage.qml
AppMessages 1.0 AppMessages.qml AppMessages 1.0 AppMessages.qml
AxisMonitor 1.0 AxisMonitor.qml AxisMonitor 1.0 AxisMonitor.qml
CameraCalc 1.0 CameraCalc.qml
CameraCalcCamera 1.0 CameraCalcCamera.qml CameraCalcCamera 1.0 CameraCalcCamera.qml
CameraCalcGrid 1.0 CameraCalcGrid.qml CameraCalcGrid 1.0 CameraCalcGrid.qml
APMSubMotorDisplay 1.0 APMSubMotorDisplay.qml APMSubMotorDisplay 1.0 APMSubMotorDisplay.qml
......
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