forked from qt-creator/qt-creator
QmlDesigner: Make DynamicPropertyRow::commitValue state aware
Change-Id: I2f6d93be6fe1f92637902138ac9f073f18f1af22 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -336,8 +336,16 @@ void DynamicPropertyRow::commitValue(const QVariant &value)
|
|||||||
RewriterTransaction transaction = view->beginRewriterTransaction(
|
RewriterTransaction transaction = view->beginRewriterTransaction(
|
||||||
QByteArrayLiteral("DynamicPropertiesModel::commitValue"));
|
QByteArrayLiteral("DynamicPropertiesModel::commitValue"));
|
||||||
try {
|
try {
|
||||||
if (variantProperty.value() != value)
|
if (view->currentState().isBaseState()) {
|
||||||
variantProperty.setDynamicTypeNameAndValue(variantProperty.dynamicTypeName(), value);
|
if (variantProperty.value() != value)
|
||||||
|
variantProperty.setDynamicTypeNameAndValue(variantProperty.dynamicTypeName(), value);
|
||||||
|
} else {
|
||||||
|
QmlObjectNode objectNode = variantProperty.parentQmlObjectNode();
|
||||||
|
QTC_CHECK(objectNode.isValid());
|
||||||
|
PropertyName name = variantProperty.name();
|
||||||
|
if (objectNode.isValid() && objectNode.modelValue(name) != value)
|
||||||
|
objectNode.setVariantProperty(name, value);
|
||||||
|
}
|
||||||
transaction.commit(); //committing in the try block
|
transaction.commit(); //committing in the try block
|
||||||
} catch (Exception &e) {
|
} catch (Exception &e) {
|
||||||
e.showException();
|
e.showException();
|
||||||
|
Reference in New Issue
Block a user