diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2012-04-02 10:02:28 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-23 05:23:45 +0200 |
commit | 66399c6584a86180c1955e5d34617fa46b07f36e (patch) | |
tree | c6ed009879801ff7c2d13b696c7963ed08c809c6 /src/quick/items/context2d | |
parent | 9542511b013588b2ceb132ec8b34879ec904a21e (diff) |
Also check notifier endpoints when checking whether a signal is connected.
This is required for the QQmlBoundSignal optimizations.
Change-Id: I63540b96cd7d4523ec49973a2540054c83d82b12
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'src/quick/items/context2d')
-rw-r--r-- | src/quick/items/context2d/qquickcanvasitem.cpp | 7 | ||||
-rw-r--r-- | src/quick/items/context2d/qquickcanvasitem_p.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp index 4f849c771b..6c8c8f3f53 100644 --- a/src/quick/items/context2d/qquickcanvasitem.cpp +++ b/src/quick/items/context2d/qquickcanvasitem.cpp @@ -446,6 +446,11 @@ QQuickCanvasContext* QQuickCanvasItem::rawContext() const return d_func()->context; } +bool QQuickCanvasItem::isPaintConnected() +{ + IS_SIGNAL_CONNECTED(this, "paint(QRect)"); +} + void QQuickCanvasItem::sceneGraphInitialized() { Q_D(QQuickCanvasItem); @@ -456,7 +461,7 @@ void QQuickCanvasItem::sceneGraphInitialized() if (!d->contextType.isNull()) QMetaObject::invokeMethod(this, "delayedCreate", Qt::QueuedConnection); - else if (receivers(SIGNAL(paint(QRect))) > 0) + else if (isPaintConnected()) QMetaObject::invokeMethod(this, "requestPaint", Qt::QueuedConnection); } diff --git a/src/quick/items/context2d/qquickcanvasitem_p.h b/src/quick/items/context2d/qquickcanvasitem_p.h index 9a57733d4c..5238fbcf6d 100644 --- a/src/quick/items/context2d/qquickcanvasitem_p.h +++ b/src/quick/items/context2d/qquickcanvasitem_p.h @@ -158,6 +158,7 @@ private: bool createContext(const QString &contextType); void initializeContext(QQuickCanvasContext *context, const QVariantMap &args = QVariantMap()); QRect tiledRect(const QRectF &window, const QSize &tileSize); + bool isPaintConnected(); }; QT_END_NAMESPACE |