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>
This commit is contained in:
PaddleStroke
2025-10-16 20:01:30 +02:00
committed by GitHub
parent 5e75a3ece9
commit e278d22d42

View File

@@ -2776,14 +2776,11 @@ bool ViewProviderSketch::selectAll()
const std::vector<Part::Geometry*> 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<Part::GeomPoint>()) {
selectVertex(VertexId, 1);
selectVertex(GeoId, Sketcher::PointPos::start);
}
else if ((*it)->is<Part::GeomLineSegment>() || (*it)->is<Part::GeomBSplineCurve>()) {
selectVertex(VertexId, 2); // Start + End
selectVertex(GeoId, Sketcher::PointPos::start);
selectVertex(GeoId, Sketcher::PointPos::end);
selectEdge(GeoId);
}
else if ((*it)->isDerivedFrom<Part::GeomConic>()) {
selectVertex(VertexId, 1); // Center
selectVertex(GeoId, Sketcher::PointPos::mid);
selectEdge(GeoId);
}
else if ((*it)->isDerivedFrom<Part::GeomArcOfConic>()) {
selectVertex(VertexId, 3); // Start + End + Center
selectVertex(GeoId, Sketcher::PointPos::start);
selectVertex(GeoId, Sketcher::PointPos::end);
selectVertex(GeoId, Sketcher::PointPos::mid);
selectEdge(GeoId);
}
else {