diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-10-14 08:22:57 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-10-14 08:23:52 (GMT) |
commit | c407d79f79c67f2f2bb84efc93061fd57fe4cf54 (patch) | |
tree | d56dcae60c345acaf5d4e3a0251dde99785b3ec6 /src/declarative/qml/qdeclarativepropertycache_p.h | |
parent | 1048ac9f491bf2e79c469d0451e437a1a485bef5 (diff) | |
download | Qt-c407d79f79c67f2f2bb84efc93061fd57fe4cf54.zip Qt-c407d79f79c67f2f2bb84efc93061fd57fe4cf54.tar.gz Qt-c407d79f79c67f2f2bb84efc93061fd57fe4cf54.tar.bz2 |
Correctly splice properties from derived metaobjects together
Task-number: QTBUG-14449
Diffstat (limited to 'src/declarative/qml/qdeclarativepropertycache_p.h')
-rw-r--r-- | src/declarative/qml/qdeclarativepropertycache_p.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/declarative/qml/qdeclarativepropertycache_p.h b/src/declarative/qml/qdeclarativepropertycache_p.h index 79b126d..922010d 100644 --- a/src/declarative/qml/qdeclarativepropertycache_p.h +++ b/src/declarative/qml/qdeclarativepropertycache_p.h @@ -96,7 +96,7 @@ public: IsVMEFunction = 0x00000400, HasArguments = 0x00000800, IsSignal = 0x00001000, - IsVMESignal = 0x00002000, + IsVMESignal = 0x00002000 }; Q_DECLARE_FLAGS(Flags, Flag) @@ -105,7 +105,10 @@ public: Flags flags; int propType; int coreIndex; - int notifyIndex; + union { + int notifyIndex; // When !IsFunction + int relatedIndex; // When IsFunction + }; static Flags flagsForProperty(const QMetaProperty &, QDeclarativeEngine *engine = 0); void load(const QMetaProperty &, QDeclarativeEngine *engine = 0); @@ -152,6 +155,8 @@ private: typedef QHash<QString, RData *> StringCache; typedef QHash<QScriptDeclarativeClass::Identifier, RData *> IdentifierCache; + void updateRecur(QDeclarativeEngine *, const QMetaObject *); + QDeclarativeEngine *engine; IndexCache indexCache; IndexCache methodIndexCache; |