diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-01-21 12:01:27 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-01-21 12:07:00 +0200 |
commit | 1b1dfcaadf83c73d3f7c1c1cd893894a3aea0ecb (patch) | |
tree | 776666dbf0368ec412fcbb154c2fe27076f6d404 /src/datavisualization/input/qtouch3dinputhandler.cpp | |
parent | 177f9d385c8cd062c4bad78cf6b794a96fa025ad (diff) |
InputState enum divided
Task-number: QTRD-2683
Change-Id: Ib05469ac1bf8c8ed828974a3adb91ecb5f8f1fc9
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/input/qtouch3dinputhandler.cpp')
-rw-r--r-- | src/datavisualization/input/qtouch3dinputhandler.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/datavisualization/input/qtouch3dinputhandler.cpp b/src/datavisualization/input/qtouch3dinputhandler.cpp index 909beb74..3fc5bea4 100644 --- a/src/datavisualization/input/qtouch3dinputhandler.cpp +++ b/src/datavisualization/input/qtouch3dinputhandler.cpp @@ -99,24 +99,27 @@ void QTouch3DInputHandler::touchEvent(QTouchEvent *event) if (event->type() == QEvent::TouchBegin) { if (scene()->isSlicingActive()) { if (scene()->isPointInPrimarySubView(pointerPos.toPoint())) - setInputState(InputStateOnPrimaryView); + setInputView(InputViewOnPrimary); else if (scene()->isPointInSecondarySubView(pointerPos.toPoint())) - setInputState(InputStateOnSecondaryView); + setInputView(InputViewOnSecondary); else - setInputState(InputStateNone); + setInputView(InputViewNone); } else { // Handle possible tap-and-hold selection d_ptr->m_startHoldPos = pointerPos; d_ptr->m_touchHoldPos = d_ptr->m_startHoldPos; d_ptr->m_holdTimer->start(); + setInputView(InputViewOnPrimary); // Start rotating setInputState(InputStateRotating); setInputPosition(pointerPos.toPoint()); } } else if (event->type() == QEvent::TouchEnd) { + setInputView(InputViewNone); d_ptr->m_holdTimer->stop(); // Handle possible selection - d_ptr->handleSelection(pointerPos); + if (QAbstract3DInputHandler::InputStatePinching != inputState()) + d_ptr->handleSelection(pointerPos); } else if (event->type() == QEvent::TouchUpdate) { if (!scene()->isSlicingActive()) { d_ptr->m_touchHoldPos = pointerPos; @@ -172,19 +175,22 @@ void QTouch3DInputHandlerPrivate::handleTapAndHold() QPointF distance = m_startHoldPos - m_touchHoldPos; if (distance.manhattanLength() < maxTapAndHoldJitter) { q_ptr->setInputPosition(m_touchHoldPos.toPoint()); - q_ptr->setInputState(QAbstract3DInputHandler::InputStateOnScene); + q_ptr->scene()->setSelectionQueryPosition(m_touchHoldPos.toPoint()); + q_ptr->setInputState(QAbstract3DInputHandler::InputStateSelecting); } } void QTouch3DInputHandlerPrivate::handleSelection(const QPointF &position) { QPointF distance = m_startHoldPos - position; - if (distance.manhattanLength() < maxSelectionJitter) - q_ptr->setInputState(QAbstract3DInputHandler::InputStateOnScene); - else + if (distance.manhattanLength() < maxSelectionJitter) { + q_ptr->setInputState(QAbstract3DInputHandler::InputStateSelecting); + q_ptr->scene()->setSelectionQueryPosition(position.toPoint()); + } else { q_ptr->setInputState(QAbstract3DInputHandler::InputStateNone); + q_ptr->setInputView(QAbstract3DInputHandler::InputViewNone); + } q_ptr->setPreviousInputPos(position.toPoint()); - q_ptr->scene()->setSelectionQueryPosition(position.toPoint()); } void QTouch3DInputHandlerPrivate::handleRotation(const QPointF &position) |