From 0ca1f153007c1cce62f3ad5fd7b7ed1d10fa5b35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Tue, 1 Oct 2013 08:49:58 +0300 Subject: Touch support fixed (draft) Task-number: QTRD-2345 - might need some more tweaking - currently requires hard-coded compile-time change for non-android devices Change-Id: Id891178f5abd29a2c3f58ce33a661999947c7363 Reviewed-by: Miikka Heikkinen --- src/datavisualization/engine/abstract3dcontroller.cpp | 12 +++++++----- src/datavisualization/engine/q3dcamera.h | 1 + src/datavisualization/engine/q3dcamera_p.h | 1 + src/datavisualization/engine/q3dwindow.cpp | 6 ++++++ 4 files changed, 15 insertions(+), 5 deletions(-) (limited to 'src/datavisualization/engine') diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp index 4d02fc13..61c9115a 100644 --- a/src/datavisualization/engine/abstract3dcontroller.cpp +++ b/src/datavisualization/engine/abstract3dcontroller.cpp @@ -67,12 +67,14 @@ Abstract3DController::Abstract3DController(QRect boundRect, QObject *parent) : // Create initial default input handler QAbstract3DInputHandler *inputHandler; #if defined(Q_OS_ANDROID) - inputHandler = new QTouch3DInputHandler(); + inputHandler = new QTouch3DInputHandler(); #else - inputHandler = new Q3DInputHandler(); + inputHandler = new Q3DInputHandler(); #endif - inputHandler->d_ptr->m_isDefaultHandler = true; - setActiveInputHandler(inputHandler); + inputHandler->d_ptr->m_isDefaultHandler = true; + setActiveInputHandler(inputHandler); + connect(inputHandler, &QAbstract3DInputHandler::inputStateChanged, this, + &Abstract3DController::emitNeedRender); } Abstract3DController::~Abstract3DController() @@ -673,7 +675,7 @@ void Abstract3DController::setCameraPosition(GLfloat horizontal, GLfloat vertica m_verticalRotation = qBound(0.0f, vertical, 90.0f); m_scene->activeCamera()->setZoomLevel(qBound(10, distance, 500)); m_scene->activeCamera()->setRotations(QPointF(m_horizontalRotation, - m_verticalRotation)); + m_verticalRotation)); //qDebug() << "camera rotation set to" << m_horizontalRotation << m_verticalRotation; emitNeedRender(); } diff --git a/src/datavisualization/engine/q3dcamera.h b/src/datavisualization/engine/q3dcamera.h index 60910786..8e7a9a23 100644 --- a/src/datavisualization/engine/q3dcamera.h +++ b/src/datavisualization/engine/q3dcamera.h @@ -80,6 +80,7 @@ private: friend class Scatter3DRenderer; friend class SelectionPointer; friend class Q3DInputHandler; + friend class QTouch3DInputHandler; friend class QMac3DInputHandler; }; diff --git a/src/datavisualization/engine/q3dcamera_p.h b/src/datavisualization/engine/q3dcamera_p.h index cf6e9c66..8c160d8c 100644 --- a/src/datavisualization/engine/q3dcamera_p.h +++ b/src/datavisualization/engine/q3dcamera_p.h @@ -67,6 +67,7 @@ public: friend class Scatter3DRenderer; friend class SelectionPointer; friend class Q3DInputHandler; + friend class QTouch3DInputHandler; friend class QMac3DInputHandler; }; diff --git a/src/datavisualization/engine/q3dwindow.cpp b/src/datavisualization/engine/q3dwindow.cpp index 16202179..9b607e1d 100644 --- a/src/datavisualization/engine/q3dwindow.cpp +++ b/src/datavisualization/engine/q3dwindow.cpp @@ -142,6 +142,12 @@ bool Q3DWindow::event(QEvent *event) case QEvent::UpdateRequest: renderNow(); return true; + case QEvent::TouchBegin: + case QEvent::TouchCancel: + case QEvent::TouchUpdate: + case QEvent::TouchEnd: + d_ptr->m_visualController->touchEvent(static_cast(event)); + return true; default: return QWindow::event(event); } -- cgit v1.2.3