From 74f43520e48f59f0d4b6dae0448c3512d7c07fb1 Mon Sep 17 00:00:00 2001 From: Aurindam Jana Date: Wed, 4 Apr 2012 10:56:21 +0200 Subject: QmlDebug: Enable/Disable tool Change-Id: Icb200474f1edff62d2fdd4bad9389117966775d5 Reviewed-by: Simjees Abraham Reviewed-by: Kai Koehne --- .../qmltooling/qmldbg_qtquick2/inspecttool.cpp | 36 ++++++++++++++-------- .../qmltooling/qmldbg_qtquick2/inspecttool.h | 2 ++ src/plugins/qmltooling/shared/abstracttool.h | 2 ++ .../qmltooling/shared/abstractviewinspector.cpp | 1 + 4 files changed, 29 insertions(+), 12 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.cpp b/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.cpp index 0ef609d7fd..67b12822be 100644 --- a/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.cpp +++ b/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.cpp @@ -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()); + // 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); + } } } diff --git a/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.h b/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.h index 1c1d12d114..25d0c634b2 100644 --- a/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.h +++ b/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.h @@ -69,6 +69,8 @@ public: InspectTool(QQuickViewInspector *inspector, QQuickView *view); ~InspectTool(); + void enable(bool enable); + void leaveEvent(QEvent *); void mousePressEvent(QMouseEvent *); diff --git a/src/plugins/qmltooling/shared/abstracttool.h b/src/plugins/qmltooling/shared/abstracttool.h index 7e5ba65fd4..ef9894a852 100644 --- a/src/plugins/qmltooling/shared/abstracttool.h +++ b/src/plugins/qmltooling/shared/abstracttool.h @@ -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; diff --git a/src/plugins/qmltooling/shared/abstractviewinspector.cpp b/src/plugins/qmltooling/shared/abstractviewinspector.cpp index b7ed69dca5..60a95986b0 100644 --- a/src/plugins/qmltooling/shared/abstractviewinspector.cpp +++ b/src/plugins/qmltooling/shared/abstractviewinspector.cpp @@ -100,6 +100,7 @@ void AbstractViewInspector::setDesignModeBehavior(bool value) return; m_designModeBehavior = value; + m_currentTool->enable(m_designModeBehavior); emit designModeBehaviorChanged(value); sendDesignModeBehavior(value); } -- cgit v1.2.3