From 6f2a99531a0d41c40a6cb7fed8b1ae1761bd6447 Mon Sep 17 00:00:00 2001 From: Gus Grubba Date: Mon, 1 Oct 2018 09:18:34 -0400 Subject: [PATCH] CP - Add setting to toggle splitting concave polygon on/off --- src/PlanView/SurveyItemEditor.qml | 8 ++++++++ src/Settings/App.SettingsGroup.json | 7 +++++++ src/Settings/AppSettings.cc | 11 +++++++++++ src/Settings/AppSettings.h | 8 ++++++-- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/PlanView/SurveyItemEditor.qml b/src/PlanView/SurveyItemEditor.qml index 0b22b1292..d0072b0cf 100644 --- a/src/PlanView/SurveyItemEditor.qml +++ b/src/PlanView/SurveyItemEditor.qml @@ -9,6 +9,7 @@ import QGroundControl 1.0 import QGroundControl.ScreenTools 1.0 import QGroundControl.Vehicle 1.0 import QGroundControl.Controls 1.0 +import QGroundControl.FactSystem 1.0 import QGroundControl.FactControls 1.0 import QGroundControl.Palette 1.0 import QGroundControl.FlightMap 1.0 @@ -119,6 +120,13 @@ Rectangle { onClicked: missionItem.rotateEntryPoint(); } + FactCheckBox { + text: qsTr("Split concave polygons") + fact: _splitConcave + visible: _splitConcave.visible + property Fact _splitConcave: QGroundControl.settingsManager.appSettings.splitConcavePolygons + } + FactCheckBox { text: qsTr("Hover and capture image") fact: missionItem.hoverAndCapture diff --git a/src/Settings/App.SettingsGroup.json b/src/Settings/App.SettingsGroup.json index d8fc6973f..f083d93b3 100644 --- a/src/Settings/App.SettingsGroup.json +++ b/src/Settings/App.SettingsGroup.json @@ -199,5 +199,12 @@ "enumStrings": "Never,Always,When in Follow Me Flight Mode", "enumValues": "0,1,2", "defaultValue": 0 +}, +{ + "name": "SplitConcavePolygons", + "shortDescription": "Split mission concave polygons", + "longDescription": "Split mission concave polygons into separate regular, convex polygons", + "type": "bool", + "defaultValue": false } ] diff --git a/src/Settings/AppSettings.cc b/src/Settings/AppSettings.cc index b9f341c7d..af485f563 100644 --- a/src/Settings/AppSettings.cc +++ b/src/Settings/AppSettings.cc @@ -41,6 +41,7 @@ const char* AppSettings::esriTokenName = "EsriTok const char* AppSettings::defaultFirmwareTypeName = "DefaultFirmwareType"; const char* AppSettings::gstDebugName = "GstreamerDebugLevel"; const char* AppSettings::followTargetName = "FollowTarget"; +const char* AppSettings::splitConcavePolygonsName = "SplitConcavePolygons"; const char* AppSettings::parameterFileExtension = "params"; const char* AppSettings::planFileExtension = "plan"; @@ -84,6 +85,7 @@ AppSettings::AppSettings(QObject* parent) , _defaultFirmwareTypeFact (NULL) , _gstDebugFact (NULL) , _followTargetFact (NULL) + , _splitConcavePolygonsFact (NULL) { QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "AppSettings", "Reference only"); @@ -428,3 +430,12 @@ Fact* AppSettings::followTarget(void) return _followTargetFact; } +Fact* AppSettings::splitConcavePolygons(void) +{ + if (!_splitConcavePolygonsFact) { + _splitConcavePolygonsFact = _createSettingsFact(splitConcavePolygonsName); + } + + return _splitConcavePolygonsFact; +} + diff --git a/src/Settings/AppSettings.h b/src/Settings/AppSettings.h index 327ce3095..b12bdf5ba 100644 --- a/src/Settings/AppSettings.h +++ b/src/Settings/AppSettings.h @@ -43,6 +43,7 @@ public: Q_PROPERTY(Fact* defaultFirmwareType READ defaultFirmwareType CONSTANT) Q_PROPERTY(Fact* gstDebug READ gstDebug CONSTANT) Q_PROPERTY(Fact* followTarget READ followTarget CONSTANT) + Q_PROPERTY(Fact* splitConcavePolygons READ splitConcavePolygons CONSTANT) Q_PROPERTY(QString missionSavePath READ missionSavePath NOTIFY savePathsChanged) Q_PROPERTY(QString parameterSavePath READ parameterSavePath NOTIFY savePathsChanged) @@ -82,13 +83,14 @@ public: Fact* defaultFirmwareType (void); Fact* gstDebug (void); Fact* followTarget (void); + Fact* splitConcavePolygons (void); QString missionSavePath (void); QString parameterSavePath (void); QString telemetrySavePath (void); QString logSavePath (void); - QString videoSavePath (void); - QString crashSavePath (void); + QString videoSavePath (void); + QString crashSavePath (void); static MAV_AUTOPILOT offlineEditingFirmwareTypeFromFirmwareType(MAV_AUTOPILOT firmwareType); static MAV_TYPE offlineEditingVehicleTypeFromVehicleType(MAV_TYPE vehicleType); @@ -119,6 +121,7 @@ public: static const char* defaultFirmwareTypeName; static const char* gstDebugName; static const char* followTargetName; + static const char* splitConcavePolygonsName; // Application wide file extensions static const char* parameterFileExtension; @@ -170,6 +173,7 @@ private: SettingsFact* _defaultFirmwareTypeFact; SettingsFact* _gstDebugFact; SettingsFact* _followTargetFact; + SettingsFact* _splitConcavePolygonsFact; }; #endif -- 2.22.0