aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/context2d
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2012-04-02 10:02:28 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-23 05:23:45 +0200
commit66399c6584a86180c1955e5d34617fa46b07f36e (patch)
treec6ed009879801ff7c2d13b696c7963ed08c809c6 /src/quick/items/context2d
parent9542511b013588b2ceb132ec8b34879ec904a21e (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.cpp7
-rw-r--r--src/quick/items/context2d/qquickcanvasitem_p.h1
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