From 70ad20b0be6df87128d97c7f904356eeaa94fa3a Mon Sep 17 00:00:00 2001 From: Krzysztof Chrusciel Date: Mon, 7 Apr 2025 21:50:07 +0200 Subject: [PATCH] Lua: Expose properties of QAction Change-Id: I14ee6f9b57bbe97a78a0dcfed70a9a022e59fee2 Reviewed-by: Marcus Tillmanns --- src/plugins/lua/bindings/qt.cpp | 37 ++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/plugins/lua/bindings/qt.cpp b/src/plugins/lua/bindings/qt.cpp index 16bcb12b714..eace0e0ab09 100644 --- a/src/plugins/lua/bindings/qt.cpp +++ b/src/plugins/lua/bindings/qt.cpp @@ -7,10 +7,11 @@ #include +#include #include #include -#include #include +#include #include #include #include @@ -26,6 +27,40 @@ void setupQtModule() sol::table qt(lua, sol::create); const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); + qt.new_usertype( + "QAction", + sol::no_constructor, + "checkable", + sol::property(&QAction::isCheckable, &QAction::setCheckable), + "checked", + sol::property(&QAction::isChecked, &QAction::setChecked), + "enabled", + sol::property(&QAction::isEnabled, &QAction::setEnabled), + "icon", + sol::property( + &QAction::icon, + [](QAction *action, IconFilePathOrString icon) { + action->setIcon(toIcon(icon)->icon()); + }), + "text", + sol::property(&QAction::text, &QAction::setText), + "iconText", + sol::property(&QAction::iconText, &QAction::setIconText), + "toolTip", + sol::property(&QAction::toolTip, &QAction::setToolTip), + "statusTip", + sol::property(&QAction::statusTip, &QAction::setStatusTip), + "whatsThis", + sol::property(&QAction::whatsThis, &QAction::setWhatsThis), + "visible", + sol::property(&QAction::isVisible, &QAction::setVisible), + "iconVisibleInMenu", + sol::property(&QAction::isIconVisibleInMenu, &QAction::setIconVisibleInMenu), + "shortcutVisibleInContextMenu", + sol::property( + &QAction::isShortcutVisibleInContextMenu, + &QAction::setShortcutVisibleInContextMenu)); + qt.new_usertype( "QCompleter", "create",