diff options
Diffstat (limited to 'src/plugins')
4 files changed, 29 insertions, 12 deletions
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<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); + } } } 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); } |