QmlDebug: Enable/Disable tool
authorAurindam Jana <aurindam.jana@nokia.com>
Wed, 4 Apr 2012 08:56:21 +0000 (10:56 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 10 Apr 2012 15:06:03 +0000 (17:06 +0200)
Change-Id: Icb200474f1edff62d2fdd4bad9389117966775d5
Reviewed-by: Simjees Abraham <simjees.abraham@nokia.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.cpp
src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.h
src/plugins/qmltooling/shared/abstracttool.h
src/plugins/qmltooling/shared/abstractviewinspector.cpp

index 0ef609d..67b1282 100644 (file)
@@ -61,40 +61,52 @@ namespace QtQuick2 {
 
 InspectTool::InspectTool(QQuickViewInspector *inspector, QQuickView *view) :
     AbstractTool(inspector),
+    m_originalSmooth(view->rootItem()->smooth()),
     m_dragStarted(false),
     m_pinchStarted(false),
     m_didPressAndHold(false),
     m_tapEvent(false),
+    m_rootItem(view->rootItem()),
+    m_originalPosition(view->rootItem()->pos()),
     m_currentScale(1.0f),
     m_smoothScaleFactor(Constants::ZoomSnapDelta),
     m_minScale(0.125f),
     m_maxScale(48.0f),
+    m_originalScale(view->rootItem()->scale()),
     m_touchTimestamp(0),
     m_hoverHighlight(new HoverHighlight(inspector->overlay())),
     m_lastItem(0),
     m_lastClickedItem(0)
 {
-    m_rootItem = view->rootItem();
-    m_originalSmooth = m_rootItem->smooth();
-    if (!m_originalSmooth)
-        m_rootItem->setSmooth(true);
-    m_originalPosition = m_rootItem->pos();
-    m_originalScale = m_rootItem->scale();
-
     //Press and Hold Timer
     m_pressAndHoldTimer.setSingleShot(true);
     m_pressAndHoldTimer.setInterval(Constants::PressAndHoldTimeout);
     connect(&m_pressAndHoldTimer, SIGNAL(timeout()), SLOT(zoomTo100()));
+    enable(true);
 }
 
 InspectTool::~InspectTool()
 {
-    // restoring the original states.
-    if (m_rootItem) {
-        m_rootItem->setScale(m_originalScale);
-        m_rootItem->setPos(m_originalPosition);
-        if (!m_originalSmooth)
+    enable(false);
+}
+
+void InspectTool::enable(bool enable)
+{
+    if (!enable) {
+        inspector()->setSelectedItems(QList<QQuickItem*>());
+        // restoring the original states.
+        if (m_rootItem) {
+            m_rootItem->setScale(m_originalScale);
+            m_rootItem->setPos(m_originalPosition);
             m_rootItem->setSmooth(m_originalSmooth);
+        }
+    } else {
+        if (m_rootItem) {
+            m_originalSmooth = m_rootItem->smooth();
+            m_originalScale = m_rootItem->scale();
+            m_originalPosition = m_rootItem->pos();
+            m_rootItem->setSmooth(true);
+        }
     }
 }
 
index 1c1d12d..25d0c63 100644 (file)
@@ -69,6 +69,8 @@ public:
     InspectTool(QQuickViewInspector *inspector, QQuickView *view);
     ~InspectTool();
 
+    void enable(bool enable);
+
     void leaveEvent(QEvent *);
 
     void mousePressEvent(QMouseEvent *);
index 7e5ba65..ef9894a 100644 (file)
@@ -64,6 +64,8 @@ public:
 
     AbstractViewInspector *inspector() const { return m_inspector; }
 
+    virtual void enable(bool enable) = 0;
+
     virtual void leaveEvent(QEvent *event) = 0;
 
     virtual void mousePressEvent(QMouseEvent *event) = 0;
index b7ed69d..60a9598 100644 (file)
@@ -100,6 +100,7 @@ void AbstractViewInspector::setDesignModeBehavior(bool value)
         return;
 
     m_designModeBehavior = value;
+    m_currentTool->enable(m_designModeBehavior);
     emit designModeBehaviorChanged(value);
     sendDesignModeBehavior(value);
 }