From 5f047c3c1b1b1682bc88dbe4ad2332eff4d34def Mon Sep 17 00:00:00 2001 From: Artur Twardy Date: Wed, 15 Jan 2025 10:53:42 +0100 Subject: [PATCH] Lua: Add minimumWidth property to WidgetOptions Change-Id: I7c7ed3fc8b5ac907f9e6fc7ea161d1b263c9a5de Reviewed-by: 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 3caeca5664d..3f403418a50 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -792,6 +792,11 @@ void Widget::setCursor(Qt::CursorShape shape) access(this)->setCursor(shape); } +void Widget::setMinimumWidth(int minw) +{ + access(this)->setMinimumWidth(minw); +} + void Widget::setSizePolicy(const QSizePolicy &policy) { access(this)->setSizePolicy(policy); diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h index f195f30ca06..93be17bb740 100644 --- a/src/libs/utils/layoutbuilder.h +++ b/src/libs/utils/layoutbuilder.h @@ -261,6 +261,7 @@ public: void setNormalMargins(int = 0); void setContentsMargins(int left, int top, int right, int bottom); void setCursor(Qt::CursorShape shape); + void setMinimumWidth(int); void activateWindow(); void close(); diff --git a/src/plugins/lua/bindings/gui.cpp b/src/plugins/lua/bindings/gui.cpp index 17f6016c7ae..9ebedea3ecc 100644 --- a/src/plugins/lua/bindings/gui.cpp +++ b/src/plugins/lua/bindings/gui.cpp @@ -114,6 +114,7 @@ CREATE_HAS_FUNC(setVisible, bool()) CREATE_HAS_FUNC(setIcon, Utils::Icon()); CREATE_HAS_FUNC(setContentsMargins, int(), int(), int(), int()); CREATE_HAS_FUNC(setCursor, Qt::CursorShape()) +CREATE_HAS_FUNC(setMinimumWidth, int()); template void setProperties(std::unique_ptr &item, const sol::table &children, QObject *guard) @@ -130,6 +131,12 @@ void setProperties(std::unique_ptr &item, const sol::table &children, QObject item->setCursor(*cursor); } + if constexpr (has_setMinimumWidth) { + const auto minw = children.get>("minimumWidth"); + if (minw) + item->setMinimumWidth(*minw); + } + if constexpr (has_setVisible) { const auto visible = children.get>("visible"); if (visible) diff --git a/src/plugins/lua/meta/gui.lua b/src/plugins/lua/meta/gui.lua index a12173f96a8..661b86a7024 100644 --- a/src/plugins/lua/meta/gui.lua +++ b/src/plugins/lua/meta/gui.lua @@ -41,6 +41,7 @@ gui.baseWidgetOptions = {} ---@field fixedSize? integer[] Two integers representing the width and height ---@field contentMargins? integer[] Four integers represending left, top, right and bottom margins. ---@field cursor? CursorShape The cursor shape for the widget. +---@field minimumWidth? integer The minimum width in pixels. gui.widgetOptions = {} ---@param options WidgetOptions