Aspect: Fix recent regression in signal emission

Amends 379e7f906

Change-Id: Ia1599613e3c2575c7406cf49f3dd9487c9a1284a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2023-06-30 17:22:25 +02:00
parent 297ff3b9b1
commit 64c8c37bd4
2 changed files with 17 additions and 11 deletions

View File

@@ -1297,9 +1297,16 @@ void StringAspect::makeCheckable(CheckBoxPlacement checkBoxPlacement,
: BoolAspect::LabelPlacement::AtCheckBox);
d->m_checker->setSettingsKey(checkerKey);
connect(d->m_checker.get(), &BoolAspect::changed, this, &StringAspect::internalToGui);
connect(d->m_checker.get(), &BoolAspect::changed, this, &StringAspect::changed);
connect(d->m_checker.get(), &BoolAspect::changed, this, &StringAspect::checkedChanged);
connect(d->m_checker.get(), &BoolAspect::changed, this, [this] {
internalToGui();
emit changed();
checkedChanged();
});
connect(d->m_checker.get(), &BoolAspect::volatileValueChanged, this, [this] {
internalToGui();
checkedChanged();
});
internalToGui();
}

View File

@@ -239,19 +239,18 @@ public:
void setValue(const ValueType &value)
{
m_external = value;
if (isDirty()) {
externalToInternal();
internalToGui();
}
const bool emitSignal = m_external != m_internal;
externalToInternal();
internalToGui();
if (emitSignal)
emit changed();
}
void setValueQuietly(const ValueType &value)
{
m_external = value;
if (isDirty()) {
externalToInternal();
internalToGui();
}
externalToInternal();
internalToGui();
}
void setVolatileValue(const ValueType &value)