diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index 09e3a83520e..059e7294aea 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -339,17 +339,17 @@ void Layout::span(int cols, int rows) pendingItems.back().spanRows = rows; } -void Layout::noMargin() +void Layout::setNoMargins() { - customMargin({}); + setContentMargins({}); } -void Layout::normalMargin() +void Layout::setNormalMargins() { - customMargin({9, 9, 9, 9}); + setContentMargins({9, 9, 9, 9}); } -void Layout::customMargin(const QMargins &margin) +void Layout::setContentMargins(const QMargins &margin) { access(this)->setContentsMargins(margin); } @@ -467,11 +467,11 @@ void addToLayout(Layout *layout, const QString &inner) layout->addLayoutItem(item); } -void empty(Layout *iface) +void empty(Layout *layout) { LayoutItem item; item.empty = true; - iface->addLayoutItem(item); + layout->addLayoutItem(item); } void hr(Layout *layout) @@ -479,26 +479,26 @@ void hr(Layout *layout) layout->addLayoutItem(createHr()); } -void br(Layout *iface) +void br(Layout *layout) { - iface->flush(); + layout->flush(); } -void st(Layout *iface) +void st(Layout *layout) { LayoutItem item; item.stretch = 1; - iface->addLayoutItem(item); + layout->addLayoutItem(item); } -void noMargin(Layout *iface) +void noMargin(Layout *layout) { - iface->noMargin(); + layout->setNoMargins(); } -void normalMargin(Layout *iface) +void normalMargin(Layout *layout) { - iface->normalMargin(); + layout->setNormalMargins(); } QFormLayout *Layout::asForm() @@ -612,9 +612,9 @@ void Layout::flush_() const const_cast(this)->flush(); } -void withFormAlignment(Layout *iface) +void withFormAlignment(Layout *layout) { - iface->useFormAlignment = true; + layout->useFormAlignment = true; } // Flow @@ -672,7 +672,7 @@ Form::Form(std::initializer_list ps) flush(); } -void Layout::fieldGrowthPolicy(int policy) +void Layout::setFieldGrowthPolicy(int policy) { if (auto lt = asForm()) lt->setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy(policy)); @@ -699,7 +699,7 @@ Widget::Widget(std::initializer_list ps) apply(this, ps); } -void Widget::resize(int w, int h) +void Widget::setSize(int w, int h) { access(this)->resize(w, h); } @@ -724,19 +724,19 @@ void Widget::show() access(this)->show(); } -void Widget::noMargin(int) +void Widget::setNoMargins(int) { - customMargin({}); + setContentMargins({}); } -void Widget::normalMargin(int) +void Widget::setNormalMargins(int) { - customMargin({9, 9, 9, 9}); + setContentMargins({9, 9, 9, 9}); } -void Widget::customMargin(const QMargins &margin) +void Widget::setContentMargins(const QMargins &margins) { - access(this)->setContentsMargins(margin); + access(this)->setContentsMargins(margins); } QWidget *Widget::emerge() const @@ -979,7 +979,7 @@ void addToLayout(Layout *layout, const Span &inner) LayoutModifier spacing(int space) { - return [space](Layout *iface) { iface->setSpacing(space); }; + return [space](Layout *layout) { layout->setSpacing(space); }; } void addToLayout(Layout *layout, const Space &inner) diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h index 07a6b9478ef..3240ea85117 100644 --- a/src/libs/utils/layoutbuilder.h +++ b/src/libs/utils/layoutbuilder.h @@ -139,13 +139,16 @@ public: Layout(Implementation *w) { ptr = w; } void span(int cols, int rows); - void noMargin(); - void normalMargin(); - void customMargin(const QMargins &margin); + + void setNoMargins(); + void setNormalMargins(); + void setContentMargins(const QMargins &margin); void setColumnStretch(int cols, int rows); void setSpacing(int space); + void setFieldGrowthPolicy(int policy); void attachTo(QWidget *); + void addItem(I item); void addItems(std::initializer_list items); void addRow(std::initializer_list items); @@ -153,7 +156,6 @@ public: void flush(); void flush_() const; - void fieldGrowthPolicy(int policy); QWidget *emerge() const; void show() const; @@ -258,15 +260,15 @@ public: Widget(Implementation *w) { ptr = w; } QWidget *emerge() const; - void show(); - void resize(int, int); + void setLayout(const Layout &layout); + void setSize(int, int); void setWindowTitle(const QString &); void setToolTip(const QString &); - void noMargin(int = 0); - void normalMargin(int = 0); - void customMargin(const QMargins &margin); + void setNoMargins(int = 0); + void setNormalMargins(int = 0); + void setContentMargins(const QMargins &); }; class QTCREATOR_UTILS_EXPORT Label : public Widget @@ -439,69 +441,38 @@ void doit(Interface *x, IdId, auto p) // Setter dispatchers -class SizeId {}; -auto size(auto w, auto h) { return IdAndArg{SizeId{}, std::pair{w, h}}; } -void doit(auto x, SizeId, auto p) { x->resize(p->first, p->second); } +#define QTCREATOR_SETTER(name, setter) \ + class name##_TAG {}; \ + inline auto name(auto p) { return IdAndArg{name##_TAG{}, p}; } \ + inline void doit(auto x, name##_TAG, auto p) { x->setter(p); } -class TextId {}; -auto text(auto p) { return IdAndArg{TextId{}, p}; } -void doit(auto x, TextId, auto p) { x->setText(p); } +#define QTCREATOR_SETTER2(name, setter) \ + class name##_TAG {}; \ + inline auto name(auto p1, auto p2) { return IdAndArg{name##_TAG{}, std::pair{p1, p2}}; } \ + inline void doit(auto x, name##_TAG, auto p) { x->setter(p.first, p.second); } -class TitleId {}; -auto title(auto p) { return IdAndArg{TitleId{}, p}; } -void doit(auto x, TitleId, auto p) { x->setTitle(p); } +#define QTCREATOR_TYPED_SETTER(name, setter, type) \ + class name##_TAG {}; \ + inline auto name(type p) { return IdAndArg{name##_TAG{}, p}; } \ + inline void doit(auto x, name##_TAG, auto p) { x->setter(p); } -class TextFormatId {}; -auto textFormat(auto p) { return IdAndArg{TextFormatId{}, p}; } -void doit(auto x, TextFormatId, auto p) { x->setTextFormat(p); } +QTCREATOR_SETTER(fieldGrowthPolicy, setFieldGrowthPolicy); +QTCREATOR_SETTER(groupChecker, setGroupChecker); +QTCREATOR_SETTER(openExternalLinks, setOpenExternalLinks); +QTCREATOR_SETTER2(size, setSize) +QTCREATOR_SETTER(text, setText) +QTCREATOR_SETTER(textFormat, setTextFormat); +QTCREATOR_SETTER(textInteractionFlags, setTextInteractionFlags); +QTCREATOR_SETTER(title, setTitle) +QTCREATOR_SETTER(toolTip, setToolTip); +QTCREATOR_SETTER(windowTitle, setWindowTitle); +QTCREATOR_SETTER(wordWrap, setWordWrap); +QTCREATOR_SETTER2(columnStretch, setColumnStretch); +QTCREATOR_SETTER2(onClicked, onClicked); +QTCREATOR_SETTER2(onLinkHovered, onLinkHovered); +QTCREATOR_SETTER2(onTextChanged, onTextChanged); -class WordWrapId {}; -auto wordWrap(auto p) { return IdAndArg{WordWrapId{}, p}; } -void doit(auto x, WordWrapId, auto p) { x->setWordWrap(p); } - -class TextInteractionFlagId {}; -auto textInteractionFlags(auto p) { return IdAndArg{TextInteractionFlagId{}, p}; } -void doit(auto x, TextInteractionFlagId, auto p) { x->setTextInteractionFlags(p); } - -class OpenExternalLinksId {}; -auto openExternalLinks(auto p) { return IdAndArg{OpenExternalLinksId{}, p}; } -void doit(auto x, OpenExternalLinksId, auto p) { x->setOpenExternalLinks(p); } - -class OnLinkHoveredId {}; -auto onLinkHovered(auto p, QObject *guard) { return IdAndArg{OnLinkHoveredId{}, std::pair{p, guard}}; } -void doit(auto x, OnLinkHoveredId, auto p) { x->onLinkHovered(p.first, p.second); } - -class GroupCheckerId {}; -auto groupChecker(auto p) { return IdAndArg{GroupCheckerId{}, p}; } -void doit(auto x, GroupCheckerId, auto p) { x->setGroupChecker(p); } - -class ToolTipId {}; -auto toolTip(auto p) { return IdAndArg{ToolTipId{}, p}; } -void doit(auto x, ToolTipId, auto p) { x->setToolTip(p); } - -class WindowTitleId {}; -auto windowTitle(auto p) { return IdAndArg{WindowTitleId{}, p}; } -void doit(auto x, WindowTitleId, auto p) { x->setWindowTitle(p); } - -class OnTextChangedId {}; -auto onTextChanged(auto p) { return IdAndArg{OnTextChangedId{}, p}; } -void doit(auto x, OnTextChangedId, auto p) { x->onTextChanged(p); } - -class OnClickedId {}; -auto onClicked(auto p, auto guard) { return IdAndArg{OnClickedId{}, std::pair{p, guard}}; } -void doit(auto x, OnClickedId, auto p) { x->onClicked(p.first, p.second); } - -class CustomMarginId {}; -inline auto customMargin(const QMargins &p) { return IdAndArg{CustomMarginId{}, p}; } -void doit(auto x, CustomMarginId, auto p) { x->customMargin(p); } - -class FieldGrowthPolicyId {}; -inline auto fieldGrowthPolicy(auto p) { return IdAndArg{FieldGrowthPolicyId{}, p}; } -void doit(auto x, FieldGrowthPolicyId, auto p) { x->fieldGrowthPolicy(p); } - -class ColumnStretchId {}; -inline auto columnStretch(int column, int stretch) { return IdAndArg{ColumnStretchId{}, std::pair{column, stretch}}; } -void doit(auto x, ColumnStretchId, auto p) { x->setColumnStretch(p.first, p.second); } +QTCREATOR_TYPED_SETTER(customMargin, setContentMargins, const QMargins &); // Nesting dispatchers diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index e992dc8e9ea..aacd273f63e 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -605,7 +605,7 @@ QWidget *CMakeBuildStep::createConfigWidget() if (!isCleanStep() && !m_buildPreset.isEmpty()) createAndAddEnvironmentWidgets(builder); - builder.noMargin(); + builder.setNoMargins(); auto widget = builder.emerge(); updateDetails(); diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp index dc1919ce8b0..4bd1dec9675 100644 --- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp +++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp @@ -72,7 +72,7 @@ DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect(Target *target) details->setState(DetailsWidget::Expanded); auto innerPane = new QWidget; details->setWidget(innerPane); - builder.noMargin(); + builder.setNoMargins(); builder.attachTo(innerPane); const auto setSummaryText = [this, details] { diff --git a/src/plugins/gitlab/gitlaboptionspage.cpp b/src/plugins/gitlab/gitlaboptionspage.cpp index 03d078ba14e..181d5fba829 100644 --- a/src/plugins/gitlab/gitlaboptionspage.cpp +++ b/src/plugins/gitlab/gitlaboptionspage.cpp @@ -102,7 +102,7 @@ GitLabServerWidget::GitLabServerWidget(Mode m, QWidget *parent) m_token, br, m_port, br, m_secure, - m == Edit ? &Layout::normalMargin : &Layout::noMargin + m == Edit ? &Layout::setNormalMargins : &Layout::setNoMargins }, }.attachTo(this); } diff --git a/src/plugins/lua/bindings/gui.cpp b/src/plugins/lua/bindings/gui.cpp index 7e236972330..aaba86f461c 100644 --- a/src/plugins/lua/bindings/gui.cpp +++ b/src/plugins/lua/bindings/gui.cpp @@ -306,8 +306,8 @@ void addGuiModule() }), "show", &Widget::show, - "resize", - &Widget::resize, + "setSize", + &Widget::setSize, sol::base_classes, sol::bases()); diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 6b60b659215..a69133b2190 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -326,7 +326,7 @@ NamedWidget *BuildConfiguration::createConfigWidget() } Layouting::Form form; - form.noMargin(); + form.setNoMargins(); for (BaseAspect *aspect : aspects()) { if (aspect->isVisible()) { form.addItem(aspect); diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index 9b28cd08b23..a290fc0c69a 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -113,7 +113,7 @@ QWidget *BuildStep::doCreateConfigWidget() QWidget *BuildStep::createConfigWidget() { Layouting::Form form; - form.noMargin(); + form.setNoMargins(); for (BaseAspect *aspect : std::as_const(*this)) { if (aspect->isVisible()) { form.addItem(aspect); diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp index 16e6f2c4e72..7bf7a1f6df4 100644 --- a/src/plugins/projectexplorer/makestep.cpp +++ b/src/plugins/projectexplorer/makestep.cpp @@ -313,7 +313,7 @@ QWidget *MakeStep::createConfigWidget() if (m_disablingForSubDirsSupported) builder.addRow({m_disabledForSubdirsAspect}); builder.addRow({m_buildTargetsAspect}); - builder.noMargin(); + builder.setNoMargins(); auto widget = builder.emerge(); diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 3aa2457ef95..a0c3aa2e6dd 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -201,7 +201,7 @@ bool RunConfiguration::isEnabled(Utils::Id) const QWidget *RunConfiguration::createConfigurationWidget() { Layouting::Form form; - form.noMargin(); + form.setNoMargins(); for (BaseAspect *aspect : std::as_const(*this)) { if (aspect->isVisible()) { form.addItem(aspect); diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index d1de44d1f57..65b79a7238a 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -428,7 +428,7 @@ QWidget *QMakeStep::createConfigWidget() builder.addRow({userArguments}); builder.addRow({effectiveCall}); builder.addRow({abisLabel, abisListWidget}); - builder.noMargin(); + builder.setNoMargins(); auto widget = builder.emerge(); qmakeBuildConfigChanged();