Sketcher: Use generic tool hints table for DrawSketchHandlerFillet

This commit is contained in:
Kacper Donat
2025-06-28 19:59:28 +02:00
parent d3e823d5e0
commit fd6c654561

View File

@@ -411,21 +411,23 @@ private:
int vtId, geoId1, geoId2;
Base::Vector2d firstPos, secondPos;
struct HintEntry
{
SelectMode state;
std::list<Gui::InputHint> hints;
};
using HintTable = std::vector<HintEntry>;
static HintTable getFilletHintTable();
static std::list<Gui::InputHint> lookupFilletHints(SelectMode state);
public:
std::list<Gui::InputHint> getToolHints() const override
{
return lookupFilletHints(state());
using enum Gui::InputHint::UserInput;
return Gui::lookupHints<SelectMode>(
state(),
{{.state = SelectMode::SeekFirst,
.hints = {{QObject::tr("%1 pick first edge or point",
"Sketcher Fillet/Chamfer: hint"),
{MouseLeft}}}},
{.state = SelectMode::SeekSecond,
.hints = {{QObject::tr("%1 pick second edge", "Sketcher Fillet/Chamfer: hint"),
{MouseLeft}}}},
{.state = SelectMode::End,
.hints = {{QObject::tr("%1 create fillet", "Sketcher Fillet/Chamfer: hint"),
{MouseLeft}}}}});
}
};
@@ -474,33 +476,6 @@ void DSHFilletController::adaptDrawingToCheckboxChange(int checkboxindex, bool v
handler->updateCursor();
}
DrawSketchHandlerFillet::HintTable DrawSketchHandlerFillet::getFilletHintTable()
{
using enum Gui::InputHint::UserInput;
return {{.state = SelectMode::SeekFirst,
.hints = {{QObject::tr("%1 pick first edge or point", "Sketcher Fillet/Chamfer: hint"),
{MouseLeft}}}},
{.state = SelectMode::SeekSecond,
.hints = {{QObject::tr("%1 pick second edge", "Sketcher Fillet/Chamfer: hint"),
{MouseLeft}}}},
{.state = SelectMode::End,
.hints = {
{QObject::tr("%1 create fillet", "Sketcher Fillet/Chamfer: hint"), {MouseLeft}}}}};
}
std::list<Gui::InputHint> DrawSketchHandlerFillet::lookupFilletHints(SelectMode state)
{
const auto filletHintTable = getFilletHintTable();
auto it = std::ranges::find_if(filletHintTable, [state](const HintEntry& entry) {
return entry.state == state;
});
return (it != filletHintTable.end()) ? it->hints : std::list<Gui::InputHint> {};
}
} // namespace SketcherGui
#endif // SKETCHERGUI_DrawSketchHandlerFillet_H