From 7d7fc0c0215b2920cde9577f9c8ed60a14ffbe34 Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sat, 28 Jun 2025 19:59:29 +0200 Subject: [PATCH] Sketcher: Use generic tool hints table for DrawSketchHandlerLineSet --- .../Sketcher/Gui/DrawSketchHandlerLineSet.h | 56 +++++++------------ 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerLineSet.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerLineSet.h index 640d91dfd3..ff0af0d911 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerLineSet.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerLineSet.h @@ -760,17 +760,6 @@ public: } private: - struct HintEntry - { - int mode; - std::list hints; - }; - - using HintTable = std::vector; - - static HintTable getLineSetHintTable(); - static std::list lookupLineSetHints(int mode); - QString getCrosshairCursorSVGName() const override { return QStringLiteral("Sketcher_Pointer_Create_Lineset"); @@ -778,7 +767,26 @@ private: std::list getToolHints() const override { - return lookupLineSetHints(Mode); + using enum Gui::InputHint::UserInput; + + // clang-format off + return Gui::lookupHints( + Mode, + { + {.state = STATUS_SEEK_First, + .hints = + { + {QObject::tr("%1 pick first point"), {MouseLeft}}, + }}, + {.state = STATUS_SEEK_Second, + .hints = + { + {QObject::tr("%1 pick next point"), {MouseLeft}}, + {QObject::tr("%1 finish"), {MouseRight}}, + {QObject::tr("%1 switch mode"), {KeyM}}, + }}, + }); + // clang-format on } protected: @@ -840,30 +848,6 @@ protected: dirVec.Normalize(); } }; - -DrawSketchHandlerLineSet::HintTable DrawSketchHandlerLineSet::getLineSetHintTable() -{ - return {// Structure: {mode, {hints...}} - {STATUS_SEEK_First, - {{QObject::tr("%1 pick first point"), {Gui::InputHint::UserInput::MouseLeft}}}}, - {STATUS_SEEK_Second, - {{QObject::tr("%1 pick next point"), {Gui::InputHint::UserInput::MouseLeft}}, - {QObject::tr("%1 finish"), {Gui::InputHint::UserInput::MouseRight}}, - {QObject::tr("%1 switch mode"), {Gui::InputHint::UserInput::KeyM}}}}}; -} - -std::list DrawSketchHandlerLineSet::lookupLineSetHints(int mode) -{ - const auto lineSetHintTable = getLineSetHintTable(); - - auto it = std::find_if(lineSetHintTable.begin(), - lineSetHintTable.end(), - [mode](const HintEntry& entry) { - return entry.mode == mode; - }); - - return (it != lineSetHintTable.end()) ? it->hints : std::list {}; -} } // namespace SketcherGui