From a5f752bd9973006f4a38b82a2c4f71a39701a33e Mon Sep 17 00:00:00 2001 From: uclaros Date: Wed, 24 Jun 2026 17:37:10 +0300 Subject: [PATCH 1/2] Allow adding geometry parts in Record mode --- app/qml/map/MMMapController.qml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/qml/map/MMMapController.qml b/app/qml/map/MMMapController.qml index be9f06451..f304eb9de 100644 --- a/app/qml/map/MMMapController.qml +++ b/app/qml/map/MMMapController.qml @@ -1285,7 +1285,7 @@ Item { // visibility of buttons in "more" menu property bool splitGeometryButtonVisible: !internal.isPointLayer && !root.isStreaming && root.state === "edit" - property bool addPartButtonVisible: internal.isMultiPartLayer && !root.isStreaming && root.state === "edit" + property bool addPartButtonVisible: internal.isMultiPartLayer && !root.isStreaming && isInRecordState property bool redrawGeometryButtonVisible: root.state === "edit" property bool streamingModeButtonVisible: !internal.isPointLayer || internal.isMultiPartLayer @@ -1311,6 +1311,7 @@ Item { } function record() { + internal.featurePairToEdit = null state = "record" } @@ -1352,10 +1353,13 @@ Item { } function addPart( featurepair) { - __activeProject.setActiveLayer( featurepair.layer ) + if ( featurepair ) + { + __activeProject.setActiveLayer( featurepair.layer ) + internal.featurePairToEdit = featurepair + } root.showInfoTextMessage( qsTr( "Add new part to the geometry" ) ) - internal.featurePairToEdit = featurepair // You should be already in state == "edit" if ( recordingToolsLoader.active ) { From 3fd4b9fc796b1130a490c42060b599fb4fa1b716 Mon Sep 17 00:00:00 2001 From: uclaros Date: Thu, 25 Jun 2026 14:36:24 +0300 Subject: [PATCH 2/2] Unset internal.featurePairToEdit when done editing/recording or splitting --- app/qml/map/MMMapController.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/qml/map/MMMapController.qml b/app/qml/map/MMMapController.qml index f304eb9de..9aa6175ef 100644 --- a/app/qml/map/MMMapController.qml +++ b/app/qml/map/MMMapController.qml @@ -1152,6 +1152,7 @@ Item { activeFeature: root.state === "edit" ? internal.featurePairToEdit.feature : __inputUtils.emptyFeature() onCanceled: { + internal.featurePairToEdit = null root.hideInfoTextMessage() if ( root.state === "record" ) @@ -1171,6 +1172,7 @@ Item { } onDone: function( featureLayerPair ) { + internal.featurePairToEdit = null root.hideInfoTextMessage() if ( root.state === "record" ) @@ -1226,6 +1228,7 @@ Item { featureToSplit: internal.featurePairToEdit onDone: function (success) { + internal.featurePairToEdit = null // close all feature forms, show banner if it went fine or not root.hideInfoTextMessage() @@ -1245,6 +1248,7 @@ Item { } onCanceled: { + internal.featurePairToEdit = null // go back to feature form root.hideInfoTextMessage() @@ -1311,7 +1315,6 @@ Item { } function record() { - internal.featurePairToEdit = null state = "record" }