From 20876d7b356434fc269c0c22f39cc702f244d058 Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sat, 28 Jun 2025 19:59:25 +0200 Subject: [PATCH] Sketcher: Use generic tool hints table for DrawSketchHandlerArcOfEllipse --- .../Gui/DrawSketchHandlerArcOfEllipse.h | 65 ++++++++----------- 1 file changed, 26 insertions(+), 39 deletions(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfEllipse.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfEllipse.h index 0e46759865..ee681def80 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfEllipse.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfEllipse.h @@ -407,48 +407,35 @@ protected: private: std::list getToolHints() const override { - return lookupArcOfEllipseHints(Mode); + using enum Gui::InputHint::UserInput; + + return Gui::lookupHints( + Mode, + { + {.state = STATUS_SEEK_First, + .hints = + { + {QObject::tr("%1 pick ellipse center"), {MouseLeft}}, + }}, + {.state = STATUS_SEEK_Second, + .hints = + { + {QObject::tr("%1 pick axis point"), {MouseLeft}}, + }}, + {.state = STATUS_SEEK_Third, + .hints = + { + {QObject::tr("%1 pick arc start point"), {MouseLeft}}, + }}, + {.state = STATUS_SEEK_Fourth, + .hints = + { + {QObject::tr("%1 pick arc end point"), {MouseLeft}}, + }}, + }); } - -private: - struct HintEntry - { - int mode; - std::list hints; - }; - - using HintTable = std::vector; - - static HintTable getArcOfEllipseHintTable(); - static std::list lookupArcOfEllipseHints(int mode); }; -DrawSketchHandlerArcOfEllipse::HintTable DrawSketchHandlerArcOfEllipse::getArcOfEllipseHintTable() -{ - return {// Structure: {mode, {hints...}} - {STATUS_SEEK_First, - {{QObject::tr("%1 pick ellipse center"), {Gui::InputHint::UserInput::MouseLeft}}}}, - {STATUS_SEEK_Second, - {{QObject::tr("%1 pick axis point"), {Gui::InputHint::UserInput::MouseLeft}}}}, - {STATUS_SEEK_Third, - {{QObject::tr("%1 pick arc start point"), {Gui::InputHint::UserInput::MouseLeft}}}}, - {STATUS_SEEK_Fourth, - {{QObject::tr("%1 pick arc end point"), {Gui::InputHint::UserInput::MouseLeft}}}}}; -} - -std::list DrawSketchHandlerArcOfEllipse::lookupArcOfEllipseHints(int mode) -{ - const auto arcOfEllipseHintTable = getArcOfEllipseHintTable(); - - auto it = std::find_if(arcOfEllipseHintTable.begin(), - arcOfEllipseHintTable.end(), - [mode](const HintEntry& entry) { - return entry.mode == mode; - }); - - return (it != arcOfEllipseHintTable.end()) ? it->hints : std::list {}; -} - } // namespace SketcherGui