diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index ea4a2f1848a..baf80e3fe7f 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -1423,6 +1423,16 @@ void BoolAspect::addToLayout(Layouting::LayoutBuilder &builder) this, &BoolAspect::volatileValueChanged); } +std::function BoolAspect::groupChecker() +{ + return [this](QObject *target) { + auto groupBox = qobject_cast(target); + QTC_ASSERT(groupBox, return); + registerSubWidget(groupBox); + d->m_groupBox = d->m_groupBox; + }; +} + QAction *BoolAspect::action() { if (hasAction()) @@ -1515,12 +1525,6 @@ void BoolAspect::setLabelPlacement(BoolAspect::LabelPlacement labelPlacement) d->m_labelPlacement = labelPlacement; } -void BoolAspect::setHandlesGroup(QGroupBox *box) -{ - registerSubWidget(box); - d->m_groupBox = box; -} - /*! \class Utils::SelectionAspect \inmodule QtCreator diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 81a67eb5d5d..9950fbef61a 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -9,22 +9,16 @@ #include "macroexpander.h" #include "pathchooser.h" -#include - #include #include #include QT_BEGIN_NAMESPACE class QAction; -class QGroupBox; class QSettings; QT_END_NAMESPACE -namespace Layouting { -class LayoutBuilder; -class LayoutItem; -} // Layouting +namespace Layouting { class LayoutBuilder; } namespace Utils { @@ -226,6 +220,7 @@ public: }; void addToLayout(Layouting::LayoutBuilder &builder) override; + std::function groupChecker(); QAction *action() override; @@ -242,7 +237,6 @@ public: void setLabel(const QString &labelText, LabelPlacement labelPlacement = LabelPlacement::InExtraLabel); void setLabelPlacement(LabelPlacement labelPlacement); - void setHandlesGroup(QGroupBox *box); signals: void valueChanged(bool newValue); diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index 9308ba96ce4..c47be9778db 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -3,7 +3,6 @@ #include "layoutbuilder.h" -#include "aspects.h" #include "qtcassert.h" #include @@ -471,17 +470,12 @@ TabWidget::TabWidget(QTabWidget *tabWidget, std::initializer_list tabs) // "Properties" -LayoutItem::Setter title(const QString &title, Utils::BoolAspect *checker) +LayoutItem::Setter title(const QString &title) { - return [title, checker](QObject *target) { + return [title](QObject *target) { if (auto groupBox = qobject_cast(target)) { groupBox->setTitle(title); groupBox->setObjectName(title); - if (checker) { - groupBox->setCheckable(true); - groupBox->setChecked(checker->value()); - checker->setHandlesGroup(groupBox); - } } else { QTC_CHECK(false); } diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h index 06f0ae525d0..0e24d1d2ec4 100644 --- a/src/libs/utils/layoutbuilder.h +++ b/src/libs/utils/layoutbuilder.h @@ -24,8 +24,6 @@ class QTextEdit; class QWidget; QT_END_NAMESPACE -namespace Utils { class BoolAspect; } - namespace Layouting { enum AttachType { @@ -191,9 +189,7 @@ QTCREATOR_UTILS_EXPORT extern HorizontalRule hr; // "Properties" -QTCREATOR_UTILS_EXPORT LayoutItem::Setter title(const QString &title, - Utils::BoolAspect *checker = nullptr); - +QTCREATOR_UTILS_EXPORT LayoutItem::Setter title(const QString &title); QTCREATOR_UTILS_EXPORT LayoutItem::Setter text(const QString &text); QTCREATOR_UTILS_EXPORT LayoutItem::Setter tooltip(const QString &toolTip); QTCREATOR_UTILS_EXPORT LayoutItem::Setter onClicked(const std::function &func, diff --git a/src/plugins/autotest/ctest/ctestsettings.cpp b/src/plugins/autotest/ctest/ctestsettings.cpp index 69ad17d43f2..3fa9fadadee 100644 --- a/src/plugins/autotest/ctest/ctestsettings.cpp +++ b/src/plugins/autotest/ctest/ctestsettings.cpp @@ -133,11 +133,13 @@ CTestSettingsPage::CTestSettingsPage(CTestSettings *settings, Utils::Id settings Row {s.stopOnFailure}, br, Row {s.outputMode}, br, Group { - title(Tr::tr("Repeat tests"), &s.repeat), + title(Tr::tr("Repeat tests")), + s.repeat.groupChecker(), Row {s.repetitionMode, s.repetitionCount}, }, br, Group { - title(Tr::tr("Run in parallel"), &s.parallel), + title(Tr::tr("Run in parallel")), + s.parallel.groupChecker(), Column { Row {s.jobs}, br, Row {s.testLoad, s.threshold} diff --git a/src/plugins/clangformat/clangformatchecks.cpp b/src/plugins/clangformat/clangformatchecks.cpp index 1ec64e7a379..6027e600d70 100644 --- a/src/plugins/clangformat/clangformatchecks.cpp +++ b/src/plugins/clangformat/clangformatchecks.cpp @@ -15,8 +15,6 @@ #include #include -using namespace Utils; - using namespace ClangFormat; ClangFormatChecks::ClangFormatChecks(QWidget *parent) diff --git a/src/plugins/cppeditor/cppquickfixsettingswidget.cpp b/src/plugins/cppeditor/cppquickfixsettingswidget.cpp index c7aabdf6708..ce7b4aba727 100644 --- a/src/plugins/cppeditor/cppquickfixsettingswidget.cpp +++ b/src/plugins/cppeditor/cppquickfixsettingswidget.cpp @@ -20,8 +20,6 @@ #include #include -using namespace Utils; - namespace CppEditor::Internal { class LineCountSpinBox : public QWidget diff --git a/src/plugins/macros/savedialog.cpp b/src/plugins/macros/savedialog.cpp index 3d8f7d6ada4..cb45f96da03 100644 --- a/src/plugins/macros/savedialog.cpp +++ b/src/plugins/macros/savedialog.cpp @@ -12,8 +12,6 @@ #include #include -using namespace Utils; - namespace Macros::Internal { SaveDialog::SaveDialog(QWidget *parent) : diff --git a/src/plugins/mercurial/revertdialog.cpp b/src/plugins/mercurial/revertdialog.cpp index c36eb85fe74..cc140ee0b68 100644 --- a/src/plugins/mercurial/revertdialog.cpp +++ b/src/plugins/mercurial/revertdialog.cpp @@ -11,8 +11,6 @@ #include #include -using namespace Utils; - namespace Mercurial::Internal { RevertDialog::RevertDialog(QWidget *parent) diff --git a/src/plugins/perforce/perforcesettings.cpp b/src/plugins/perforce/perforcesettings.cpp index ac9d0b26b05..2f1e930fb63 100644 --- a/src/plugins/perforce/perforcesettings.cpp +++ b/src/plugins/perforce/perforcesettings.cpp @@ -243,7 +243,8 @@ PerforceSettingsPage::PerforceSettingsPage(PerforceSettings *settings) }; Group environment { - title(Tr::tr("Environment Variables"), &s.customEnv), + title(Tr::tr("Environment Variables")), + s.customEnv.groupChecker(), Row { s.p4Port, s.p4Client, s.p4User } }; diff --git a/src/plugins/subversion/subversionsettings.cpp b/src/plugins/subversion/subversionsettings.cpp index 36a65eff0c3..d91f8f30c19 100644 --- a/src/plugins/subversion/subversionsettings.cpp +++ b/src/plugins/subversion/subversionsettings.cpp @@ -96,7 +96,8 @@ SubversionSettingsPage::SubversionSettingsPage(SubversionSettings *settings) }, Group { - title(Tr::tr("Authentication"), &s.useAuthentication), + title(Tr::tr("Authentication")), + s.useAuthentication.groupChecker(), Form { s.userName, s.password,