diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index 0ae96b90799..0a18c72ef79 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -740,6 +740,26 @@ void Widget::show() access(this)->show(); } +bool Widget::isVisible() const +{ + return access(this)->isVisible(); +} + +bool Widget::isEnabled() const +{ + return access(this)->isEnabled(); +} + +void Widget::setVisible(bool visible) +{ + access(this)-> setVisible(visible); +} + +void Widget::setEnabled(bool enabled) +{ + access(this)->setEnabled(enabled); +} + void Widget::setNoMargins(int) { setContentsMargins(0, 0, 0, 0); diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h index cbe29b55d02..5019f2e8232 100644 --- a/src/libs/utils/layoutbuilder.h +++ b/src/libs/utils/layoutbuilder.h @@ -231,6 +231,12 @@ public: QWidget *emerge() const; void show(); + bool isVisible() const; + bool isEnabled() const; + + void setVisible(bool); + void setEnabled(bool); + void setAutoFillBackground(bool); void setLayout(const Layout &layout); void setSize(int, int); diff --git a/src/plugins/lua/bindings/gui.cpp b/src/plugins/lua/bindings/gui.cpp index ca26c77d8d5..9a5c2de6700 100644 --- a/src/plugins/lua/bindings/gui.cpp +++ b/src/plugins/lua/bindings/gui.cpp @@ -430,6 +430,10 @@ void setupGuiModule() &Widget::activateWindow, "close", &Widget::close, + "visible", + sol::property(&Widget::isVisible, &Widget::setVisible), + "enabled", + sol::property(&Widget::isEnabled, &Widget::setEnabled), sol::base_classes, sol::bases()); diff --git a/src/plugins/lua/meta/gui.lua b/src/plugins/lua/meta/gui.lua index 1d7f04c4678..9b34883f1b6 100644 --- a/src/plugins/lua/meta/gui.lua +++ b/src/plugins/lua/meta/gui.lua @@ -12,6 +12,8 @@ gui.layout = {} ---The base class of all widget classes, an empty widget itself. ---@class Widget : Object +---@field visible bool Whether the widget is visible or not. +---@field enabled bool Whether the widget is enabled or not. gui.widget = {} ---@alias LayoutChild string|BaseAspect|Layout|Widget|function