From e86a43c183e87abc22016a74d5f8954b90e2b36a Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sat, 28 Jun 2025 19:59:26 +0200 Subject: [PATCH] Sketcher: Use generic tool hints table for DrawSketchHandlerArcSlot --- .../Sketcher/Gui/DrawSketchHandlerArcSlot.h | 65 ++++++++----------- 1 file changed, 26 insertions(+), 39 deletions(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcSlot.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcSlot.h index 382cf17c04..1eda657a69 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcSlot.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcSlot.h @@ -93,24 +93,37 @@ public: ~DrawSketchHandlerArcSlot() override = default; -private: std::list getToolHints() const override { - return lookupArcSlotHints(state()); + using enum Gui::InputHint::UserInput; + + return Gui::lookupHints( + state(), + { + {.state = SelectMode::SeekFirst, + .hints = + { + {QObject::tr("%1 pick slot center"), {MouseLeft}}, + }}, + {.state = SelectMode::SeekSecond, + .hints = + { + {QObject::tr("%1 pick slot radius"), {MouseLeft}}, + }}, + {.state = SelectMode::SeekThird, + .hints = + { + {QObject::tr("%1 pick slot angle"), {MouseLeft}}, + }}, + {.state = SelectMode::SeekFourth, + .hints = + { + {QObject::tr("%1 pick slot width"), {MouseLeft}}, + }}, + }); } private: - struct HintEntry - { - SelectMode state; - std::list hints; - }; - - using HintTable = std::vector; - - static HintTable getArcSlotHintTable(); - static std::list lookupArcSlotHints(SelectMode state); - void updateDataAndDrawToPosition(Base::Vector2d onSketchPos) override { switch (state()) { @@ -976,32 +989,6 @@ void DSHArcSlotController::addConstraints() } } -DrawSketchHandlerArcSlot::HintTable DrawSketchHandlerArcSlot::getArcSlotHintTable() -{ - return {// Structure: {SelectMode, {hints...}} - {SelectMode::SeekFirst, - {{QObject::tr("%1 pick slot center"), {Gui::InputHint::UserInput::MouseLeft}}}}, - {SelectMode::SeekSecond, - {{QObject::tr("%1 pick slot radius"), {Gui::InputHint::UserInput::MouseLeft}}}}, - {SelectMode::SeekThird, - {{QObject::tr("%1 pick slot angle"), {Gui::InputHint::UserInput::MouseLeft}}}}, - {SelectMode::SeekFourth, - {{QObject::tr("%1 pick slot width"), {Gui::InputHint::UserInput::MouseLeft}}}}}; -} - -std::list DrawSketchHandlerArcSlot::lookupArcSlotHints(SelectMode state) -{ - const auto arcSlotHintTable = getArcSlotHintTable(); - - auto it = std::find_if(arcSlotHintTable.begin(), - arcSlotHintTable.end(), - [state](const HintEntry& entry) { - return entry.state == state; - }); - - return (it != arcSlotHintTable.end()) ? it->hints : std::list {}; -} - } // namespace SketcherGui