summaryrefslogtreecommitdiffstats
path: root/src/declarative
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2010-09-03 01:56:42 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2010-09-03 02:03:36 (GMT)
commitd758910f3d8d5eb64f7c7d94e5c9ef9ae259230b (patch)
treeda7a6c36f2425aa28136c24f9b1935d6079d2af5 /src/declarative
parente0d41e566c49532dba6ed7eeb6a826f80e11c119 (diff)
downloadQt-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.cpp12
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()");
}
}
}