From 71a82b32b8a1578f800e14ff9e3da640429481b1 Mon Sep 17 00:00:00 2001 From: Artur Twardy Date: Tue, 22 Oct 2024 15:08:47 +0200 Subject: [PATCH] Lua: Add fixedSize to builder property Change-Id: I5779b91985659899cd17164d91217bce7a5800b9 Reviewed-by: Marcus Tillmanns --- src/libs/utils/layoutbuilder.cpp | 5 +++++ src/libs/utils/layoutbuilder.h | 2 ++ src/plugins/lua/bindings/gui.cpp | 7 +++++++ src/plugins/lua/meta/gui.lua | 1 + 4 files changed, 15 insertions(+) diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index e25fef7c95e..8e2abc5cbe1 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -709,6 +709,11 @@ void Widget::setSize(int w, int h) access(this)->resize(w, h); } +void Widget::setFixedSize(int w, int h) +{ + access(this)->setFixedSize(w, h); +} + void Widget::setAutoFillBackground(bool on) { access(this)->setAutoFillBackground(on); diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h index cc247c1d809..f6e203578b8 100644 --- a/src/libs/utils/layoutbuilder.h +++ b/src/libs/utils/layoutbuilder.h @@ -248,6 +248,7 @@ public: void setAutoFillBackground(bool); void setLayout(const Layout &layout); void setSize(int, int); + void setFixedSize(int, int); void setWindowTitle(const QString &); void setWindowFlags(Qt::WindowFlags); void setWidgetAttribute(Qt::WidgetAttribute, bool on); @@ -523,6 +524,7 @@ QTC_DEFINE_BUILDER_SETTER(autoFillBackground, setAutoFillBackground); QTC_DEFINE_BUILDER_SETTER(readOnly, setReadOnly); QTC_DEFINE_BUILDER_SETTER(markdown, setMarkdown); QTC_DEFINE_BUILDER_SETTER(basePath, setBasePath); +QTC_DEFINE_BUILDER_SETTER(fixedSize, setFixedSize); // Nesting dispatchers diff --git a/src/plugins/lua/bindings/gui.cpp b/src/plugins/lua/bindings/gui.cpp index fd437655f6f..437e716c067 100644 --- a/src/plugins/lua/bindings/gui.cpp +++ b/src/plugins/lua/bindings/gui.cpp @@ -116,6 +116,7 @@ HAS_MEM_FUNC(setMinimumHeight, hasSetMinimumHeight); HAS_MEM_FUNC(onReturnPressed, hasOnReturnPressed); HAS_MEM_FUNC(onRightSideIconClicked, hasOnRightSideIconClicked); HAS_MEM_FUNC(setTextInteractionFlags, hasSetTextInteractionFlags); +HAS_MEM_FUNC(setFixedSize, hasSetFixedSize); template void setProperties(std::unique_ptr &item, const sol::table &children, QObject *guard) { @@ -126,6 +127,12 @@ void setProperties(std::unique_ptr &item, const sol::table &children, QObject } } + if constexpr (hasSetFixedSize::value) { + sol::optional size = children.get>("fixedSize"); + if (size) + item->setFixedSize(size->width(), size->height()); + } + if constexpr (hasSetWordWrap::value) { const auto wrap = children.get>("wordWrap"); if (wrap) diff --git a/src/plugins/lua/meta/gui.lua b/src/plugins/lua/meta/gui.lua index 1956b42d852..d2487eda713 100644 --- a/src/plugins/lua/meta/gui.lua +++ b/src/plugins/lua/meta/gui.lua @@ -37,6 +37,7 @@ gui.baseWidgetOptions = {} ---@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. +---@field fixedSize? integer[] Two integers representing the width and height gui.widgetOptions = {} ---@param options WidgetOptions