diff --git a/src/plugins/projectexplorer/kitaspect.cpp b/src/plugins/projectexplorer/kitaspect.cpp index b14ef91630f..bcfced094c4 100644 --- a/src/plugins/projectexplorer/kitaspect.cpp +++ b/src/plugins/projectexplorer/kitaspect.cpp @@ -187,12 +187,9 @@ void KitAspect::makeReadOnly() la.comboBox->setEnabled(false); } -void KitAspect::addToInnerLayout(Layouting::Layout &parentItem) +void KitAspect::addToInnerLayout(Layouting::Layout &layout) { - for (const Private::ListAspect &la : std::as_const(d->listAspects)) { - addMutableAction(la.comboBox); - parentItem.addItem(la.comboBox); - } + addListAspectsToLayout(layout); } void KitAspect::addListAspectSpec(const ListAspectSpec &listAspectSpec) @@ -228,7 +225,7 @@ QList KitAspect::comboBoxes() const return Utils::transform(d->listAspects, &Private::ListAspect::comboBox); } -void KitAspect::addToLayoutImpl(Layouting::Layout &layout) +void KitAspect::addLabelToLayout(Layouting::Layout &layout) { auto label = createSubWidget(d->factory->displayName() + ':'); label->setToolTip(d->factory->description()); @@ -237,7 +234,18 @@ void KitAspect::addToLayoutImpl(Layouting::Layout &layout) }); layout.addItem(label); - addToInnerLayout(layout); +} + +void KitAspect::addListAspectsToLayout(Layouting::Layout &layout) +{ + for (const Private::ListAspect &la : std::as_const(d->listAspects)) { + addMutableAction(la.comboBox); + layout.addItem(la.comboBox); + } +} + +void KitAspect::addManageButtonToLayout(Layouting::Layout &layout) +{ if (d->managingPageId.isValid()) { d->manageButton = createSubWidget(msgManage()); connect(d->manageButton, &QPushButton::clicked, [this] { @@ -245,7 +253,15 @@ void KitAspect::addToLayoutImpl(Layouting::Layout &layout) }); layout.addItem(d->manageButton); } - layout.addItem(Layouting::br); +} + +void KitAspect::addToLayoutImpl(Layouting::Layout &layout) +{ + addLabelToLayout(layout); + addToInnerLayout(layout); + addManageButtonToLayout(layout); + + layout.flush(); } void KitAspect::addMutableAction(QWidget *child) diff --git a/src/plugins/projectexplorer/kitaspect.h b/src/plugins/projectexplorer/kitaspect.h index 780495a70dc..5cfd7577da1 100644 --- a/src/plugins/projectexplorer/kitaspect.h +++ b/src/plugins/projectexplorer/kitaspect.h @@ -132,12 +132,16 @@ public: // For layouting purposes only. QList comboBoxes() const; - virtual void addToInnerLayout(Layouting::Layout &parentItem); + virtual void addToInnerLayout(Layouting::Layout &layout); protected: virtual void makeReadOnly(); virtual Utils::Id settingsPageItemToPreselect() const { return {}; } + void addLabelToLayout(Layouting::Layout &layout); + void addListAspectsToLayout(Layouting::Layout &layout); + void addManageButtonToLayout(Layouting::Layout &layout); + // Convenience for aspects that provide a list model from which one value can be chosen. // It will be exposed via a QComboBox. class ListAspectSpec