diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index d04162e430f..f0868666c84 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -1474,8 +1474,13 @@ void BoolAspect::addToLayout(Layouting::LayoutItem &parent) d->m_button = createSubWidget(); } switch (d->m_labelPlacement) { + case LabelPlacement::AtCheckBoxWithoutDummyLabel: + d->m_button->setText(labelText()); + parent.addItem(d->m_button.data()); + break; case LabelPlacement::AtCheckBox: d->m_button->setText(labelText()); + parent.addItem(empty()); parent.addItem(d->m_button.data()); break; case LabelPlacement::InExtraLabel: diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 77315495392..22dcc9bb0df 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -237,7 +237,7 @@ public: bool defaultValue() const; void setDefaultValue(bool val); - enum class LabelPlacement { AtCheckBox, InExtraLabel }; + enum class LabelPlacement { AtCheckBox, AtCheckBoxWithoutDummyLabel, InExtraLabel }; void setLabel(const QString &labelText, LabelPlacement labelPlacement = LabelPlacement::InExtraLabel); void setLabelPlacement(LabelPlacement labelPlacement); diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index 3ab5939543b..881dc613587 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -229,6 +229,7 @@ struct ResultItem int space = -1; int stretch = -1; int span = 1; + bool empty = false; }; struct Slice @@ -287,6 +288,8 @@ static void addItemToBoxLayout(QBoxLayout *layout, const ResultItem &item) layout->addSpacing(item.space); } else if (!item.text.isEmpty()) { layout->addWidget(createLabel(item.text)); + } else if (item.empty) { + // Nothing to do, but no reason to warn, either. } else { QTC_CHECK(false); } @@ -654,8 +657,8 @@ LayoutItem empty() LayoutItem item; item.onAdd = [](LayoutBuilder &builder) { ResultItem ri; - ri.span = 1; - builder.stack.last().pendingItems.append(ResultItem()); + ri.empty = true; + builder.stack.last().pendingItems.append(ri); }; return item; } diff --git a/src/plugins/projectexplorer/runconfigurationaspects.cpp b/src/plugins/projectexplorer/runconfigurationaspects.cpp index a685f0691ea..52b594d0a14 100644 --- a/src/plugins/projectexplorer/runconfigurationaspects.cpp +++ b/src/plugins/projectexplorer/runconfigurationaspects.cpp @@ -68,7 +68,7 @@ void TerminalAspect::addToLayout(LayoutItem &parent) m_checkBox = createSubWidget(Tr::tr("Run in terminal")); m_checkBox->setChecked(m_useTerminal); m_checkBox->setEnabled(isEnabled()); - parent.addItems({{}, m_checkBox.data()}); + parent.addItems({empty(), m_checkBox.data()}); connect(m_checkBox.data(), &QAbstractButton::clicked, this, [this] { m_userSet = true; m_useTerminal = m_checkBox->isChecked();