From 33abd923b3b13de5f7b7ac7d761a090989fa7e98 Mon Sep 17 00:00:00 2001 From: Max Wilfinger Date: Sat, 30 Mar 2024 11:02:05 +0100 Subject: [PATCH] Update Sketcher context menu. Refine poposed constraints on point selection. Add symmetry constraint to context menu. Rearrange commands to be consistent with the toolbar. --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 30 ++++++++++++++++++--- src/Mod/Sketcher/Gui/Workbench.cpp | 28 ++++++++----------- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 2f50450ca1..d031975642 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -4085,7 +4085,8 @@ void ViewProviderSketch::generateContextMenu() } if (selectedPoints == 1) { menu << "Sketcher_ConstrainPerpendicular" - << "Sketcher_ConstrainTangent"; + << "Sketcher_ConstrainTangent" + << "Sketcher_ConstrainSymmetric"; } } else { @@ -4110,13 +4111,35 @@ void ViewProviderSketch::generateContextMenu() menu << "Sketcher_JoinCurves"; } } + if (selectedPoints == 3) { + menu << "Sketcher_ConstrainSymmetric"; + } } else if (selectedLines >= 1 && selectedPoints >= 1 && !onlyOrigin) { - menu << "Sketcher_Dimension" - << "Sketcher_ConstrainHorVer" + menu << "Sketcher_Dimension"; + + if (selectedPoints == 1) { + menu << "Sketcher_ConstrainCoincidentUnified"; + } + + menu << "Sketcher_ConstrainHorVer" << "Sketcher_ConstrainHorizontal" << "Sketcher_ConstrainVertical"; + + if (selectedLines > 1) { + menu << "Sketcher_ConstrainParallel"; + } + + if (selectedLines == 2 && selectedPoints == 1) { + menu << "Sketcher_ConstrainPerpendicular" + << "Sketcher_ConstrainTangent"; + } + + if (selectedLines == 1 && selectedPoints == 1) { + menu << "Sketcher_ConstrainSymmetric"; + } } + // context menu if only constraints are selected else if (selectedConstraints >= 1) { menu << "Sketcher_ToggleDrivingConstraint" @@ -4134,6 +4157,7 @@ void ViewProviderSketch::generateContextMenu() << "Sketcher_Rotate" << "Sketcher_Scale" << "Sketcher_Offset" + << "Sketcher_Symmetry" << "Separator" << "Sketcher_CompDimensionTools" << "Sketcher_CompConstrainTools" diff --git a/src/Mod/Sketcher/Gui/Workbench.cpp b/src/Mod/Sketcher/Gui/Workbench.cpp index 7ef3c44373..051d5a18b1 100644 --- a/src/Mod/Sketcher/Gui/Workbench.cpp +++ b/src/Mod/Sketcher/Gui/Workbench.cpp @@ -534,11 +534,11 @@ inline void SketcherAddWorkbenchTools(Gui::MenuItem& consaccel) << "Sketcher_SelectHorizontalAxis" << "Sketcher_SelectVerticalAxis" << "Separator" - << "Sketcher_Offset" + << "Sketcher_Translate" << "Sketcher_Rotate" << "Sketcher_Scale" + << "Sketcher_Offset" << "Sketcher_Symmetry" - << "Sketcher_Translate" << "Sketcher_RemoveAxesAlignment" << "Separator" << "Sketcher_DeleteAllGeometry" @@ -552,21 +552,15 @@ inline void SketcherAddWorkbenchTools(Gui::MenuItem& consaccel) template<> inline void SketcherAddWorkbenchTools(Gui::ToolBarItem& consaccel) { - consaccel //<< "Sketcher_SelectElementsWithDoFs" //rarely used, it is usually accessed by - // solver - // message. - << "Sketcher_SelectConstraints" - << "Sketcher_SelectElementsAssociatedWithConstraints" - //<< "Sketcher_SelectRedundantConstraints" //rarely used, it is usually accessed by solver - // message. - //<< "Sketcher_SelectConflictingConstraints" - << "Sketcher_RestoreInternalAlignmentGeometry" - << "Sketcher_Offset" - << "Sketcher_Rotate" - << "Sketcher_Scale" - << "Sketcher_Symmetry" - << "Sketcher_Translate" - << "Sketcher_RemoveAxesAlignment"; + consaccel << "Sketcher_Translate" + << "Sketcher_Rotate" + << "Sketcher_Scale" + << "Sketcher_Offset" + << "Sketcher_Symmetry" + << "Sketcher_RemoveAxesAlignment" + << "Sketcher_SelectConstraints" + << "Sketcher_SelectElementsAssociatedWithConstraints" + << "Sketcher_RestoreInternalAlignmentGeometry"; } template