Fix incorrect signal emission for QML declared properties
authorSimon Hausmann <simon.hausmann@theqtcompany.com>
Mon, 24 Aug 2015 10:38:18 +0000 (12:38 +0200)
committerSimon Hausmann <simon.hausmann@theqtcompany.com>
Mon, 24 Aug 2015 10:44:55 +0000 (10:44 +0000)
After commit 6cd0001054faa9c7c20dcd5e9c7512367b2c1f5f we also need to remove
the special var handling for signal indicies assigned to QML declared
properties, in order to emit the right signal when the property changes.

Change-Id: Ibdaba0435d8878e1e16dabe20559c484b217d82a
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
src/qml/compiler/qqmltypecompiler.cpp

index c02b91f30037d94406f774f6d120e1f9585c6271..80ffafda72982bf20f5c1aaaa0f1df486a46cdfb 100644 (file)
@@ -667,17 +667,14 @@ bool QQmlPropertyCacheCreator::createMetaObject(int objectIndex, const QmlIR::Ob
     }
 
     // First set up notify signals for properties - first normal, then var, then alias
-    enum { NSS_Normal = 0, NSS_Var = 1, NSS_Alias = 2 };
+    enum { NSS_Normal = 0, NSS_Alias = 1 };
     for (int ii = NSS_Normal; ii <= NSS_Alias; ++ii) { // 0 == normal, 1 == var, 2 == alias
 
-        if (ii == NSS_Var && varPropCount == 0) continue;
-        else if (ii == NSS_Alias && aliasCount == 0) continue;
+        if (ii == NSS_Alias && aliasCount == 0) continue;
 
         for (const QmlIR::Property *p = obj->firstProperty(); p; p = p->next) {
-            if ((ii == NSS_Normal && (p->type == QV4::CompiledData::Property::Alias ||
-                                      p->type == QV4::CompiledData::Property::Var)) ||
-                ((ii == NSS_Var) && (p->type != QV4::CompiledData::Property::Var)) ||
-                ((ii == NSS_Alias) && (p->type != QV4::CompiledData::Property::Alias)))
+            if ((ii == NSS_Normal && p->type == QV4::CompiledData::Property::Alias) ||
+                (ii == NSS_Alias && p->type != QV4::CompiledData::Property::Alias))
                 continue;
 
             quint32 flags = QQmlPropertyData::IsSignal | QQmlPropertyData::IsFunction |