diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-09-03 01:56:42 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-09-03 02:03:36 (GMT) |
commit | d758910f3d8d5eb64f7c7d94e5c9ef9ae259230b (patch) | |
tree | da7a6c36f2425aa28136c24f9b1935d6079d2af5 /src/declarative | |
parent | e0d41e566c49532dba6ed7eeb6a826f80e11c119 (diff) | |
download | Qt-d758910f3d8d5eb64f7c7d94e5c9ef9ae259230b.zip Qt-d758910f3d8d5eb64f7c7d94e5c9ef9ae259230b.tar.gz Qt-d758910f3d8d5eb64f7c7d94e5c9ef9ae259230b.tar.bz2 |
Don't modify the signal order on the second dynamic meta object pass
QTBUG-13374
Diffstat (limited to 'src/declarative')
-rw-r--r-- | src/declarative/qml/qdeclarativecompiler.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp index 7847303..61ea9c8 100644 --- a/src/declarative/qml/qdeclarativecompiler.cpp +++ b/src/declarative/qml/qdeclarativecompiler.cpp @@ -2416,13 +2416,17 @@ bool QDeclarativeCompiler::buildDynamicMeta(QDeclarativeParser::Object *obj, Dyn propBuilder.setWritable(!readonly); } - if (mode == ResolveAliases) { - for (int ii = 0; ii < obj->dynamicProperties.count(); ++ii) { - const Object::DynamicProperty &p = obj->dynamicProperties.at(ii); + for (int ii = 0; ii < obj->dynamicProperties.count(); ++ii) { + const Object::DynamicProperty &p = obj->dynamicProperties.at(ii); - if (p.type == Object::DynamicProperty::Alias) { + if (p.type == Object::DynamicProperty::Alias) { + if (mode == ResolveAliases) { ((QDeclarativeVMEMetaData *)dynamicData.data())->aliasCount++; compileAlias(builder, dynamicData, obj, p); + } else { + // Need a fake signal so that the metaobject remains consistent across + // the resolve and non-resolve alias runs + builder.addSignal(p.name + "Changed()"); } } } |