diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2012-04-23 10:17:57 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-23 05:23:34 +0200 |
commit | 9542511b013588b2ceb132ec8b34879ec904a21e (patch) | |
tree | 9fe2b2996878c14f61d54561f16ce64bbe096958 /src/quick/util/qquickconnections.cpp | |
parent | 6d2ed5d0b645f5af383a123e869d061b235b4b85 (diff) |
Support and use parameters in QQmlNotifierEndpoint.
Allow QQmlNotifierEndpoint to support signals
with parameters. Update QQmlBoundSignal to use
this support.
Change-Id: Ie2a245b39283b0b66d66bd2350e8bc85fe519bb5
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'src/quick/util/qquickconnections.cpp')
-rw-r--r-- | src/quick/util/qquickconnections.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/quick/util/qquickconnections.cpp b/src/quick/util/qquickconnections.cpp index 27b66ba38f..8116ac3425 100644 --- a/src/quick/util/qquickconnections.cpp +++ b/src/quick/util/qquickconnections.cpp @@ -151,6 +151,16 @@ QObject *QQuickConnections::target() const return d->targetSet ? d->target : parent(); } +class QQmlBoundSignalDeleter : public QObject +{ +public: + QQmlBoundSignalDeleter(QQmlBoundSignal *signal) : m_signal(signal) { m_signal->removeFromObject(); } + ~QQmlBoundSignalDeleter() { delete m_signal; } + +private: + QQmlBoundSignal *m_signal; +}; + void QQuickConnections::setTarget(QObject *obj) { Q_D(QQuickConnections); @@ -161,7 +171,7 @@ void QQuickConnections::setTarget(QObject *obj) // It is possible that target is being changed due to one of our signal // handlers -> use deleteLater(). if (s->isEvaluating()) - s->deleteLater(); + (new QQmlBoundSignalDeleter(s))->deleteLater(); else delete s; } |