diff options
author | Mike Krus <mike.krus@kdab.com> | 2018-04-19 15:33:14 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2018-04-20 09:17:03 +0000 |
commit | c5fb8786d31fa0e257c9c50a7ea74610073b2c85 (patch) | |
tree | 49dfd7e4f20cb3e44ae362ccc97c5afe825312a3 /src/extras/defaults | |
parent | 2224765eb952037699b419ba758d058de5a17220 (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')
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 */ |