summaryrefslogtreecommitdiffstats
path: root/src/extras/defaults
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2018-04-19 15:33:14 +0100
committerSean Harmer <sean.harmer@kdab.com>2018-04-20 09:17:03 +0000
commitc5fb8786d31fa0e257c9c50a7ea74610073b2c85 (patch)
tree49dfd7e4f20cb3e44ae362ccc97c5afe825312a3 /src/extras/defaults
parent2224765eb952037699b419ba758d058de5a17220 (diff)
Add support for Escape key in camera controllers
Hitting the escape key does a view all on the active camera Change-Id: I19be96565358674958a193a96a0b487f36c085ba Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/extras/defaults')
-rw-r--r--src/extras/defaults/qabstractcameracontroller.cpp15
-rw-r--r--src/extras/defaults/qabstractcameracontroller_p.h2
-rw-r--r--src/extras/defaults/qfirstpersoncameracontroller.cpp3
-rw-r--r--src/extras/defaults/qorbitcameracontroller.cpp3
4 files changed, 23 insertions, 0 deletions
diff --git a/src/extras/defaults/qabstractcameracontroller.cpp b/src/extras/defaults/qabstractcameracontroller.cpp
index 2ebf187aa..aaef1d2d7 100644
--- a/src/extras/defaults/qabstractcameracontroller.cpp
+++ b/src/extras/defaults/qabstractcameracontroller.cpp
@@ -62,6 +62,7 @@ QAbstractCameraControllerPrivate::QAbstractCameraControllerPrivate()
, m_rightMouseButtonAction(new Qt3DInput::QAction())
, m_altButtonAction(new Qt3DInput::QAction())
, m_shiftButtonAction(new Qt3DInput::QAction())
+ , m_escapeButtonAction(new Qt3DInput::QAction())
, m_rxAxis(new Qt3DInput::QAxis())
, m_ryAxis(new Qt3DInput::QAxis())
, m_txAxis(new Qt3DInput::QAxis())
@@ -72,6 +73,7 @@ QAbstractCameraControllerPrivate::QAbstractCameraControllerPrivate()
, m_rightMouseButtonInput(new Qt3DInput::QActionInput())
, m_altButtonInput(new Qt3DInput::QActionInput())
, m_shiftButtonInput(new Qt3DInput::QActionInput())
+ , m_escapeButtonInput(new Qt3DInput::QActionInput())
, m_mouseRxInput(new Qt3DInput::QAnalogAxisInput())
, m_mouseRyInput(new Qt3DInput::QAnalogAxisInput())
, m_mouseTzXInput(new Qt3DInput::QAnalogAxisInput())
@@ -122,6 +124,11 @@ void QAbstractCameraControllerPrivate::init()
m_shiftButtonInput->setSourceDevice(m_keyboardDevice);
m_shiftButtonAction->addInput(m_shiftButtonInput);
+ // Escape Button Action
+ m_escapeButtonInput->setButtons(QVector<int>() << Qt::Key_Escape);
+ m_escapeButtonInput->setSourceDevice(m_keyboardDevice);
+ m_escapeButtonAction->addInput(m_escapeButtonInput);
+
//// Axes
// Mouse X
@@ -187,6 +194,7 @@ void QAbstractCameraControllerPrivate::init()
m_logicalDevice->addAction(m_rightMouseButtonAction);
m_logicalDevice->addAction(m_altButtonAction);
m_logicalDevice->addAction(m_shiftButtonAction);
+ m_logicalDevice->addAction(m_escapeButtonAction);
m_logicalDevice->addAxis(m_rxAxis);
m_logicalDevice->addAxis(m_ryAxis);
m_logicalDevice->addAxis(m_txAxis);
@@ -202,6 +210,13 @@ void QAbstractCameraControllerPrivate::init()
QObject::connect(q, &Qt3DCore::QEntity::enabledChanged,
m_logicalDevice, &Qt3DInput::QLogicalDevice::setEnabled);
+
+ QObject::connect(m_escapeButtonAction, &Qt3DInput::QAction::activeChanged,
+ q, [this](bool isActive) {
+ if (isActive && m_camera)
+ m_camera->viewAll();
+ });
+
q->addComponent(m_frameAction);
q->addComponent(m_logicalDevice);
}
diff --git a/src/extras/defaults/qabstractcameracontroller_p.h b/src/extras/defaults/qabstractcameracontroller_p.h
index 00424a55b..51f66cb3d 100644
--- a/src/extras/defaults/qabstractcameracontroller_p.h
+++ b/src/extras/defaults/qabstractcameracontroller_p.h
@@ -92,6 +92,7 @@ public:
Qt3DInput::QAction *m_rightMouseButtonAction;
Qt3DInput::QAction *m_altButtonAction;
Qt3DInput::QAction *m_shiftButtonAction;
+ Qt3DInput::QAction *m_escapeButtonAction;
Qt3DInput::QAxis *m_rxAxis;
Qt3DInput::QAxis *m_ryAxis;
@@ -104,6 +105,7 @@ public:
Qt3DInput::QActionInput *m_rightMouseButtonInput;
Qt3DInput::QActionInput *m_altButtonInput;
Qt3DInput::QActionInput *m_shiftButtonInput;
+ Qt3DInput::QActionInput *m_escapeButtonInput;
Qt3DInput::QAnalogAxisInput *m_mouseRxInput;
Qt3DInput::QAnalogAxisInput *m_mouseRyInput;
diff --git a/src/extras/defaults/qfirstpersoncameracontroller.cpp b/src/extras/defaults/qfirstpersoncameracontroller.cpp
index 0561bbc37..50015225c 100644
--- a/src/extras/defaults/qfirstpersoncameracontroller.cpp
+++ b/src/extras/defaults/qfirstpersoncameracontroller.cpp
@@ -73,6 +73,9 @@ namespace Qt3DExtras {
\row
\li Page up and page down keys
\li Move the camera vertically relative to camera viewport.
+ \row
+ \li Escape
+ \li Moves the camera so that entire scene is visible in the camera viewport.
\endtable
*/
diff --git a/src/extras/defaults/qorbitcameracontroller.cpp b/src/extras/defaults/qorbitcameracontroller.cpp
index 61b930569..6d3e83bcb 100644
--- a/src/extras/defaults/qorbitcameracontroller.cpp
+++ b/src/extras/defaults/qorbitcameracontroller.cpp
@@ -90,6 +90,9 @@ QOrbitCameraControllerPrivate::QOrbitCameraControllerPrivate()
\li Alt key
\li Changes the behovior of the arrow keys to pan and tilt the camera around the view
center. Disables the page up and page down keys.
+ \row
+ \li Escape
+ \li Moves the camera so that entire scene is visible in the camera viewport.
\endtable
*/