From 7a526cd205a9cf564540256fc5047532cef7b552 Mon Sep 17 00:00:00 2001 From: Tomas Mizera Date: Wed, 12 Aug 2026 22:41:12 +0200 Subject: [PATCH 1/2] Reverse order of map sketching points, append instead of prepend --- app/mapsketchingcontroller.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/mapsketchingcontroller.cpp b/app/mapsketchingcontroller.cpp index d4cb4ef82..288a1ef95 100644 --- a/app/mapsketchingcontroller.cpp +++ b/app/mapsketchingcontroller.cpp @@ -17,6 +17,7 @@ #include "qgsvectorlayerutils.h" #include "qgslinestring.h" #include "qgsmultilinestring.h" +#include "qgsvertexid.h" MapSketchingController::MapSketchingController( QObject *parent ) @@ -49,10 +50,13 @@ void MapSketchingController::updateHighlight( const QPointF &oldPoint, const QPo mScreenPoints = QgsGeometry( new QgsLineString( { QgsPointXY( oldPoint.x(), oldPoint.y() ) } ) ); } - // TODO: append instead of insert to zero - mScreenPoints.insertVertex( newPoint.x(), newPoint.y(), 0 ); + // Append point to the geometry + const QgsVertexId lastScreenVertex( 0, 0, mScreenPoints.constGet()->vertexCount() ); + mScreenPoints.get()->insertVertex( lastScreenVertex, QgsPoint( newPoint.x(), newPoint.y() ) ); + const QgsPoint p1 = mMapSettings->screenToCoordinate( newPoint ); - mHighlight.insertVertex( p1, 0 ); + const QgsVertexId lastHighlightVertex( 0, 0, mHighlight.constGet()->vertexCount() ); + mHighlight.get()->insertVertex( lastHighlightVertex, p1 ); emit highlightGeometryChanged(); } From 142372308e1052479ab7f43860e4752a10f73f36 Mon Sep 17 00:00:00 2001 From: Tomas Mizera Date: Wed, 12 Aug 2026 22:41:40 +0200 Subject: [PATCH 2/2] Fix code exceptions in map sketching qml --- app/qml/map/MMMapSketchesDrawer.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/qml/map/MMMapSketchesDrawer.qml b/app/qml/map/MMMapSketchesDrawer.qml index 4f41856a8..e265cc3ef 100644 --- a/app/qml/map/MMMapSketchesDrawer.qml +++ b/app/qml/map/MMMapSketchesDrawer.qml @@ -80,13 +80,13 @@ MMComponents.MMDrawer { MMComponents.MMColorPicker { id: colorPicker - colors: root.sketchingController?.availableColors() - activeColor: root.sketchingController?.activeColor + colors: root.sketchingController?.availableColors() ?? [] + activeColor: root.sketchingController?.activeColor ?? null Layout.alignment: Qt.AlignHCenter Layout.maximumWidth: parent.width - onActiveColorChangeRequested: { + onActiveColorChangeRequested: function( newColor ) { if ( root.sketchingController ) { root.sketchingController.activeColor = newColor