From 17fcc84e5ebcf09f80a4bbebafde913d0422a91e Mon Sep 17 00:00:00 2001
From: Michael Brasser <michael.brasser@nokia.com>
Date: Wed, 9 Jun 2010 16:18:33 +1000
Subject: Small optimization when checking if MouseArea's onPressAndHold is
 being used.

---
 src/declarative/graphicsitems/qdeclarativemousearea.cpp   | 2 +-
 src/declarative/graphicsitems/qdeclarativemousearea_p_p.h | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/declarative/graphicsitems/qdeclarativemousearea.cpp b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
index 6fca283..a68e664 100644
--- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp
+++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
@@ -410,7 +410,7 @@ void QDeclarativeMouseArea::mousePressEvent(QGraphicsSceneMouseEvent *event)
         setHovered(true);
         d->startScene = event->scenePos();
         // we should only start timer if pressAndHold is connected to.
-        if (d->isConnected("pressAndHold(QDeclarativeMouseEvent*)"))
+        if (d->isPressAndHoldConnected())
             d->pressAndHoldTimer.start(PressAndHoldDelay, this);
         setKeepMouseGrab(false);
         event->setAccepted(setPressed(true));
diff --git a/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h b/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h
index 4e909ff..3d7bd1e 100644
--- a/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativemousearea_p_p.h
@@ -88,9 +88,9 @@ public:
         lastModifiers = event->modifiers();
     }
 
-    bool isConnected(const char *signal) {
+    bool isPressAndHoldConnected() {
         Q_Q(QDeclarativeMouseArea);
-        int idx = QObjectPrivate::get(q)->signalIndex(signal);
+        static int idx = QObjectPrivate::get(q)->signalIndex("pressAndHold(QDeclarativeMouseEvent*)");
         return QObjectPrivate::get(q)->isSignalConnected(idx);
     }
 
-- 
cgit v0.12