diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-10-01 08:49:58 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-10-01 09:03:58 +0300 |
commit | 0ca1f153007c1cce62f3ad5fd7b7ed1d10fa5b35 (patch) | |
tree | 7baa94a3a84cb29e970ff3f096f3c7f69b37dd43 /src/datavisualization/engine | |
parent | 822a19d3e2650c7a9326b69ff4621ccd556e16cc (diff) |
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 <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r-- | src/datavisualization/engine/abstract3dcontroller.cpp | 12 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dcamera.h | 1 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dcamera_p.h | 1 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dwindow.cpp | 6 |
4 files changed, 15 insertions, 5 deletions
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<QTouchEvent *>(event)); + return true; default: return QWindow::event(event); } |