summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/input/qtouch3dinputhandler.cpp
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-01-21 12:01:27 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-01-21 12:07:00 +0200
commit1b1dfcaadf83c73d3f7c1c1cd893894a3aea0ecb (patch)
tree776666dbf0368ec412fcbb154c2fe27076f6d404 /src/datavisualization/input/qtouch3dinputhandler.cpp
parent177f9d385c8cd062c4bad78cf6b794a96fa025ad (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.cpp24
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)