From ee3261482cb34a36caf12ddf1824972d63f24b5f Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sat, 28 Jun 2025 19:59:30 +0200 Subject: [PATCH] Sketcher: Use generic tool hints table for DrawSketchHandlerRotate --- .../Sketcher/Gui/DrawSketchHandlerRotate.h | 68 ++++++++----------- 1 file changed, 27 insertions(+), 41 deletions(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerRotate.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerRotate.h index e369e22c63..bc8998e920 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerRotate.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerRotate.h @@ -83,6 +83,33 @@ public: ~DrawSketchHandlerRotate() override = default; + std::list getToolHints() const override + { + using enum Gui::InputHint::UserInput; + + return Gui::lookupHints( + state(), + { + {.state = SelectMode::SeekFirst, + .hints = + { + {QObject::tr("%1 pick center point", "Sketcher Rotate: hint"), + {MouseLeft}}, + }}, + {.state = SelectMode::SeekSecond, + .hints = + { + {QObject::tr("%1 set start angle", "Sketcher Rotate: hint"), {MouseLeft}}, + }}, + {.state = SelectMode::SeekThird, + .hints = + { + {QObject::tr("%1 set rotation angle", "Sketcher Rotate: hint"), + {MouseLeft}}, + }}, + }); + } + private: void updateDataAndDrawToPosition(Base::Vector2d onSketchPos) override { @@ -455,49 +482,8 @@ private: return pointToRotate; } - - struct HintEntry - { - SelectMode state; - std::list hints; - }; - - using HintTable = std::vector; - - static HintTable getRotateHintTable(); - static std::list lookupRotateHints(SelectMode state); - -public: - std::list getToolHints() const override - { - return lookupRotateHints(state()); - } }; -DrawSketchHandlerRotate::HintTable DrawSketchHandlerRotate::getRotateHintTable() -{ - using enum Gui::InputHint::UserInput; - - return { - {.state = SelectMode::SeekFirst, - .hints = {{QObject::tr("%1 pick center point", "Sketcher Rotate: hint"), {MouseLeft}}}}, - {.state = SelectMode::SeekSecond, - .hints = {{QObject::tr("%1 set start angle", "Sketcher Rotate: hint"), {MouseLeft}}}}, - {.state = SelectMode::SeekThird, - .hints = {{QObject::tr("%1 set rotation angle", "Sketcher Rotate: hint"), {MouseLeft}}}}}; -} - -std::list DrawSketchHandlerRotate::lookupRotateHints(SelectMode state) -{ - const auto rotateHintTable = getRotateHintTable(); - - auto it = std::ranges::find_if(rotateHintTable, [state](const HintEntry& entry) { - return entry.state == state; - }); - - return (it != rotateHintTable.end()) ? it->hints : std::list {}; -} - template<> auto DSHRotateControllerBase::getState(int labelindex) const {