diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfHyperbola.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfHyperbola.h index 42eee19f90..5ebcd7f4a7 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfHyperbola.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerArcOfHyperbola.h @@ -404,6 +404,35 @@ private: return QStringLiteral("Sketcher_Pointer_Create_ArcOfHyperbola"); } + std::list getToolHints() const override + { + using enum Gui::InputHint::UserInput; + + return Gui::lookupHints( + Mode, + { + {.state = STATUS_SEEK_First, + .hints = + { + {QObject::tr("%1 pick center point"), {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}}, + }}, + }); + } protected: SelectMode Mode; @@ -411,53 +440,8 @@ protected: Base::Vector2d centerPoint, axisPoint, startingPoint, endPoint; double arcAngle, arcAngle_t; std::vector sugConstr1, sugConstr2, sugConstr3, sugConstr4; - -private: - std::list getToolHints() const override - { - return lookupArcOfHyperbolaHints(Mode); - } - -private: - struct HintEntry - { - int mode; - std::list hints; - }; - - using HintTable = std::vector; - - static HintTable getArcOfHyperbolaHintTable(); - static std::list lookupArcOfHyperbolaHints(int mode); }; -DrawSketchHandlerArcOfHyperbola::HintTable -DrawSketchHandlerArcOfHyperbola::getArcOfHyperbolaHintTable() -{ - return {// Structure: {mode, {hints...}} - {STATUS_SEEK_First, - {{QObject::tr("%1 pick center point"), {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 DrawSketchHandlerArcOfHyperbola::lookupArcOfHyperbolaHints(int mode) -{ - const auto arcOfHyperbolaHintTable = getArcOfHyperbolaHintTable(); - - auto it = std::find_if(arcOfHyperbolaHintTable.begin(), - arcOfHyperbolaHintTable.end(), - [mode](const HintEntry& entry) { - return entry.mode == mode; - }); - - return (it != arcOfHyperbolaHintTable.end()) ? it->hints : std::list {}; -} - } // namespace SketcherGui