From 9db65bbf9a74e6c437c43dcbccc9fac9b4bb8635 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Tue, 7 Nov 2023 15:40:26 +0100 Subject: [PATCH] Sketcher: Update DSHs to set value via framework only when they are visible --- src/Mod/Sketcher/Gui/DrawSketchHandlerLine.h | 31 +++++++----- .../Sketcher/Gui/DrawSketchHandlerOffset.h | 2 +- src/Mod/Sketcher/Gui/DrawSketchHandlerPoint.h | 4 +- .../Sketcher/Gui/DrawSketchHandlerPolygon.h | 11 +++-- .../Sketcher/Gui/DrawSketchHandlerRectangle.h | 47 ++++++++----------- 5 files changed, 48 insertions(+), 47 deletions(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerLine.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerLine.h index 55c2b6465a..b6708524f4 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerLine.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerLine.h @@ -306,11 +306,17 @@ void DSHLineController::configureToolWidget() onViewParameters[OnViewParameter::Second]->setLabelType(Gui::SoDatumLabel::DISTANCEY); if (handler->constructionMethod() == ConstructionMethod::OnePointLengthAngle) { - onViewParameters[OnViewParameter::Fourth]->setLabelType(Gui::SoDatumLabel::ANGLE); + onViewParameters[OnViewParameter::Fourth]->setLabelType( + Gui::SoDatumLabel::ANGLE, + Gui::EditableDatumLabel::Function::Dimensioning); } else { - onViewParameters[OnViewParameter::Third]->setLabelType(Gui::SoDatumLabel::DISTANCEX); - onViewParameters[OnViewParameter::Fourth]->setLabelType(Gui::SoDatumLabel::DISTANCEY); + onViewParameters[OnViewParameter::Third]->setLabelType( + Gui::SoDatumLabel::DISTANCEX, + Gui::EditableDatumLabel::Function::Dimensioning); + onViewParameters[OnViewParameter::Fourth]->setLabelType( + Gui::SoDatumLabel::DISTANCEY, + Gui::EditableDatumLabel::Function::Dimensioning); } } @@ -392,11 +398,11 @@ void DSHLineController::adaptParameters(Base::Vector2d onSketchPos) switch (handler->state()) { case SelectMode::SeekFirst: { if (!onViewParameters[OnViewParameter::First]->isSet) { - onViewParameters[OnViewParameter::First]->setSpinboxValue(onSketchPos.x); + setOnViewParameterValue(OnViewParameter::First, onSketchPos.x); } if (!onViewParameters[OnViewParameter::Second]->isSet) { - onViewParameters[OnViewParameter::Second]->setSpinboxValue(onSketchPos.y); + setOnViewParameterValue(OnViewParameter::Second, onSketchPos.y); } bool sameSign = onSketchPos.x * onSketchPos.y > 0.; @@ -414,11 +420,11 @@ void DSHLineController::adaptParameters(Base::Vector2d onSketchPos) Base::Vector3d vec = end - start; if (!onViewParameters[OnViewParameter::Third]->isSet) { - onViewParameters[OnViewParameter::Third]->setSpinboxValue(vec.x); + setOnViewParameterValue(OnViewParameter::Third, vec.x); } if (!onViewParameters[OnViewParameter::Fourth]->isSet) { - onViewParameters[OnViewParameter::Fourth]->setSpinboxValue(vec.y); + setOnViewParameterValue(OnViewParameter::Fourth, vec.y); } bool sameSign = vec.x * vec.y > 0.; @@ -435,13 +441,14 @@ void DSHLineController::adaptParameters(Base::Vector2d onSketchPos) Base::Vector3d vec = end - start; if (!onViewParameters[OnViewParameter::Third]->isSet) { - onViewParameters[OnViewParameter::Third]->setSpinboxValue(vec.Length()); + setOnViewParameterValue(OnViewParameter::Third, vec.Length()); } double range = (handler->endPoint - handler->startPoint).Angle(); if (!onViewParameters[OnViewParameter::Fourth]->isSet) { - onViewParameters[OnViewParameter::Fourth]->setSpinboxValue(range * 180 / M_PI, - Base::Unit::Angle); + setOnViewParameterValue(OnViewParameter::Fourth, + range * 180 / M_PI, + Base::Unit::Angle); } onViewParameters[OnViewParameter::Third]->setPoints(start, end); @@ -450,11 +457,11 @@ void DSHLineController::adaptParameters(Base::Vector2d onSketchPos) } else { if (!onViewParameters[OnViewParameter::Third]->isSet) { - onViewParameters[OnViewParameter::Third]->setSpinboxValue(onSketchPos.x); + setOnViewParameterValue(OnViewParameter::Third, onSketchPos.x); } if (!onViewParameters[OnViewParameter::Fourth]->isSet) { - onViewParameters[OnViewParameter::Fourth]->setSpinboxValue(onSketchPos.y); + setOnViewParameterValue(OnViewParameter::Fourth, onSketchPos.y); } bool sameSign = onSketchPos.x * onSketchPos.y > 0.; diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerOffset.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerOffset.h index 6f306cb377..a815f5a908 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerOffset.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerOffset.h @@ -1140,7 +1140,7 @@ void DSHOffsetController::adaptParameters(Base::Vector2d onSketchPos) switch (handler->state()) { case SelectMode::SeekFirst: { if (!onViewParameters[OnViewParameter::First]->isSet) { - onViewParameters[OnViewParameter::First]->setSpinboxValue(handler->offsetLength); + setOnViewParameterValue(OnViewParameter::First, handler->offsetLength); } onViewParameters[OnViewParameter::First]->setPoints( diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerPoint.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerPoint.h index 9d8ed1bff0..65c17a2189 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerPoint.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerPoint.h @@ -190,11 +190,11 @@ void DSHPointController::adaptParameters(Base::Vector2d onSketchPos) switch (handler->state()) { case SelectMode::SeekFirst: { if (!onViewParameters[OnViewParameter::First]->isSet) { - onViewParameters[OnViewParameter::First]->setSpinboxValue(onSketchPos.x); + setOnViewParameterValue(OnViewParameter::First, onSketchPos.x); } if (!onViewParameters[OnViewParameter::Second]->isSet) { - onViewParameters[OnViewParameter::Second]->setSpinboxValue(onSketchPos.y); + setOnViewParameterValue(OnViewParameter::Second, onSketchPos.y); } bool sameSign = onSketchPos.x * onSketchPos.y > 0.; diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerPolygon.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerPolygon.h index ea68da2597..6f9ca34ad4 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerPolygon.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerPolygon.h @@ -369,11 +369,11 @@ void DSHPolygonController::adaptParameters(Base::Vector2d onSketchPos) switch (handler->state()) { case SelectMode::SeekFirst: { if (!onViewParameters[OnViewParameter::First]->isSet) { - onViewParameters[OnViewParameter::First]->setSpinboxValue(onSketchPos.x); + setOnViewParameterValue(OnViewParameter::First, onSketchPos.x); } if (!onViewParameters[OnViewParameter::Second]->isSet) { - onViewParameters[OnViewParameter::Second]->setSpinboxValue(onSketchPos.y); + setOnViewParameterValue(OnViewParameter::Second, onSketchPos.y); } bool sameSign = onSketchPos.x * onSketchPos.y > 0.; @@ -390,13 +390,14 @@ void DSHPolygonController::adaptParameters(Base::Vector2d onSketchPos) Base::Vector3d vec = end - start; if (!onViewParameters[OnViewParameter::Third]->isSet) { - onViewParameters[OnViewParameter::Third]->setSpinboxValue(vec.Length()); + setOnViewParameterValue(OnViewParameter::Third, vec.Length()); } double range = (handler->firstCorner - handler->centerPoint).Angle(); if (!onViewParameters[OnViewParameter::Fourth]->isSet) { - onViewParameters[OnViewParameter::Fourth]->setSpinboxValue(range * 180 / M_PI, - Base::Unit::Angle); + setOnViewParameterValue(OnViewParameter::Fourth, + range * 180 / M_PI, + Base::Unit::Angle); } onViewParameters[OnViewParameter::Third]->setPoints(start, end); diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerRectangle.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerRectangle.h index 287080c616..2fb26fb529 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerRectangle.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerRectangle.h @@ -2005,11 +2005,11 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) switch (handler->state()) { case SelectMode::SeekFirst: { if (!onViewParameters[OnViewParameter::First]->isSet) { - onViewParameters[OnViewParameter::First]->setSpinboxValue(onSketchPos.x); + setOnViewParameterValue(OnViewParameter::First, onSketchPos.x); } if (!onViewParameters[OnViewParameter::Second]->isSet) { - onViewParameters[OnViewParameter::Second]->setSpinboxValue(onSketchPos.y); + setOnViewParameterValue(OnViewParameter::Second, onSketchPos.y); } bool sameSign = onSketchPos.x * onSketchPos.y > 0.; @@ -2025,12 +2025,12 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) || handler->constructionMethod() == ConstructionMethod::CenterAndCorner) { if (!onViewParameters[OnViewParameter::Third]->isSet) { double length = handler->cornersReversed ? handler->width : handler->length; - onViewParameters[OnViewParameter::Third]->setSpinboxValue(length); + setOnViewParameterValue(OnViewParameter::Third, length); } if (!onViewParameters[OnViewParameter::Fourth]->isSet) { double width = handler->cornersReversed ? handler->length : handler->width; - onViewParameters[OnViewParameter::Fourth]->setSpinboxValue(width); + setOnViewParameterValue(OnViewParameter::Fourth, width); } Base::Vector3d start = toVector3d(handler->corner1); @@ -2049,16 +2049,16 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) } else if (handler->constructionMethod() == ConstructionMethod::ThreePoints) { if (!onViewParameters[OnViewParameter::Third]->isSet) { - onViewParameters[OnViewParameter::Third]->setSpinboxValue(handler->length); + setOnViewParameterValue(OnViewParameter::Third, handler->length); } onViewParameters[OnViewParameter::Third]->setPoints(toVector3d(handler->corner4), toVector3d(handler->corner3)); if (!onViewParameters[OnViewParameter::Fourth]->isSet) { - onViewParameters[OnViewParameter::Fourth]->setSpinboxValue(handler->angle * 180 - / M_PI, - Base::Unit::Angle); + setOnViewParameterValue(OnViewParameter::Fourth, + handler->angle * 180 / M_PI, + Base::Unit::Angle); } onViewParameters[OnViewParameter::Fourth]->setPoints(toVector3d(handler->corner1), @@ -2068,11 +2068,11 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) } else { if (!onViewParameters[OnViewParameter::Third]->isSet) { - onViewParameters[OnViewParameter::Third]->setSpinboxValue(onSketchPos.x); + setOnViewParameterValue(OnViewParameter::Third, onSketchPos.x); } if (!onViewParameters[OnViewParameter::Fourth]->isSet) { - onViewParameters[OnViewParameter::Fourth]->setSpinboxValue(onSketchPos.y); + setOnViewParameterValue(OnViewParameter::Fourth, onSketchPos.y); } bool sameSign = onSketchPos.x * onSketchPos.y > 0.; @@ -2089,7 +2089,7 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) || handler->constructionMethod() == ConstructionMethod::CenterAndCorner) { if (handler->roundCorners) { if (!onViewParameters[OnViewParameter::Fifth]->isSet) { - onViewParameters[OnViewParameter::Fifth]->setSpinboxValue(handler->radius); + setOnViewParameterValue(OnViewParameter::Fifth, handler->radius); } Base::Vector3d center = handler->center3; @@ -2104,8 +2104,7 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) } else { if (!onViewParameters[OnViewParameter::Sixth]->isSet) { - onViewParameters[OnViewParameter::Sixth]->setSpinboxValue( - handler->thickness); + setOnViewParameterValue(OnViewParameter::Sixth, handler->thickness); } Base::Vector3d start = toVector3d(handler->corner3); @@ -2122,8 +2121,8 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) bool notReversed = threePoints && !handler->cornersReversed; if (!onViewParameters[OnViewParameter::Fifth]->isSet) { - onViewParameters[OnViewParameter::Fifth]->setSpinboxValue( - notReversed ? handler->width : handler->length); + setOnViewParameterValue(OnViewParameter::Fifth, + notReversed ? handler->width : handler->length); } Base::Vector3d start = toVector3d(handler->corner1); @@ -2136,15 +2135,11 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) if (!onViewParameters[OnViewParameter::Sixth]->isSet) { if (threePoints) { double val = handler->angle123 * 180 / M_PI; - onViewParameters[OnViewParameter::Sixth]->setSpinboxValue( - val, - Base::Unit::Angle); + setOnViewParameterValue(OnViewParameter::Sixth, val, Base::Unit::Angle); } else { double val = handler->angle412 * 180 / M_PI; - onViewParameters[OnViewParameter::Sixth]->setSpinboxValue( - val, - Base::Unit::Angle); + setOnViewParameterValue(OnViewParameter::Sixth, val, Base::Unit::Angle); } } @@ -2172,7 +2167,7 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) if (handler->constructionMethod() == ConstructionMethod::Diagonal || handler->constructionMethod() == ConstructionMethod::CenterAndCorner) { if (!onViewParameters[OnViewParameter::Sixth]->isSet) { - onViewParameters[OnViewParameter::Sixth]->setSpinboxValue(handler->thickness); + setOnViewParameterValue(OnViewParameter::Sixth, handler->thickness); } Base::Vector3d start = toVector3d(handler->corner3); @@ -2183,8 +2178,7 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) else { if (handler->roundCorners) { if (!onViewParameters[OnViewParameter::Seventh]->isSet) { - onViewParameters[OnViewParameter::Seventh]->setSpinboxValue( - handler->radius); + setOnViewParameterValue(OnViewParameter::Seventh, handler->radius); } Base::Vector3d center = handler->center3; @@ -2199,8 +2193,7 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) } else { if (!onViewParameters[OnViewParameter::Eighth]->isSet) { - onViewParameters[OnViewParameter::Eighth]->setSpinboxValue( - handler->thickness); + setOnViewParameterValue(OnViewParameter::Eighth, handler->thickness); } Base::Vector3d start = toVector3d(handler->corner3); @@ -2213,7 +2206,7 @@ void DSHRectangleController::adaptParameters(Base::Vector2d onSketchPos) } break; case SelectMode::SeekFifth: { if (!onViewParameters[OnViewParameter::Eighth]->isSet) { - onViewParameters[OnViewParameter::Eighth]->setSpinboxValue(handler->thickness); + setOnViewParameterValue(OnViewParameter::Eighth, handler->thickness); } Base::Vector3d start = toVector3d(handler->corner3);