diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-06-03 21:10:32 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-12 12:06:09 +0200 |
commit | c421281a0291fd48c616a6e37315364ce0553c0f (patch) | |
tree | da71d664288d4aaaf3836a03c0c1d645a81670ea /src/qml/qml/qqmlpropertycache_p.h | |
parent | f4a683f6874b03ce3e0a2869320a9956d5a04098 (diff) |
Adapt to connection-related changes in qtbase
The QQmlData hooks signalEmitted() and receivers() now receive the
index in the signal index range (i.e., excluding non-signal methods).
This was done to avoid Q(Meta)Object having to compute the class's
method offset; the signal offset should be sufficient for everyone.
This required adapting QQmlNotifier, QQmlBoundSignal,
QQmlPropertyCache and friends to use the signal index range whenever
a property's notify signal is involved in the internal connection
lists and property captures.
Using the signal index range also reduces the memory used for
NotifyList::notifies, since useless entries for non-signal methods
will no longer be created.
Change-Id: I62872fbea5a1f829b8b03bae3fc1e6acd84cf886
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'src/qml/qml/qqmlpropertycache_p.h')
-rw-r--r-- | src/qml/qml/qqmlpropertycache_p.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlpropertycache_p.h b/src/qml/qml/qqmlpropertycache_p.h index 3be85c7003..4641a8d60f 100644 --- a/src/qml/qml/qqmlpropertycache_p.h +++ b/src/qml/qml/qqmlpropertycache_p.h @@ -172,6 +172,8 @@ public: }; int coreIndex; union { + // The notify index is in the range returned by QObjectPrivate::signalIndex(). + // This is different from QMetaMethod::methodIndex(). int notifyIndex; // When !IsFunction void *arguments; // When IsFunction && HasArguments }; @@ -276,6 +278,8 @@ public: QQmlPropertyData *property(const QString &) const; QQmlPropertyData *property(int) const; QQmlPropertyData *method(int) const; + QQmlPropertyData *signal(int) const; + int methodIndexToSignalIndex(int) const; QStringList propertyNames() const; QString defaultPropertyName() const; @@ -292,7 +296,7 @@ public: QQmlPropertyData &); static int *methodParameterTypes(QObject *, int index, QVarLengthArray<int, 9> &dummy, QByteArray *unknownTypeError); - static QList<QByteArray> methodParameterNames(QObject *, int index); + static QList<QByteArray> signalParameterNames(QObject *, int index); const char *className() const; |