From e206ed5236c6ca1846c7a9add8976fb8cac07672 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 9 May 2023 18:08:46 +0200 Subject: [PATCH] Core: Introduce a IOptionsPage::setLayout(const LayoutItem) Helps to move the lambda setup off the user code. Change-Id: I0de43f53fc9018913340e81b5c1e8e69df067bd6 Reviewed-by: Alessandro Portale --- src/plugins/coreplugin/dialogs/ioptionspage.cpp | 9 +++++++++ src/plugins/coreplugin/dialogs/ioptionspage.h | 3 +++ 2 files changed, 12 insertions(+) diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.cpp b/src/plugins/coreplugin/dialogs/ioptionspage.cpp index a19458c5fbb..a0e8fd99225 100644 --- a/src/plugins/coreplugin/dialogs/ioptionspage.cpp +++ b/src/plugins/coreplugin/dialogs/ioptionspage.cpp @@ -9,6 +9,7 @@ #include #include +#include #include #include @@ -204,6 +205,14 @@ void IOptionsPage::setLayouter(const std::function &layouter) m_layouter = layouter; } +void IOptionsPage::setLayout(const Layouting::LayoutItem &layout) +{ + using namespace Layouting; + m_layouter = [layout](QWidget *widget) { + Column { Row { Column { layout, st }, st } }.attachTo(widget); + }; +} + /*! \fn void Core::IOptionsPage::setId(Utils::Id id) diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.h b/src/plugins/coreplugin/dialogs/ioptionspage.h index 31d8e399600..a6263de97df 100644 --- a/src/plugins/coreplugin/dialogs/ioptionspage.h +++ b/src/plugins/coreplugin/dialogs/ioptionspage.h @@ -16,6 +16,8 @@ #include +namespace Layouting { class LayoutItem; }; + namespace Utils { class AspectContainer; }; namespace Core { @@ -73,6 +75,7 @@ protected: void setCategoryIconPath(const Utils::FilePath &categoryIconPath); void setSettings(Utils::AspectContainer *settings); void setLayouter(const std::function &layouter); + void setLayout(const Layouting::LayoutItem &layout); // Used in FontSettingsPage. FIXME? QPointer m_widget; // Used in conjunction with m_widgetCreator