From b97c495d2be36915bf54da246f297e7d788a0f84 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 26 Jul 2022 11:35:19 +0200 Subject: [PATCH] Utils: Make the second parameter to LayoutBuilder::attach() an enum More explicit and more potential options (e.g. "treat grid as form") than a bool. Change-Id: I89413efe30410160c38b0e524ba64288dde2332e Reviewed-by: Eike Ziller --- src/libs/utils/layoutbuilder.cpp | 21 +++++++------------ src/libs/utils/layoutbuilder.h | 15 ++++++++++--- src/plugins/beautifier/configurationpanel.cpp | 2 +- .../clangtoolsprojectsettingswidget.cpp | 2 +- .../cmakebuildconfiguration.cpp | 2 +- .../debuggerrunconfigurationaspect.cpp | 2 +- src/plugins/fakevim/fakevimplugin.cpp | 2 +- src/plugins/gitlab/gitlaboptionspage.cpp | 6 ++++-- src/plugins/nim/project/nimbletaskstep.cpp | 2 +- .../projectexplorer/buildconfiguration.cpp | 2 +- src/plugins/projectexplorer/buildstep.cpp | 2 +- .../codestylesettingspropertiespage.cpp | 2 +- .../editorsettingspropertiespage.cpp | 2 +- src/plugins/projectexplorer/makestep.cpp | 2 +- .../projectexplorer/runconfiguration.cpp | 2 +- src/plugins/python/pythonsettings.cpp | 2 +- .../qbsprojectmanager/qbsbuildstep.cpp | 2 +- src/plugins/qmakeprojectmanager/qmakestep.cpp | 2 +- src/plugins/qtsupport/qtoptionspage.cpp | 2 +- .../texteditor/behaviorsettingswidget.cpp | 2 +- .../texteditor/codestyleselectorwidget.cpp | 3 +-- 21 files changed, 42 insertions(+), 37 deletions(-) diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index 92d051f7a9c..6d7959b199d 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -137,12 +137,6 @@ QLayout *LayoutBuilder::createLayout() const return layout; } -static void setMargins(bool on, QLayout *layout) -{ - if (!on) - layout->setContentsMargins(0, 0, 0, 0); -} - static QWidget *widgetForItem(QLayoutItem *item) { if (QWidget *w = item->widget()) @@ -384,13 +378,14 @@ LayoutBuilder &LayoutBuilder::addItem(const LayoutItem &item) return *this; } -void LayoutBuilder::doLayout(QWidget *parent, bool withMargins) const +void LayoutBuilder::doLayout(QWidget *parent, Layouting::AttachType attachType) const { QLayout *layout = createLayout(); parent->setLayout(layout); doLayoutHelper(layout, m_items); - setMargins(withMargins, layout); + if (attachType == Layouting::WithoutMargins) + layout->setContentsMargins(0, 0, 0, 0); } /*! @@ -408,15 +403,15 @@ LayoutBuilder &LayoutBuilder::addItems(const LayoutItems &items) This operation can only be performed once per LayoutBuilder instance. */ -void LayoutBuilder::attachTo(QWidget *w, bool withMargins) const +void LayoutBuilder::attachTo(QWidget *w, Layouting::AttachType attachType) const { - doLayout(w, withMargins); + doLayout(w, attachType); } -QWidget *LayoutBuilder::emerge(bool withMargins) +QWidget *LayoutBuilder::emerge(Layouting::AttachType attachType) { auto w = new QWidget; - doLayout(w, withMargins); + doLayout(w, attachType); return w; } @@ -481,7 +476,7 @@ Group::Group(const LayoutBuilder &innerLayout) Group::Group(const LayoutBuilder::Setters &setters, const LayoutBuilder &innerLayout) { widget = new QGroupBox; - innerLayout.attachTo(widget, true); + innerLayout.attachTo(widget, AttachType::WithMargins); for (const LayoutBuilder::Setter &func : setters) func(widget); } diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h index 31642f3dac1..c36076e99e7 100644 --- a/src/libs/utils/layoutbuilder.h +++ b/src/libs/utils/layoutbuilder.h @@ -43,6 +43,15 @@ namespace Utils { class BaseAspect; class BoolAspect; +namespace Layouting { + +enum AttachType { + WithMargins, + WithoutMargins, +}; + +} // Layouting + class QTCREATOR_UTILS_EXPORT LayoutBuilder { public: @@ -111,8 +120,8 @@ public: LayoutType layoutType() const { return m_layoutType; } - void attachTo(QWidget *w, bool withMargins = true) const; - QWidget *emerge(bool withMargins = true); + void attachTo(QWidget *w, Layouting::AttachType attachType = Layouting::WithMargins) const; + QWidget *emerge(Layouting::AttachType attachType = Layouting::WithMargins); class QTCREATOR_UTILS_EXPORT Space : public LayoutItem { @@ -157,7 +166,7 @@ protected: explicit LayoutBuilder(); // Adds to existing layout. QLayout *createLayout() const; - void doLayout(QWidget *parent, bool withMargins) const; + void doLayout(QWidget *parent, Layouting::AttachType attachType) const; LayoutItems m_items; LayoutType m_layoutType; diff --git a/src/plugins/beautifier/configurationpanel.cpp b/src/plugins/beautifier/configurationpanel.cpp index 85bbc2a402b..d2eb5860665 100644 --- a/src/plugins/beautifier/configurationpanel.cpp +++ b/src/plugins/beautifier/configurationpanel.cpp @@ -54,7 +54,7 @@ ConfigurationPanel::ConfigurationPanel(QWidget *parent) m_edit, m_remove, add - }.attachTo(this, false); + }.attachTo(this, WithoutMargins); connect(add, &QPushButton::clicked, this, &ConfigurationPanel::add); connect(m_edit, &QPushButton::clicked, this, &ConfigurationPanel::edit); diff --git a/src/plugins/clangtools/clangtoolsprojectsettingswidget.cpp b/src/plugins/clangtools/clangtoolsprojectsettingswidget.cpp index d137d24af67..21085a5ad64 100644 --- a/src/plugins/clangtools/clangtoolsprojectsettingswidget.cpp +++ b/src/plugins/clangtools/clangtoolsprojectsettingswidget.cpp @@ -105,7 +105,7 @@ ClangToolsProjectSettingsWidget::ClangToolsProjectSettingsWidget(ProjectExplorer } } } - }.attachTo(this, false); + }.attachTo(this, WithoutMargins); setUseGlobalSettings(m_projectSettings->useGlobalSettings()); onGlobalCustomChanged(); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 196c6ffdbde..7392afebfd1 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -363,7 +363,7 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) : } } }.setSpacing(0) - }.attachTo(details, false); + }.attachTo(details, WithoutMargins); updateAdvancedCheckBox(); setError(m_buildSystem->error()); diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp index 66bf54dffdf..81b4b6ad479 100644 --- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp +++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp @@ -181,7 +181,7 @@ DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect(Target *target) static const QByteArray env = qgetenv("QTC_DEBUGGER_MULTIPROCESS"); if (env.toInt()) builder.addRow(m_multiProcessAspect); - return builder.emerge(false); + return builder.emerge(Layouting::WithoutMargins); }); addDataExtractor(this, &DebuggerRunConfigurationAspect::useCppDebugger, &Data::useCppDebugger); diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index 1e85113c1f5..843b27dec9b 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -450,7 +450,7 @@ void FakeVimOptionPage::layoutPage(QWidget *widget) Row { copyTextEditorSettings, setQtStyle, setPlainStyle, st }, st - }.attachTo(widget, true); + }.attachTo(widget); s.vimRcPath.setEnabler(&s.readVimRc); diff --git a/src/plugins/gitlab/gitlaboptionspage.cpp b/src/plugins/gitlab/gitlaboptionspage.cpp index c7067c0a18d..d9383aab52f 100644 --- a/src/plugins/gitlab/gitlaboptionspage.cpp +++ b/src/plugins/gitlab/gitlaboptionspage.cpp @@ -45,6 +45,8 @@ #include #include +using namespace Utils; + namespace GitLab { static bool hostValid(const QString &host) @@ -92,7 +94,7 @@ GitLabServerWidget::GitLabServerWidget(Mode m, QWidget *parent) m_secure.setDefaultValue(true); m_secure.setEnabled(m == Edit); - using namespace Utils::Layouting; + using namespace Layouting; Row { Form { @@ -102,7 +104,7 @@ GitLabServerWidget::GitLabServerWidget(Mode m, QWidget *parent) m_port, m_secure }, - }.attachTo(this, m == Edit); + }.attachTo(this, m == Edit ? WithMargins : WithoutMargins); } GitLabServer GitLabServerWidget::gitLabServer() const diff --git a/src/plugins/nim/project/nimbletaskstep.cpp b/src/plugins/nim/project/nimbletaskstep.cpp index 9971f7920d0..e77e2ec2129 100644 --- a/src/plugins/nim/project/nimbletaskstep.cpp +++ b/src/plugins/nim/project/nimbletaskstep.cpp @@ -112,7 +112,7 @@ QWidget *NimbleTaskStep::createConfigWidget() auto widget = Form { m_taskArgs, tr("Tasks:"), taskList - }.emerge(false); + }.emerge(WithoutMargins); auto buildSystem = dynamic_cast(this->buildSystem()); QTC_ASSERT(buildSystem, return widget); diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 0a5abd65d19..6ecd8e456d2 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -350,7 +350,7 @@ NamedWidget *BuildConfiguration::createConfigWidget() if (aspect->isVisible()) aspect->addToLayout(builder.finishRow()); } - builder.attachTo(widget, false); + builder.attachTo(widget, Layouting::WithoutMargins); return named; } diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index 9c5a4b97619..fc43f416818 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -185,7 +185,7 @@ QWidget *BuildStep::createConfigWidget() if (aspect->isVisible()) aspect->addToLayout(builder.finishRow()); } - auto widget = builder.emerge(false); + auto widget = builder.emerge(Layouting::WithoutMargins); if (m_addMacroExpander) VariableChooser::addSupportForChildWidgets(widget, macroExpander()); diff --git a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp index 6688c67f9b1..74d5459da12 100644 --- a/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/codestylesettingspropertiespage.cpp @@ -72,7 +72,7 @@ CodeStyleSettingsWidget::CodeStyleSettingsWidget(Project *project) Column { Row { new QLabel(tr("Language:")), languageComboBox, st }, stackedWidget - }.attachTo(this, false); + }.attachTo(this, WithoutMargins); } } // ProjectExplorer::Internal diff --git a/src/plugins/projectexplorer/editorsettingspropertiespage.cpp b/src/plugins/projectexplorer/editorsettingspropertiespage.cpp index 4bccf6ebc1b..475fa96db3d 100644 --- a/src/plugins/projectexplorer/editorsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/editorsettingspropertiespage.cpp @@ -80,7 +80,7 @@ EditorSettingsWidget::EditorSettingsWidget(Project *project) : m_project(project m_displaySettings, m_behaviorSettings, st, - }.attachTo(this, false); + }.attachTo(this, WithoutMargins); const EditorConfiguration *config = m_project->editorConfiguration(); settingsToUi(config); diff --git a/src/plugins/projectexplorer/makestep.cpp b/src/plugins/projectexplorer/makestep.cpp index b3e02633e16..da3e2664d57 100644 --- a/src/plugins/projectexplorer/makestep.cpp +++ b/src/plugins/projectexplorer/makestep.cpp @@ -354,7 +354,7 @@ QWidget *MakeStep::createConfigWidget() builder.addRow(m_disabledForSubdirsAspect); builder.addRow(m_buildTargetsAspect); - auto widget = builder.emerge(false); + auto widget = builder.emerge(Layouting::WithoutMargins); VariableChooser::addSupportForChildWidgets(widget, macroExpander()); diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index f1e2d92c839..f5547d2f32b 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -245,7 +245,7 @@ QWidget *RunConfiguration::createConfigurationWidget() aspect->addToLayout(builder.finishRow()); } - auto widget = builder.emerge(false); + auto widget = builder.emerge(Layouting::WithoutMargins); VariableChooser::addSupportForChildWidgets(widget, &m_expander); diff --git a/src/plugins/python/pythonsettings.cpp b/src/plugins/python/pythonsettings.cpp index dd5ed4c24a3..41709a74b18 100644 --- a/src/plugins/python/pythonsettings.cpp +++ b/src/plugins/python/pythonsettings.cpp @@ -114,7 +114,7 @@ public: Form { Tr::tr("Name:"), m_name, br, Tr::tr("Executable"), m_executable - }.attachTo(this, false); + }.attachTo(this, WithoutMargins); } void updateInterpreter(const Interpreter &interpreter) diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index ae3a26c0474..f2788b48145 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -687,7 +687,7 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) builder.addRow({tr("Installation directory:"), installDirChooser}); builder.addRow(m_qbsStep->m_commandLine); - builder.attachTo(this, false); + builder.attachTo(this, Layouting::WithoutMargins); propertyEdit->setToolTip(tr("Properties to pass to the project.")); defaultInstallDirCheckBox->setText(tr("Use default location")); diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index 7b6eddc5670..55c7ba01f19 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -529,7 +529,7 @@ QWidget *QMakeStep::createConfigWidget() builder.addRow(m_userArgs); builder.addRow(m_effectiveCall); builder.addRow({abisLabel, abisListWidget}); - auto widget = builder.emerge(false); + auto widget = builder.emerge(Layouting::WithoutMargins); qmakeBuildConfigChanged(); diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp index a5af4d83d79..8777e9c47d3 100644 --- a/src/plugins/qtsupport/qtoptionspage.cpp +++ b/src/plugins/qtsupport/qtoptionspage.cpp @@ -290,7 +290,7 @@ QtOptionsPageWidget::QtOptionsPageWidget() Tr::tr("Name:"), m_nameEdit, br, Tr::tr("qmake path:"), Row { m_qmakePath, m_editPathPushButton }, br, Span(2, m_errorLabel) - }.attachTo(versionInfoWidget, false); + }.attachTo(versionInfoWidget, WithoutMargins); // clang-format on m_formLayout = qobject_cast(versionInfoWidget->layout()); diff --git a/src/plugins/texteditor/behaviorsettingswidget.cpp b/src/plugins/texteditor/behaviorsettingswidget.cpp index 16bc59419af..4c9c051d60f 100644 --- a/src/plugins/texteditor/behaviorsettingswidget.cpp +++ b/src/plugins/texteditor/behaviorsettingswidget.cpp @@ -257,7 +257,7 @@ BehaviorSettingsWidget::BehaviorSettingsWidget(QWidget *parent) Row { Column { d->tabPreferencesWidget, d->groupBoxTyping, st }, Column { d->groupBoxStorageSettings, d->groupBoxEncodings, d->groupBoxMouse, st } - }.attachTo(this, false); + }.attachTo(this, WithoutMargins); connect(d->cleanWhitespace, &QCheckBox::toggled, d->inEntireDocument, &QCheckBox::setEnabled); diff --git a/src/plugins/texteditor/codestyleselectorwidget.cpp b/src/plugins/texteditor/codestyleselectorwidget.cpp index 3d0aeb9207c..9d3d4b992ca 100644 --- a/src/plugins/texteditor/codestyleselectorwidget.cpp +++ b/src/plugins/texteditor/codestyleselectorwidget.cpp @@ -185,7 +185,6 @@ CodeStyleSelectorWidget::CodeStyleSelectorWidget(ICodeStylePreferencesFactory *f m_importButton = new QPushButton(tr("Import...")); m_importButton->setEnabled(false); - using namespace Utils::Layouting; Column { @@ -202,7 +201,7 @@ CodeStyleSelectorWidget::CodeStyleSelectorWidget(ICodeStylePreferencesFactory *f m_importButton }, - }.attachTo(this, false); + }.attachTo(this, WithoutMargins); connect(m_delegateComboBox, &QComboBox::activated, this, &CodeStyleSelectorWidget::slotComboBoxActivated);