From e278d22d4207c02015702c899cd0b80dab6dad23 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Thu, 16 Oct 2025 20:01:30 +0200 Subject: [PATCH] Sketcher: Fix ctrlA with filter vertex index issue (#24665) * Sketcher: Fix ctrlA with filter vertex index issue * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index ab6ec1d169..4c114f0780 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -2776,14 +2776,11 @@ bool ViewProviderSketch::selectAll() const std::vector geomlist = sketchObject->getCompleteGeometry(); - int VertexId = -1; int GeoId = 0; - auto selectVertex = [this](int &vertexId, int numberOfVertices) { - for (int i = 0; i < numberOfVertices; i++) { - vertexId++; - addSelection2(fmt::format("Vertex{}", vertexId + 1)); - } + auto selectVertex = [this](int geoId, Sketcher::PointPos pos) { + int vertexId = this->getSketchObject()->getVertexIndexGeoPos(geoId, pos); + addSelection2(fmt::format("Vertex{}", vertexId + 1)); }; auto selectEdge = [this](int GeoId) { @@ -2809,18 +2806,21 @@ bool ViewProviderSketch::selectAll() } if ((*it)->is()) { - selectVertex(VertexId, 1); + selectVertex(GeoId, Sketcher::PointPos::start); } else if ((*it)->is() || (*it)->is()) { - selectVertex(VertexId, 2); // Start + End + selectVertex(GeoId, Sketcher::PointPos::start); + selectVertex(GeoId, Sketcher::PointPos::end); selectEdge(GeoId); } else if ((*it)->isDerivedFrom()) { - selectVertex(VertexId, 1); // Center + selectVertex(GeoId, Sketcher::PointPos::mid); selectEdge(GeoId); } else if ((*it)->isDerivedFrom()) { - selectVertex(VertexId, 3); // Start + End + Center + selectVertex(GeoId, Sketcher::PointPos::start); + selectVertex(GeoId, Sketcher::PointPos::end); + selectVertex(GeoId, Sketcher::PointPos::mid); selectEdge(GeoId); } else {