diff --git a/src/FactSystem/SettingsFact.cc b/src/FactSystem/SettingsFact.cc index 1d8f4f58f7db4a1fcb44dd8e025d44b6acecfa23..a4c861784352e70994594a4a581de88dc54f390b 100644 --- a/src/FactSystem/SettingsFact.cc +++ b/src/FactSystem/SettingsFact.cc @@ -39,7 +39,7 @@ SettingsFact::SettingsFact(QString settingsGroup, FactMetaData* metaData, QObjec if (_visible) { QVariant typedValue; QString errorString; - metaData->convertAndValidateRaw(settings.value(_name, rawDefaultValue), true /* conertOnly */, typedValue, errorString); + metaData->convertAndValidateRaw(settings.value(_name, rawDefaultValue), true /* convertOnly */, typedValue, errorString); _rawValue = typedValue; } else { // Setting is not visible, force to default value always diff --git a/src/PlanView/CircularSurveyItemEditor.qml b/src/PlanView/CircularSurveyItemEditor.qml index 6497b770d5207436d4ef90a1a56d93f3cf0dacd9..56308d560315b0920ba37024b88b99ac101fd960 100644 --- a/src/PlanView/CircularSurveyItemEditor.qml +++ b/src/PlanView/CircularSurveyItemEditor.qml @@ -104,22 +104,22 @@ Rectangle { FactTextField { fact: missionItem.deltaAlpha Layout.fillWidth: true - onUpdated: angleSlider.value = missionItem.deltaAlpha.value + //onUpdated: angleSlider.value = missionItem.deltaAlpha.value } - QGCSlider { + /*QGCSlider { id: angleSlider - minimumValue: 0.3 - maximumValue: 5 - stepSize: 0.1 - tickmarksEnabled: false + minimumValue: 0.4 + maximumValue: 20 + stepSize: 1 + tickmarksEnabled: true Layout.fillWidth: true Layout.columnSpan: 2 Layout.preferredHeight: ScreenTools.defaultFontPixelHeight * 1.5 - onValueChanged: missionItem.deltaAlpha.value = value Component.onCompleted: value = missionItem.deltaAlpha.value - updateValueWhileDragging: true - } + onValueChanged: missionItem.deltaAlpha.value = value + updateValueWhileDragging: false + }*/ } ColumnLayout { diff --git a/src/Wima/CircularSurvey.SettingsGroup.json b/src/Wima/CircularSurvey.SettingsGroup.json index 77d0e5039a552708cdd85b858a05d6176b123d39..ef7f5489f474efac5ae2930cd32f2f3d9393b2f9 100644 --- a/src/Wima/CircularSurvey.SettingsGroup.json +++ b/src/Wima/CircularSurvey.SettingsGroup.json @@ -14,6 +14,7 @@ "type": "double", "units": "Deg", "min": 0.3, + "max": 90, "decimalPlaces": 1, "defaultValue": 5 } diff --git a/src/Wima/CircularSurveyComplexItem.cc b/src/Wima/CircularSurveyComplexItem.cc index f1856e8fa6be0904c371373a576d859518857b35..ad90e77760e5b76988b14a4f45ace3b8ed999f36 100644 --- a/src/Wima/CircularSurveyComplexItem.cc +++ b/src/Wima/CircularSurveyComplexItem.cc @@ -27,11 +27,6 @@ CircularSurveyComplexItem::CircularSurveyComplexItem(Vehicle *vehicle, bool flyV connect(&_deltaAlpha, &Fact::valueChanged, this, &CircularSurveyComplexItem::_setDirty); connect(this, &CircularSurveyComplexItem::refPointChanged, this, &CircularSurveyComplexItem::_setDirty); - _deltaR.setRawValue(_deltaR.rawDefaultValue()); - _deltaAlpha.setRawValue(_deltaAlpha.rawDefaultValue()); - qDebug() << _deltaAlpha.rawDefaultValue().toDouble(); - qDebug() << _deltaAlpha.rawValue().toDouble(); - connect(&_updateTimer, &QTimer::timeout, this, &CircularSurveyComplexItem::_updateItem); _updateTimer.start(100); } @@ -337,6 +332,8 @@ void CircularSurveyComplexItem::_rebuildTransectsPhase1() using namespace PolygonCalculus; using namespace PlanimetryCalculus; + + if ( _surveyAreaPolygon.count() < 3) return; diff --git a/src/Wima/CircularSurveyComplexItem.h b/src/Wima/CircularSurveyComplexItem.h index 47ff384e817db9bc9dea40b5bc18c6402ba27a68..3fc137c576bf52bdfd4a30bada04c9d41beb11bd 100644 --- a/src/Wima/CircularSurveyComplexItem.h +++ b/src/Wima/CircularSurveyComplexItem.h @@ -7,6 +7,7 @@ #include "GeoUtilities.h" #include "QVector" #include "Circle.h" +#include "SettingsFact.h" class CircularSurveyComplexItem :public TransectStyleComplexItem { diff --git a/src/Wima/WimaMeasurementArea.cc b/src/Wima/WimaMeasurementArea.cc index 934bfab918ab8f002a8329fbe495a3734cf45bd8..798ec605cefe245de3a8449b5967b07f1ec4efe4 100644 --- a/src/Wima/WimaMeasurementArea.cc +++ b/src/Wima/WimaMeasurementArea.cc @@ -10,13 +10,23 @@ const char* WimaMeasurementArea::WimaMeasurementAreaName = "Measurement WimaMeasurementArea::WimaMeasurementArea(QObject *parent) - : WimaArea (parent) + : WimaArea (parent) + , _metaDataMap (FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/WimaMeasurementArea.SettingsGroup.json"), this /* QObject parent */)) + , _bottomLayerAltitude (SettingsFact(settingsGroup, _metaDataMap[bottomLayerAltitudeName], this /* QObject parent */)) + , _numberOfLayers (SettingsFact(settingsGroup, _metaDataMap[numberOfLayersName], this /* QObject parent */)) + , _layerDistance (SettingsFact(settingsGroup, _metaDataMap[layerDistanceName], this /* QObject parent */)) + , _borderPolygonOffset (SettingsFact(settingsGroup, _metaDataMap[borderPolygonOffsetName], this /* QObject parent */)) { init(); } WimaMeasurementArea::WimaMeasurementArea(const WimaMeasurementArea &other, QObject *parent) - : WimaArea(other, parent) + : WimaArea (other, parent) + , _metaDataMap (FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/WimaMeasurementArea.SettingsGroup.json"), this /* QObject parent */)) + , _bottomLayerAltitude (SettingsFact(settingsGroup, _metaDataMap[bottomLayerAltitudeName], this /* QObject parent */)) + , _numberOfLayers (SettingsFact(settingsGroup, _metaDataMap[numberOfLayersName], this /* QObject parent */)) + , _layerDistance (SettingsFact(settingsGroup, _metaDataMap[layerDistanceName], this /* QObject parent */)) + , _borderPolygonOffset (SettingsFact(settingsGroup, _metaDataMap[borderPolygonOffsetName], this /* QObject parent */)) { init(); } @@ -150,14 +160,6 @@ void WimaMeasurementArea::recalcBorderPolygon() void WimaMeasurementArea::init() { - - _metaDataMap = FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/WimaMeasurementArea.SettingsGroup.json"), this /* QObject parent */); - _bottomLayerAltitude = SettingsFact(settingsGroup, _metaDataMap[bottomLayerAltitudeName], this /* QObject parent */); - _numberOfLayers = SettingsFact(settingsGroup, _metaDataMap[numberOfLayersName], this /* QObject parent */); - _layerDistance = SettingsFact(settingsGroup, _metaDataMap[layerDistanceName], this /* QObject parent */); - _borderPolygonOffset = SettingsFact(settingsGroup, _metaDataMap[borderPolygonOffsetName], this /* QObject parent */); - _borderPolygon = new QGCMapPolygon(this); - this->setObjectName(WimaMeasurementAreaName); connect(this, &WimaMeasurementArea::pathChanged, this, &WimaMeasurementArea::recalcBorderPolygon); connect(&_borderPolygonOffset, &SettingsFact::rawValueChanged, this, &WimaMeasurementArea::recalcBorderPolygon); diff --git a/src/Wima/WimaPlaner.cc b/src/Wima/WimaPlaner.cc index 5589c7a692dd5023974723035d39e857b4013c39..3abe9f84c3aee8bc9c867958fc96001f53dbc800 100644 --- a/src/Wima/WimaPlaner.cc +++ b/src/Wima/WimaPlaner.cc @@ -220,16 +220,12 @@ bool WimaPlaner::updateMission() CircularSurveyComplexItem* OldSurveyPt = nullptr; QGeoCoordinate oldSurveyRef; - double oldSurveyDeltaR = 0; - double oldSurveyDeltaAlpha = 0; bool oldSurveyExists = false; for (int i = 0; i < _missionController->visualItems()->count(); i++) { OldSurveyPt = qobject_cast(missionItems->get(i)); if ( OldSurveyPt != nullptr) { oldSurveyRef = OldSurveyPt->refPoint(); - oldSurveyDeltaR = OldSurveyPt->deltaR()->rawValue().toDouble(); - oldSurveyDeltaAlpha = OldSurveyPt->deltaAlpha()->rawValue().toDouble(); oldSurveyExists = true; break; } @@ -276,8 +272,6 @@ bool WimaPlaner::updateMission() } else { if ( oldSurveyExists ) { survey->setRefPoint(oldSurveyRef); - survey->deltaR()->setRawValue(oldSurveyDeltaR); - survey->deltaAlpha()->setRawValue(oldSurveyDeltaAlpha); } else { survey->setRefPoint(_measurementArea.center()); } diff --git a/src/WimaView/WimaMeasurementAreaEditor.qml b/src/WimaView/WimaMeasurementAreaEditor.qml index f40166f7824fcce0e1a6d39748d1819adfda5123..82c704d8f668e4aa848b711866ac3a4f0a870cc0 100644 --- a/src/WimaView/WimaMeasurementAreaEditor.qml +++ b/src/WimaView/WimaMeasurementAreaEditor.qml @@ -33,26 +33,10 @@ Rectangle { property var polygon: areaItem property bool initNecesarry: true - /*onPolylineInteractiveChanged: { - polyline.interactive = polylineInteractive; - }*/ - onPolygonInteractiveChanged: { polygon.interactive = polygonInteractive; } - /*function editPolyline(){ - if (polylineInteractive){ - //polyline.interactive = false; - polylineInteractive = false; - //polygonInteractive = true; - }else{ - //polyline.interactive = true; - polylineInteractive = true; - //polygonInteractive = false; - } - }*/ - @@ -73,7 +57,7 @@ Rectangle { Column { anchors.left: parent.left - anchors.right: parent.rightsetI + anchors.right: parent.right spacing: _margin visible: settingsHeader.checked @@ -87,29 +71,29 @@ Rectangle { QGCLabel { text: qsTr("Altitude") } FactTextField { - fact: areaItem.bottomLayerAltitude - Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter + fact: areaItem.bottomLayerAltitude + Layout.fillWidth: true } QGCLabel { text: qsTr("Layers") } FactTextField { fact: areaItem.numberOfLayers - Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter + Layout.fillWidth: true } QGCLabel { text: qsTr("Layer Dist.") } FactTextField { fact: areaItem.layerDistance - Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter + Layout.fillWidth: true } QGCLabel { text: qsTr("Offset") } FactTextField { fact: areaItem.borderPolygonOffset - Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter + Layout.fillWidth: true } diff --git a/src/WimaView/WimaView.qml b/src/WimaView/WimaView.qml index c98e961ca47753d9d3659d8034d668b6a647ea6d..5c9e2023ba27b8047634314c8a74c46633277f99 100644 --- a/src/WimaView/WimaView.qml +++ b/src/WimaView/WimaView.qml @@ -1018,7 +1018,7 @@ QGCView { currentIndex: _missionController.currentPlanViewIndex highlightMoveDuration: 250 visible: _editingLayer == _layerMission && !planControlColapsed - //-- List Elements_missionController->setCurrentPlanViewIndex(sequenceNumber, true); + //-- List Elements delegate: MissionItemEditor { map: editorMap masterController: _planMasterController @@ -1063,6 +1063,18 @@ QGCView { } } + Component { + id: syncLoadFromVehicleOverwrite + QGCViewMessage { + id: syncLoadFromVehicleCheck + message: qsTr("You have unsaved/unsent changes. Loading from the Vehicle will lose these changes. Are you sure you want to load from the Vehicle?") + function accept() { + hideDialog() + masterController.loadFromVehicle() + } + } + } + Component { id: syncLoadFromFileOverwrite QGCViewMessage {