summaryrefslogtreecommitdiffstats
path: root/tests/barstest/custominputhandler.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-27 13:10:44 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-27 13:13:58 +0200
commitb368e57e59351736f9ad06834a743a7c1b49d368 (patch)
tree3b7d42569905d8cde0ca7571cd664428354a50dd /tests/barstest/custominputhandler.cpp
parenteb3d0514ca886db33776522ea00f27b69bc86ad1 (diff)
parent05d06fbc61f07e400b519a9b020c2473398627c1 (diff)
Merge branch 'develop'v1.0.0-beta1
Diffstat (limited to 'tests/barstest/custominputhandler.cpp')
-rw-r--r--tests/barstest/custominputhandler.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/barstest/custominputhandler.cpp b/tests/barstest/custominputhandler.cpp
new file mode 100644
index 00000000..a5734e16
--- /dev/null
+++ b/tests/barstest/custominputhandler.cpp
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVisualization module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#include "custominputhandler.h"
+
+#include <QtDataVisualization/Q3DCamera>
+
+CustomInputHandler::CustomInputHandler(QObject *parent) :
+ QAbstract3DInputHandler(parent)
+{
+}
+
+//! [0]
+void CustomInputHandler::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos)
+{
+ Q_UNUSED(event)
+ setInputPosition(mousePos);
+}
+//! [0]
+
+//! [1]
+void CustomInputHandler::wheelEvent(QWheelEvent *event)
+{
+ // Adjust zoom level based on what zoom range we're in.
+ int zoomLevel = scene()->activeCamera()->zoomLevel();
+ if (zoomLevel > 100)
+ zoomLevel += event->angleDelta().y() / 12;
+ else if (zoomLevel > 50)
+ zoomLevel += event->angleDelta().y() / 60;
+ else
+ zoomLevel += event->angleDelta().y() / 120;
+ if (zoomLevel > 500)
+ zoomLevel = 500;
+ else if (zoomLevel < 10)
+ zoomLevel = 10;
+
+ scene()->activeCamera()->setZoomLevel(zoomLevel);
+}
+//! [1]