Utils: Implement SelectionAspect::{setV,v}olatileValue

Change-Id: Ib0b2644c1f7aae651df5af85d35b82f82bc22e8c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2021-03-04 13:13:49 +01:00
parent 0e2445bc54
commit 8bf6236e90
2 changed files with 36 additions and 1 deletions

View File

@@ -1348,7 +1348,7 @@ void SelectionAspect::addToLayout(LayoutBuilder &builder)
button->setToolTip(option.tooltip);
builder.addItems({{}, button});
d->m_buttons.append(button);
d->m_buttonGroup->addButton(button);
d->m_buttonGroup->addButton(button, i);
connect(button, &QAbstractButton::clicked, this, [this, i] {
setValue(i);
});
@@ -1367,6 +1367,39 @@ void SelectionAspect::addToLayout(LayoutBuilder &builder)
}
}
QVariant SelectionAspect::volatileValue() const
{
QTC_CHECK(!isAutoApply());
switch (d->m_displayStyle) {
case DisplayStyle::RadioButtons:
QTC_ASSERT(d->m_buttonGroup, return {});
return d->m_buttonGroup->checkedId();
case DisplayStyle::ComboBox:
QTC_ASSERT(d->m_comboBox, return {});
return d->m_comboBox->currentIndex();
}
return {};
}
void SelectionAspect::setVolatileValue(const QVariant &val)
{
QTC_CHECK(!isAutoApply());
switch (d->m_displayStyle) {
case DisplayStyle::RadioButtons: {
if (d->m_buttonGroup) {
QAbstractButton *button = d->m_buttonGroup->button(val.toInt());
QTC_ASSERT(button, return);
button->setChecked(true);
}
break;
}
case DisplayStyle::ComboBox:
if (d->m_comboBox)
d->m_comboBox->setCurrentIndex(val.toInt());
break;
}
}
void SelectionAspect::setVisibleDynamic(bool visible)
{
if (QLabel *l = label())

View File

@@ -238,6 +238,8 @@ public:
~SelectionAspect() override;
void addToLayout(LayoutBuilder &builder) override;
QVariant volatileValue() const override;
void setVolatileValue(const QVariant &val) override;
int value() const;
void setValue(int val);