Utils: Move bool aspect to second column in forms by default

Also let the user opt out if necessary.

Change-Id: Ia7483a3b3de1ce0c119e00594b722e38fa2d0bb2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2023-06-21 14:54:38 +02:00
parent fff258638f
commit 6b5276220e
4 changed files with 12 additions and 4 deletions

View File

@@ -1474,8 +1474,13 @@ void BoolAspect::addToLayout(Layouting::LayoutItem &parent)
d->m_button = createSubWidget<QCheckBox>();
}
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:

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -68,7 +68,7 @@ void TerminalAspect::addToLayout(LayoutItem &parent)
m_checkBox = createSubWidget<QCheckBox>(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();