From cf71314c34c1671ce4273cf1289c59ad278d8dd2 Mon Sep 17 00:00:00 2001 From: Lukasz Papierkowski Date: Fri, 23 Aug 2024 11:42:33 +0200 Subject: [PATCH] LUA: Add flat flag for the WidgetOptions in Gui bindings Change-Id: I4aab77c8c0289734a50eb86b14c8aa01b6e64fa8 Reviewed-by: Marcus Tillmanns --- src/libs/utils/layoutbuilder.cpp | 5 +++++ src/libs/utils/layoutbuilder.h | 1 + src/plugins/lua/bindings/gui.cpp | 7 +++++++ src/plugins/lua/meta/gui.lua | 1 + 4 files changed, 14 insertions(+) diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index 43554d10465..efdf96aa4c6 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -887,6 +887,11 @@ void PushButton::setIconPath(const Utils::FilePath &iconPath) access(this)->setIcon(icon.icon()); } +void PushButton::setFlat(bool flat) +{ + access(this)->setFlat(flat); +} + void PushButton::onClicked(const std::function &func, QObject *guard) { QObject::connect(access(this), &QAbstractButton::clicked, guard, func); diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h index e66241c49e5..844bad00892 100644 --- a/src/libs/utils/layoutbuilder.h +++ b/src/libs/utils/layoutbuilder.h @@ -291,6 +291,7 @@ public: void setText(const QString &); void setIconPath(const Utils::FilePath &); + void setFlat(bool); void onClicked(const std::function &, QObject *guard); }; diff --git a/src/plugins/lua/bindings/gui.cpp b/src/plugins/lua/bindings/gui.cpp index 618adb8fead..02581a10edc 100644 --- a/src/plugins/lua/bindings/gui.cpp +++ b/src/plugins/lua/bindings/gui.cpp @@ -101,9 +101,16 @@ HAS_MEM_FUNC(setWindowFlags, hasSetWindowFlags); HAS_MEM_FUNC(setWidgetAttribute, hasSetWidgetAttribute); HAS_MEM_FUNC(setAutoFillBackground, hasSetAutoFillBackground); HAS_MEM_FUNC(setIconPath, hasSetIconPath); +HAS_MEM_FUNC(setFlat, hasSetFlat); template void setProperties(std::unique_ptr &item, const sol::table &children, QObject *guard) { + if constexpr (hasSetFlat::value) { + const auto flat = children.get>("flat"); + if (flat) + item->setFlat(*flat); + } + if constexpr (hasSetIconPath::value) { const auto iconPath = children.get>("iconPath"); if (iconPath) diff --git a/src/plugins/lua/meta/gui.lua b/src/plugins/lua/meta/gui.lua index 610c0a95ead..1d7f04c4678 100644 --- a/src/plugins/lua/meta/gui.lua +++ b/src/plugins/lua/meta/gui.lua @@ -33,6 +33,7 @@ gui.baseWidgetOptions = {} ---@field iconPath? FilePath The path to the icon of the widget, if applicable. Empty or not existent paths set null icon. (see [QIcon](https://doc.qt.io/qt-5/qicon.html#QIcon)) ---@field text? string The text of the widget, if applicable. ---@field value? integer The value of the widget, if applicable. +---@field flat? boolean A boolean, representing whether the widget should be flat, if applicable. ---@field [1]? Layout The layout of the widget, if applicable. gui.widgetOptions = {}