summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/qt3d/simple-qml/CameraController.qml4
-rw-r--r--src/extras/defaults/qfirstpersoncameracontroller.cpp6
-rw-r--r--src/extras/defaults/qfirstpersoncameracontroller_p.h6
-rw-r--r--src/extras/defaults/qorbitcontrol.cpp6
-rw-r--r--src/extras/defaults/qorbitcontrol_p.h6
-rw-r--r--src/input/backend/analogaxisinput.cpp94
-rw-r--r--src/input/backend/analogaxisinput_p.h84
-rw-r--r--src/input/backend/axisinput.cpp6
-rw-r--r--src/input/backend/axisinput_p.h2
-rw-r--r--src/input/backend/backend.pri2
-rw-r--r--src/input/backend/inputhandler.cpp2
-rw-r--r--src/input/backend/inputhandler_p.h3
-rw-r--r--src/input/backend/inputmanagers_p.h11
-rw-r--r--src/input/backend/updateaxisactionjob.cpp57
-rw-r--r--src/input/backend/updateaxisactionjob_p.h4
-rw-r--r--src/input/frontend/frontend.pri3
-rw-r--r--src/input/frontend/qanalogaxisinput.cpp98
-rw-r--r--src/input/frontend/qanalogaxisinput.h77
-rw-r--r--src/input/frontend/qanalogaxisinput_p.h81
-rw-r--r--src/input/frontend/qaxisinput.cpp16
-rw-r--r--src/input/frontend/qaxisinput.h4
-rw-r--r--src/input/frontend/qaxisinput_p.h3
-rw-r--r--src/input/frontend/qbuttonaxisinput.cpp1
-rw-r--r--src/input/frontend/qinputaspect.cpp3
-rw-r--r--src/quick3d/imports/extras/defaults/qml/FirstPersonCameraController.qml4
-rw-r--r--src/quick3d/imports/extras/defaults/qml/OrbitController.qml4
-rw-r--r--src/quick3d/imports/input/qt3dquick3dinputplugin.cpp3
-rw-r--r--tests/auto/input/analogaxisinput/analogaxisinput.pro12
-rw-r--r--tests/auto/input/analogaxisinput/tst_analogaxisinput.cpp131
-rw-r--r--tests/auto/input/axisinput/tst_axisinput.cpp14
-rw-r--r--tests/auto/input/buttonaxisinput/tst_buttonaxisinput.cpp17
-rw-r--r--tests/auto/input/input.pro2
-rw-r--r--tests/auto/input/qanalogaxisinput/qanalogaxisinput.pro12
-rw-r--r--tests/auto/input/qanalogaxisinput/tst_qanalogaxisinput.cpp131
-rw-r--r--tests/auto/input/qaxisinput/tst_qaxisinput.cpp27
-rw-r--r--tests/auto/input/qbuttonaxisinput/tst_qbuttonaxisinput.cpp24
36 files changed, 812 insertions, 148 deletions
diff --git a/examples/qt3d/simple-qml/CameraController.qml b/examples/qt3d/simple-qml/CameraController.qml
index c6175fed2..69eff70ed 100644
--- a/examples/qt3d/simple-qml/CameraController.qml
+++ b/examples/qt3d/simple-qml/CameraController.qml
@@ -123,7 +123,7 @@ Entity {
Axis {
name: "RX"
inputs: [
- AxisInput {
+ AnalogAxisInput {
sourceDevice: mouseSourceDevice
axis: MouseDevice.X
}
@@ -132,7 +132,7 @@ Entity {
Axis {
name: "RY"
inputs: [
- AxisInput {
+ AnalogAxisInput {
sourceDevice: mouseSourceDevice
axis: MouseDevice.Y
}
diff --git a/src/extras/defaults/qfirstpersoncameracontroller.cpp b/src/extras/defaults/qfirstpersoncameracontroller.cpp
index 0a69dc2ca..1e42223a2 100644
--- a/src/extras/defaults/qfirstpersoncameracontroller.cpp
+++ b/src/extras/defaults/qfirstpersoncameracontroller.cpp
@@ -52,7 +52,7 @@
#include "qfirstpersoncameracontroller.h"
#include <Qt3DRender/QCamera>
#include <Qt3DInput/QAxis>
-#include <Qt3DInput/QAxisInput>
+#include <Qt3DInput/QAnalogAxisInput>
#include <Qt3DInput/QButtonAxisInput>
#include <Qt3DInput/QAction>
#include <Qt3DInput/QActionInput>
@@ -78,8 +78,8 @@ QFirstPersonCameraControllerPrivate::QFirstPersonCameraControllerPrivate()
, m_tzAxis(new Qt3DInput::QAxis())
, m_leftMouseButtonInput(new Qt3DInput::QActionInput())
, m_fineMotionKeyInput(new Qt3DInput::QActionInput())
- , m_mouseRxInput(new Qt3DInput::QAxisInput())
- , m_mouseRyInput(new Qt3DInput::QAxisInput())
+ , m_mouseRxInput(new Qt3DInput::QAnalogAxisInput())
+ , m_mouseRyInput(new Qt3DInput::QAnalogAxisInput())
, m_keyboardTxPosInput(new Qt3DInput::QButtonAxisInput())
, m_keyboardTyPosInput(new Qt3DInput::QButtonAxisInput())
, m_keyboardTzPosInput(new Qt3DInput::QButtonAxisInput())
diff --git a/src/extras/defaults/qfirstpersoncameracontroller_p.h b/src/extras/defaults/qfirstpersoncameracontroller_p.h
index 756ab668d..9ea830f85 100644
--- a/src/extras/defaults/qfirstpersoncameracontroller_p.h
+++ b/src/extras/defaults/qfirstpersoncameracontroller_p.h
@@ -84,7 +84,7 @@ class QLogicalDevice;
class QAction;
class QActionInput;
class QAxis;
-class QAxisInput;
+class QAnalogAxisInput;
class QButtonAxisInput;
class QAxisActionHandler;
@@ -113,8 +113,8 @@ public:
Qt3DInput::QActionInput *m_leftMouseButtonInput;
Qt3DInput::QActionInput *m_fineMotionKeyInput;
- Qt3DInput::QAxisInput *m_mouseRxInput;
- Qt3DInput::QAxisInput *m_mouseRyInput;
+ Qt3DInput::QAnalogAxisInput *m_mouseRxInput;
+ Qt3DInput::QAnalogAxisInput *m_mouseRyInput;
Qt3DInput::QButtonAxisInput *m_keyboardTxPosInput;
Qt3DInput::QButtonAxisInput *m_keyboardTyPosInput;
Qt3DInput::QButtonAxisInput *m_keyboardTzPosInput;
diff --git a/src/extras/defaults/qorbitcontrol.cpp b/src/extras/defaults/qorbitcontrol.cpp
index 7c1c5e6f8..47703ea17 100644
--- a/src/extras/defaults/qorbitcontrol.cpp
+++ b/src/extras/defaults/qorbitcontrol.cpp
@@ -39,7 +39,7 @@
#include <QtGlobal>
#include <Qt3DRender/QCamera>
#include <Qt3DInput/QAxis>
-#include <Qt3DInput/QAxisInput>
+#include <Qt3DInput/QAnalogAxisInput>
#include <Qt3DInput/QButtonAxisInput>
#include <Qt3DInput/QAction>
#include <Qt3DInput/QActionInput>
@@ -74,8 +74,8 @@ QOrbitControlPrivate::QOrbitControlPrivate()
, m_rightMouseButtonInput(new Qt3DInput::QActionInput())
, m_altButtonInput(new Qt3DInput::QActionInput())
, m_shiftButtonInput(new Qt3DInput::QActionInput())
- , m_mouseRxInput(new Qt3DInput::QAxisInput())
- , m_mouseRyInput(new Qt3DInput::QAxisInput())
+ , m_mouseRxInput(new Qt3DInput::QAnalogAxisInput())
+ , m_mouseRyInput(new Qt3DInput::QAnalogAxisInput())
, m_keyboardTxPosInput(new Qt3DInput::QButtonAxisInput())
, m_keyboardTyPosInput(new Qt3DInput::QButtonAxisInput())
, m_keyboardTzPosInput(new Qt3DInput::QButtonAxisInput())
diff --git a/src/extras/defaults/qorbitcontrol_p.h b/src/extras/defaults/qorbitcontrol_p.h
index 900227152..f3f384493 100644
--- a/src/extras/defaults/qorbitcontrol_p.h
+++ b/src/extras/defaults/qorbitcontrol_p.h
@@ -70,7 +70,7 @@ class QLogicalDevice;
class QAction;
class QActionInput;
class QAxis;
-class QAxisInput;
+class QAnalogAxisInput;
class QButtonAxisInput;
class QAxisActionHandler;
@@ -103,8 +103,8 @@ public:
Qt3DInput::QActionInput *m_altButtonInput;
Qt3DInput::QActionInput *m_shiftButtonInput;
- Qt3DInput::QAxisInput *m_mouseRxInput;
- Qt3DInput::QAxisInput *m_mouseRyInput;
+ Qt3DInput::QAnalogAxisInput *m_mouseRxInput;
+ Qt3DInput::QAnalogAxisInput *m_mouseRyInput;
Qt3DInput::QButtonAxisInput *m_keyboardTxPosInput;
Qt3DInput::QButtonAxisInput *m_keyboardTyPosInput;
Qt3DInput::QButtonAxisInput *m_keyboardTzPosInput;
diff --git a/src/input/backend/analogaxisinput.cpp b/src/input/backend/analogaxisinput.cpp
new file mode 100644
index 000000000..e2157f691
--- /dev/null
+++ b/src/input/backend/analogaxisinput.cpp
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "analogaxisinput_p.h"
+#include <Qt3DInput/qanalogaxisinput.h>
+#include <Qt3DInput/qabstractphysicaldevice.h>
+#include <Qt3DInput/private/qanalogaxisinput_p.h>
+#include <Qt3DCore/qnodepropertychange.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace Qt3DInput {
+
+namespace Input {
+
+AnalogAxisInput::AnalogAxisInput()
+ : AxisInput()
+ , m_axis(0)
+{
+}
+
+void AnalogAxisInput::updateFromPeer(Qt3DCore::QNode *peer)
+{
+ QAnalogAxisInput *input = static_cast<QAnalogAxisInput *>(peer);
+ m_axis = input->axis();
+ AxisInput::updateFromPeer(peer);
+}
+
+void AnalogAxisInput::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change)
+{
+ const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAnalogAxisInputData>>(change);
+ const auto &data = typedChange->data;
+ m_axis = data.axis;
+ AxisInput::initializeFromPeer(change);
+}
+
+void AnalogAxisInput::cleanup()
+{
+ m_axis = 0;
+ AxisInput::cleanup();
+}
+
+void AnalogAxisInput::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e)
+{
+ if (e->type() == Qt3DCore::NodeUpdated) {
+ Qt3DCore::QNodePropertyChangePtr propertyChange = qSharedPointerCast<Qt3DCore::QNodePropertyChange>(e);
+ if (propertyChange->propertyName() == QByteArrayLiteral("axis")) {
+ m_axis = propertyChange->value().toInt();
+ }
+ }
+ AxisInput::sceneChangeEvent(e);
+}
+
+} // Input
+
+} // Qt3DInput
+
+QT_END_NAMESPACE
diff --git a/src/input/backend/analogaxisinput_p.h b/src/input/backend/analogaxisinput_p.h
new file mode 100644
index 000000000..9c574d02f
--- /dev/null
+++ b/src/input/backend/analogaxisinput_p.h
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QT3DINPUT_INPUT_ANALOGAXISINPUT_H
+#define QT3DINPUT_INPUT_ANALOGAXISINPUT_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <Qt3DInput/private/axisinput_p.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace Qt3DInput {
+
+namespace Input {
+
+class Q_AUTOTEST_EXPORT AnalogAxisInput : public AxisInput
+{
+public:
+ AnalogAxisInput();
+ void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_FINAL;
+ void cleanup() Q_DECL_FINAL;
+
+ inline int axis() const { return m_axis; }
+ void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_FINAL;
+
+private:
+ void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_FINAL;
+
+ int m_axis;
+};
+
+} // namespace Input
+
+} // namespace Qt3DInput
+
+QT_END_NAMESPACE
+
+#endif // QT3DINPUT_INPUT_ANALOGAXISINPUT_H
diff --git a/src/input/backend/axisinput.cpp b/src/input/backend/axisinput.cpp
index 2906771aa..fe20d8ab5 100644
--- a/src/input/backend/axisinput.cpp
+++ b/src/input/backend/axisinput.cpp
@@ -51,7 +51,6 @@ namespace Input {
AxisInput::AxisInput()
: Qt3DCore::QBackendNode()
- , m_axis(0)
{
}
@@ -61,7 +60,6 @@ AxisInput::AxisInput()
void AxisInput::updateFromPeer(Qt3DCore::QNode *peer)
{
QAxisInput *input = static_cast<QAxisInput *>(peer);
- m_axis = input->axis();
if (input->sourceDevice())
m_sourceDevice = input->sourceDevice()->id();
}
@@ -71,13 +69,11 @@ void AxisInput::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &ch
const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QAxisInputData>>(change);
const auto &data = typedChange->data;
m_sourceDevice = data.sourceDeviceId;
- m_axis = data.axis;
}
void AxisInput::cleanup()
{
QBackendNode::setEnabled(false);
- m_axis = 0;
m_sourceDevice = Qt3DCore::QNodeId();
}
@@ -87,8 +83,6 @@ void AxisInput::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e)
Qt3DCore::QNodePropertyChangePtr propertyChange = qSharedPointerCast<Qt3DCore::QNodePropertyChange>(e);
if (propertyChange->propertyName() == QByteArrayLiteral("sourceDevice")) {
m_sourceDevice = propertyChange->value().value<Qt3DCore::QNodeId>();
- } else if (propertyChange->propertyName() == QByteArrayLiteral("axis")) {
- m_axis = propertyChange->value().toInt();
}
}
QBackendNode::sceneChangeEvent(e);
diff --git a/src/input/backend/axisinput_p.h b/src/input/backend/axisinput_p.h
index 028bdc30a..4f5987d33 100644
--- a/src/input/backend/axisinput_p.h
+++ b/src/input/backend/axisinput_p.h
@@ -67,14 +67,12 @@ public:
void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE;
virtual void cleanup();
- inline int axis() const { return m_axis; }
inline Qt3DCore::QNodeId sourceDevice() const { return m_sourceDevice; }
void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
protected:
void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_OVERRIDE;
- int m_axis;
Qt3DCore::QNodeId m_sourceDevice;
};
diff --git a/src/input/backend/backend.pri b/src/input/backend/backend.pri
index 834e9a58c..75adebdd3 100644
--- a/src/input/backend/backend.pri
+++ b/src/input/backend/backend.pri
@@ -15,6 +15,7 @@ HEADERS += \
$$PWD/actioninput_p.h \
$$PWD/axis_p.h \
$$PWD/action_p.h \
+ $$PWD/analogaxisinput_p.h \
$$PWD/buttonaxisinput_p.h \
$$PWD/logicaldevice_p.h \
$$PWD/inputbackendnodefunctor_p.h \
@@ -45,6 +46,7 @@ SOURCES += \
$$PWD/actioninput.cpp \
$$PWD/axis.cpp \
$$PWD/action.cpp \
+ $$PWD/analogaxisinput.cpp \
$$PWD/buttonaxisinput.cpp \
$$PWD/logicaldevice.cpp \
$$PWD/qabstractphysicaldevicebackendnode.cpp \
diff --git a/src/input/backend/inputhandler.cpp b/src/input/backend/inputhandler.cpp
index 6d4100af7..ba4f7548d 100644
--- a/src/input/backend/inputhandler.cpp
+++ b/src/input/backend/inputhandler.cpp
@@ -67,6 +67,7 @@ InputHandler::InputHandler()
, m_axisInputManager(new AxisInputManager())
, m_axisSettingManager(new AxisSettingManager())
, m_actionInputManager(new ActionInputManager())
+ , m_analogAxisInputManager(new AnalogAxisInputManager())
, m_buttonAxisInputManager(new ButtonAxisInputManager())
, m_inputChordManager(new InputChordManager())
, m_inputSequenceManager(new InputSequenceManager())
@@ -94,6 +95,7 @@ InputHandler::~InputHandler()
delete m_actionManager;
delete m_axisSettingManager;
delete m_axisInputManager;
+ delete m_analogAxisInputManager;
delete m_buttonAxisInputManager;
delete m_actionInputManager;
delete m_inputChordManager;
diff --git a/src/input/backend/inputhandler_p.h b/src/input/backend/inputhandler_p.h
index d3812d35e..bc9f4044b 100644
--- a/src/input/backend/inputhandler_p.h
+++ b/src/input/backend/inputhandler_p.h
@@ -80,6 +80,7 @@ class ActionManager;
class AxisInputManager;
class AxisSettingManager;
class ActionInputManager;
+class AnalogAxisInputManager;
class ButtonAxisInputManager;
class InputChordManager;
class InputSequenceManager;
@@ -104,6 +105,7 @@ public:
inline AxisInputManager *axisInputManager() const { return m_axisInputManager; }
inline AxisSettingManager *axisSettingManager() const { return m_axisSettingManager; }
inline ActionInputManager *actionInputManager() const { return m_actionInputManager; }
+ inline AnalogAxisInputManager *analogAxisInputManager() const { return m_analogAxisInputManager; }
inline ButtonAxisInputManager *buttonAxisInputManager() const { return m_buttonAxisInputManager; }
inline InputChordManager *inputChordManager() const { return m_inputChordManager; }
inline InputSequenceManager *inputSequenceManager() const { return m_inputSequenceManager; }
@@ -166,6 +168,7 @@ private:
AxisInputManager *m_axisInputManager;
AxisSettingManager *m_axisSettingManager;
ActionInputManager *m_actionInputManager;
+ AnalogAxisInputManager *m_analogAxisInputManager;
ButtonAxisInputManager *m_buttonAxisInputManager;
InputChordManager *m_inputChordManager;
InputSequenceManager *m_inputSequenceManager;
diff --git a/src/input/backend/inputmanagers_p.h b/src/input/backend/inputmanagers_p.h
index a70a5d023..3fae7e8d9 100644
--- a/src/input/backend/inputmanagers_p.h
+++ b/src/input/backend/inputmanagers_p.h
@@ -65,6 +65,7 @@
#include <Qt3DInput/private/action_p.h>
#include <Qt3DInput/private/axis_p.h>
#include <Qt3DInput/private/axissetting_p.h>
+#include <Qt3DInput/private/analogaxisinput_p.h>
#include <Qt3DInput/private/buttonaxisinput_p.h>
#include <Qt3DInput/private/logicaldevice_p.h>
#include <Qt3DInput/private/genericdevicebackendnode_p.h>
@@ -164,6 +165,16 @@ public:
ActionInputManager() {}
};
+class AnalogAxisInputManager : public Qt3DCore::QResourceManager<
+ AnalogAxisInput,
+ Qt3DCore::QNodeId,
+ 16,
+ Qt3DCore::ArrayAllocatingPolicy>
+{
+public:
+ AnalogAxisInputManager() {}
+};
+
class ButtonAxisInputManager : public Qt3DCore::QResourceManager<
ButtonAxisInput,
Qt3DCore::QNodeId,
diff --git a/src/input/backend/updateaxisactionjob.cpp b/src/input/backend/updateaxisactionjob.cpp
index cf35cbac6..2a4b69c1f 100644
--- a/src/input/backend/updateaxisactionjob.cpp
+++ b/src/input/backend/updateaxisactionjob.cpp
@@ -169,34 +169,33 @@ void UpdateAxisActionJob::updateAxis(LogicalDevice *device)
const auto axisInputIds = axis->inputs();
for (const Qt3DCore::QNodeId axisInputId : axisInputIds) {
- AxisInput *axisInput = m_handler->axisInputManager()->lookupResource(axisInputId);
- ButtonAxisInput *buttonAxisInput = nullptr;
- if (!axisInput) {
- buttonAxisInput = m_handler->buttonAxisInputManager()->lookupResource(axisInputId);
- axisInput = buttonAxisInput;
+ AnalogAxisInput *analogInput = m_handler->analogAxisInputManager()->lookupResource(axisInputId);
+ if (analogInput) {
+ QAbstractPhysicalDeviceBackendNode *physicalDeviceBackend = findAxisInputPhysicalDevice(analogInput);
+ if (physicalDeviceBackend && analogInput->axis() != -1) {
+ // Update the value
+ axisValue += physicalDeviceBackend->processedAxisValue(analogInput->axis());
+ }
+ continue;
}
- Q_ASSERT(axisInput);
- QAbstractPhysicalDeviceBackendNode *physicalDeviceBackend = nullptr;
+ ButtonAxisInput *buttonInput = m_handler->buttonAxisInputManager()->lookupResource(axisInputId);
+ if (buttonInput) {
+ QAbstractPhysicalDeviceBackendNode *physicalDeviceBackend = findAxisInputPhysicalDevice(buttonInput);
+ if (physicalDeviceBackend != nullptr) {
+ // Update the value
+ const QVector<int> buttons = buttonInput ? buttonInput->buttons() : QVector<int>();
+ if (!buttons.isEmpty()) {
+ // TO DO: Linear Curver for the progression of the scale value
+ if (anyOfRequiredButtonsPressed(buttons, physicalDeviceBackend))
+ axisValue += buttonInput->scale();
+ }
+ }
- const auto integrations = m_handler->inputDeviceIntegrations();
- for (QInputDeviceIntegration *integration : integrations) {
- if ((physicalDeviceBackend = integration->physicalDevice(axisInput->sourceDevice())) != nullptr)
- break;
+ continue;
}
- if (physicalDeviceBackend != nullptr) {
- // Update the value
- const QVector<int> buttons = buttonAxisInput ? buttonAxisInput->buttons() : QVector<int>();
- // Axis was specified -> we take this as the base value
- if (axisInput->axis() != -1)
- axisValue += physicalDeviceBackend->processedAxisValue(axisInput->axis());
- else if (!buttons.isEmpty()) {
- // TO DO: Linear Curver for the progression of the scale value
- if (anyOfRequiredButtonsPressed(buttons, physicalDeviceBackend))
- axisValue += buttonAxisInput->scale();
- }
- }
+ Q_UNREACHABLE();
}
// Clamp the axisValue -1/1
@@ -205,6 +204,18 @@ void UpdateAxisActionJob::updateAxis(LogicalDevice *device)
}
}
+QAbstractPhysicalDeviceBackendNode *UpdateAxisActionJob::findAxisInputPhysicalDevice(AxisInput *axisInput)
+{
+ const auto integrations = m_handler->inputDeviceIntegrations();
+ for (QInputDeviceIntegration *integration : integrations) {
+ QAbstractPhysicalDeviceBackendNode *physicalDeviceBackend = integration->physicalDevice(axisInput->sourceDevice());
+ if (physicalDeviceBackend)
+ return physicalDeviceBackend;
+ }
+
+ return nullptr;
+}
+
} // Input
} // Qt3DInput
diff --git a/src/input/backend/updateaxisactionjob_p.h b/src/input/backend/updateaxisactionjob_p.h
index 24286c731..c2b0f88e2 100644
--- a/src/input/backend/updateaxisactionjob_p.h
+++ b/src/input/backend/updateaxisactionjob_p.h
@@ -59,8 +59,11 @@ QT_BEGIN_NAMESPACE
namespace Qt3DInput {
+class QAbstractPhysicalDeviceBackendNode;
+
namespace Input {
+class AxisInput;
class InputHandler;
class UpdateAxisActionJob : public Qt3DCore::QAspectJob
@@ -73,6 +76,7 @@ private:
void updateAction(LogicalDevice *device);
bool processActionInput(const Qt3DCore::QNodeId actionInputId);
void updateAxis(LogicalDevice *device);
+ QAbstractPhysicalDeviceBackendNode *findAxisInputPhysicalDevice(AxisInput *axisInput);
const qint64 m_currentTime;
InputHandler *m_handler;
diff --git a/src/input/frontend/frontend.pri b/src/input/frontend/frontend.pri
index 8cf3d5fa9..816cae8d4 100644
--- a/src/input/frontend/frontend.pri
+++ b/src/input/frontend/frontend.pri
@@ -16,6 +16,7 @@ HEADERS += \
$$PWD/qaction.h \
$$PWD/qaxisinput.h \
$$PWD/qaxis.h \
+ $$PWD/qanalogaxisinput.h \
$$PWD/qbuttonaxisinput.h \
$$PWD/qlogicaldevice.h \
$$PWD/qinputdeviceintegration.h \
@@ -34,6 +35,7 @@ HEADERS += \
$$PWD/qactioninput_p.h \
$$PWD/qaxis_p.h \
$$PWD/qaxisinput_p.h \
+ $$PWD/qanalogaxisinput_p.h \
$$PWD/qbuttonaxisinput_p.h \
$$PWD/qlogicaldevice_p.h \
$$PWD/qaxissetting_p.h \
@@ -56,6 +58,7 @@ SOURCES += \
$$PWD/qaction.cpp \
$$PWD/qaxisinput.cpp \
$$PWD/qaxis.cpp \
+ $$PWD/qanalogaxisinput.cpp \
$$PWD/qbuttonaxisinput.cpp \
$$PWD/qlogicaldevice.cpp \
$$PWD/qinputdeviceintegration.cpp \
diff --git a/src/input/frontend/qanalogaxisinput.cpp b/src/input/frontend/qanalogaxisinput.cpp
new file mode 100644
index 000000000..c6c86c723
--- /dev/null
+++ b/src/input/frontend/qanalogaxisinput.cpp
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qanalogaxisinput.h"
+#include "qanalogaxisinput_p.h"
+#include <Qt3DInput/qabstractphysicaldevice.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace Qt3DInput {
+
+/*!
+ * \qmltype AnalogAxisInput
+ * \instantiates Qt3DInput::QAnalogAxisInput
+ * \inqmlmodule Qt3D.Input
+ * \since 5.7
+ * \TODO
+ *
+ */
+
+/*!
+ * \class Qt3DInput::QAnalogAxisInput
+ * \inmodule Qt3DInput
+ * \since 5.7
+ * \TODO
+ *
+ */
+QAnalogAxisInput::QAnalogAxisInput(Qt3DCore::QNode *parent)
+ : QAxisInput(*new QAnalogAxisInputPrivate, parent)
+{
+}
+
+void QAnalogAxisInput::setAxis(int axis)
+{
+ Q_D(QAnalogAxisInput);
+ if (d->m_axis != axis) {
+ d->m_axis = axis;
+ emit axisChanged(axis);
+ }
+}
+
+int QAnalogAxisInput::axis() const
+{
+ Q_D(const QAnalogAxisInput);
+ return d->m_axis;
+}
+
+Qt3DCore::QNodeCreatedChangeBasePtr QAnalogAxisInput::createNodeCreationChange() const
+{
+ auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QAnalogAxisInputData>::create(this);
+ auto &data = creationChange->data;
+
+ Q_D(const QAnalogAxisInput);
+ data.sourceDeviceId = qIdForNode(d->m_sourceDevice);
+ data.axis = d->m_axis;
+
+ return creationChange;
+}
+
+} // Qt3DInput
+
+QT_END_NAMESPACE
diff --git a/src/input/frontend/qanalogaxisinput.h b/src/input/frontend/qanalogaxisinput.h
new file mode 100644
index 000000000..60bb50098
--- /dev/null
+++ b/src/input/frontend/qanalogaxisinput.h
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QT3DINPUT_QANALOGAXISINPUT_H
+#define QT3DINPUT_QANALOGAXISINPUT_H
+
+#include <Qt3DInput/qt3dinput_global.h>
+#include <Qt3DInput/QAxisInput>
+
+QT_BEGIN_NAMESPACE
+
+namespace Qt3DInput {
+
+class QAnalogAxisInputPrivate;
+
+class QT3DINPUTSHARED_EXPORT QAnalogAxisInput : public QAxisInput
+{
+ Q_OBJECT
+ Q_PROPERTY(int axis READ axis WRITE setAxis NOTIFY axisChanged)
+
+public:
+ explicit QAnalogAxisInput(Qt3DCore::QNode *parent = nullptr);
+
+ int axis() const;
+
+public Q_SLOTS:
+ void setAxis(int axis);
+
+Q_SIGNALS:
+ void axisChanged(int axis);
+
+private:
+ Q_DECLARE_PRIVATE(QAnalogAxisInput)
+ Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE;
+};
+
+} // Qt3DInput
+
+QT_END_NAMESPACE
+
+#endif // QT3DINPUT_QANALOGAXISINPUT_H
diff --git a/src/input/frontend/qanalogaxisinput_p.h b/src/input/frontend/qanalogaxisinput_p.h
new file mode 100644
index 000000000..ee60b5f4d
--- /dev/null
+++ b/src/input/frontend/qanalogaxisinput_p.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QT3DINPUT_QANALOGAXISINPUT_P_H
+#define QT3DINPUT_QANALOGAXISINPUT_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <Qt3DInput/private/qaxisinput_p.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace Qt3DInput {
+
+class QAnalogAxisInputPrivate : public QAxisInputPrivate
+{
+public:
+ QAnalogAxisInputPrivate()
+ : QAxisInputPrivate()
+ , m_axis(-1)
+ {}
+
+ int m_axis;
+};
+
+struct QAnalogAxisInputData : public QAxisInputData
+{
+ int axis;
+};
+
+} // Qt3DInput
+
+QT_END_NAMESPACE
+
+#endif // QT3DINPUT_QBUTTONAXISINPUT_P_H
+
diff --git a/src/input/frontend/qaxisinput.cpp b/src/input/frontend/qaxisinput.cpp
index 9c2f30d43..f4caca1f1 100644
--- a/src/input/frontend/qaxisinput.cpp
+++ b/src/input/frontend/qaxisinput.cpp
@@ -91,21 +91,6 @@ QAbstractPhysicalDevice *QAxisInput::sourceDevice() const
return d->m_sourceDevice;
}
-void QAxisInput::setAxis(int axis)
-{
- Q_D(QAxisInput);
- if (d->m_axis != axis) {
- d->m_axis = axis;
- emit axisChanged(axis);
- }
-}
-
-int QAxisInput::axis() const
-{
- Q_D(const QAxisInput);
- return d->m_axis;
-}
-
Qt3DCore::QNodeCreatedChangeBasePtr QAxisInput::createNodeCreationChange() const
{
auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QAxisInputData>::create(this);
@@ -113,7 +98,6 @@ Qt3DCore::QNodeCreatedChangeBasePtr QAxisInput::createNodeCreationChange() const
Q_D(const QAxisInput);
data.sourceDeviceId = qIdForNode(d->m_sourceDevice);
- data.axis = d->m_axis;
return creationChange;
}
diff --git a/src/input/frontend/qaxisinput.h b/src/input/frontend/qaxisinput.h
index da840f25a..ae67cce57 100644
--- a/src/input/frontend/qaxisinput.h
+++ b/src/input/frontend/qaxisinput.h
@@ -55,21 +55,17 @@ class QT3DINPUTSHARED_EXPORT QAxisInput : public Qt3DCore::QNode
{
Q_OBJECT
Q_PROPERTY(Qt3DInput::QAbstractPhysicalDevice *sourceDevice READ sourceDevice WRITE setSourceDevice NOTIFY sourceDeviceChanged)
- Q_PROPERTY(int axis READ axis WRITE setAxis NOTIFY axisChanged)
public:
explicit QAxisInput(Qt3DCore::QNode *parent = nullptr);
QAbstractPhysicalDevice *sourceDevice() const;
- int axis() const;
public Q_SLOTS:
void setSourceDevice(QAbstractPhysicalDevice *sourceDevice);
- void setAxis(int axis);
Q_SIGNALS:
void sourceDeviceChanged(QAbstractPhysicalDevice *sourceDevice);
- void axisChanged(int axis);
protected:
QAxisInput(QAxisInputPrivate &dd, QNode *parent = nullptr);
diff --git a/src/input/frontend/qaxisinput_p.h b/src/input/frontend/qaxisinput_p.h
index cb025ff50..5e9fd67d7 100644
--- a/src/input/frontend/qaxisinput_p.h
+++ b/src/input/frontend/qaxisinput_p.h
@@ -67,17 +67,14 @@ public:
QAxisInputPrivate()
: Qt3DCore::QNodePrivate()
, m_sourceDevice(nullptr)
- , m_axis(-1)
{}
QAbstractPhysicalDevice *m_sourceDevice;
- int m_axis;
};
struct QAxisInputData
{
Qt3DCore::QNodeId sourceDeviceId;
- int axis;
};
} // Qt3DInput
diff --git a/src/input/frontend/qbuttonaxisinput.cpp b/src/input/frontend/qbuttonaxisinput.cpp
index cd74cc8da..4d3a2d6da 100644
--- a/src/input/frontend/qbuttonaxisinput.cpp
+++ b/src/input/frontend/qbuttonaxisinput.cpp
@@ -103,7 +103,6 @@ Qt3DCore::QNodeCreatedChangeBasePtr QButtonAxisInput::createNodeCreationChange()
Q_D(const QButtonAxisInput);
data.sourceDeviceId = qIdForNode(d->m_sourceDevice);
- data.axis = d->m_axis;
data.buttons = d->m_buttons;
data.scale = d->m_scale;
diff --git a/src/input/frontend/qinputaspect.cpp b/src/input/frontend/qinputaspect.cpp
index 0169be233..fa856a750 100644
--- a/src/input/frontend/qinputaspect.cpp
+++ b/src/input/frontend/qinputaspect.cpp
@@ -62,9 +62,9 @@
#include <Qt3DInput/qaxis.h>
#include <Qt3DInput/qaction.h>
-#include <Qt3DInput/qaxisinput.h>
#include <Qt3DInput/qaxissetting.h>
#include <Qt3DInput/qactioninput.h>
+#include <Qt3DInput/qanalogaxisinput.h>
#include <Qt3DInput/qbuttonaxisinput.h>
#include <Qt3DInput/qinputchord.h>
#include <Qt3DInput/qinputsequence.h>
@@ -119,6 +119,7 @@ QInputAspect::QInputAspect(QObject *parent)
registerBackendType<QMouseHandler>(QBackendNodeMapperPtr(new Input::MouseHandlerFunctor(d_func()->m_inputHandler.data())));
registerBackendType<QAxis>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::Axis, Input::AxisManager>(d_func()->m_inputHandler->axisManager())));
registerBackendType<QAxisInput>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::AxisInput, Input::AxisInputManager>(d_func()->m_inputHandler->axisInputManager())));
+ registerBackendType<QAnalogAxisInput>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::AnalogAxisInput, Input::AnalogAxisInputManager>(d_func()->m_inputHandler->analogAxisInputManager())));
registerBackendType<QButtonAxisInput>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::ButtonAxisInput, Input::ButtonAxisInputManager>(d_func()->m_inputHandler->buttonAxisInputManager())));
registerBackendType<QAxisSetting>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::AxisSetting, Input::AxisSettingManager>(d_func()->m_inputHandler->axisSettingManager())));
registerBackendType<Qt3DInput::QAction>(QBackendNodeMapperPtr(new Input::InputNodeFunctor<Input::Action, Input::ActionManager>(d_func()->m_inputHandler->actionManager())));
diff --git a/src/quick3d/imports/extras/defaults/qml/FirstPersonCameraController.qml b/src/quick3d/imports/extras/defaults/qml/FirstPersonCameraController.qml
index f1c09c5d6..0765956c9 100644
--- a/src/quick3d/imports/extras/defaults/qml/FirstPersonCameraController.qml
+++ b/src/quick3d/imports/extras/defaults/qml/FirstPersonCameraController.qml
@@ -105,14 +105,14 @@ Entity {
// Rotation
Axis {
id: rxAxis
- AxisInput {
+ AnalogAxisInput {
sourceDevice: mouseSourceDevice
axis: MouseDevice.X
}
},
Axis {
id: ryAxis
- AxisInput {
+ AnalogAxisInput {
sourceDevice: mouseSourceDevice
axis: MouseDevice.Y
}
diff --git a/src/quick3d/imports/extras/defaults/qml/OrbitController.qml b/src/quick3d/imports/extras/defaults/qml/OrbitController.qml
index 3673a8d60..328b7b98e 100644
--- a/src/quick3d/imports/extras/defaults/qml/OrbitController.qml
+++ b/src/quick3d/imports/extras/defaults/qml/OrbitController.qml
@@ -132,14 +132,14 @@ Entity {
// Mouse
Axis {
id: mouseXAxis
- AxisInput {
+ AnalogAxisInput {
sourceDevice: mouseSourceDevice
axis: MouseDevice.X
}
},
Axis {
id: mouseYAxis
- AxisInput {
+ AnalogAxisInput {
sourceDevice: mouseSourceDevice
axis: MouseDevice.Y
}
diff --git a/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp b/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp
index 25b4ae276..c18beb81d 100644
--- a/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp
+++ b/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp
@@ -46,10 +46,10 @@
#include <Qt3DInput/qmouseevent.h>
#include <Qt3DInput/qaxis.h>
-#include <Qt3DInput/qaxisinput.h>
#include <Qt3DInput/qaxissetting.h>
#include <Qt3DInput/qaction.h>
#include <Qt3DInput/qactioninput.h>
+#include <Qt3DInput/qanalogaxisinput.h>
#include <Qt3DInput/qbuttonaxisinput.h>
#include <Qt3DInput/qinputsequence.h>
#include <Qt3DInput/qinputchord.h>
@@ -89,6 +89,7 @@ void Qt3DQuick3DInputPlugin::registerTypes(const char *uri)
qmlRegisterType<Qt3DInput::QActionInput>(uri, 2, 0, "ActionInput");
qmlRegisterType<Qt3DInput::QAxisInput>(uri, 2, 0, "AxisInput");
qmlRegisterType<Qt3DInput::QAxisSetting>(uri, 2, 0, "AxisSetting");
+ qmlRegisterType<Qt3DInput::QAnalogAxisInput>(uri, 2, 0, "AnalogAxisInput");
qmlRegisterType<Qt3DInput::QButtonAxisInput>(uri, 2, 0, "ButtonAxisInput");
qmlRegisterExtendedType<Qt3DInput::QAxis, Qt3DInput::Input::Quick::Quick3DAxis>(uri, 2, 0, "Axis");
qmlRegisterExtendedType<Qt3DInput::QAction, Qt3DInput::Input::Quick::Quick3DAction>(uri, 2, 0, "Action");
diff --git a/tests/auto/input/analogaxisinput/analogaxisinput.pro b/tests/auto/input/analogaxisinput/analogaxisinput.pro
new file mode 100644
index 000000000..7bd0a9865
--- /dev/null
+++ b/tests/auto/input/analogaxisinput/analogaxisinput.pro
@@ -0,0 +1,12 @@
+TEMPLATE = app
+
+TARGET = tst_analogaxisinput
+
+QT += core-private 3dcore 3dcore-private 3dinput 3dinput-private testlib
+
+CONFIG += testcase
+
+SOURCES += tst_analogaxisinput.cpp
+
+include(../../core/common/common.pri)
+include(../commons/commons.pri)
diff --git a/tests/auto/input/analogaxisinput/tst_analogaxisinput.cpp b/tests/auto/input/analogaxisinput/tst_analogaxisinput.cpp
new file mode 100644
index 000000000..99110116c
--- /dev/null
+++ b/tests/auto/input/analogaxisinput/tst_analogaxisinput.cpp
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QTest>
+#include <qbackendnodetester.h>
+#include <Qt3DCore/private/qnode_p.h>
+#include <Qt3DCore/private/qscene_p.h>
+#include <Qt3DCore/qnodepropertychange.h>
+#include <Qt3DInput/private/analogaxisinput_p.h>
+#include <Qt3DInput/QAnalogAxisInput>
+#include <Qt3DCore/qnodepropertychange.h>
+#include "testdevice.h"
+
+class tst_AnalogAxisInput: public Qt3DCore::QBackendNodeTester
+{
+ Q_OBJECT
+
+private Q_SLOTS:
+
+ void checkPeerPropertyMirroring()
+ {
+ // GIVEN
+ Qt3DInput::Input::AnalogAxisInput backendAxisInput;
+ Qt3DInput::QAnalogAxisInput axisInput;
+ TestDevice sourceDevice;
+
+ axisInput.setAxis(327);
+ axisInput.setSourceDevice(&sourceDevice);
+
+ // WHEN
+ simulateInitialization(&axisInput, &backendAxisInput);
+
+ // THEN
+ QCOMPARE(backendAxisInput.peerId(), axisInput.id());
+ QCOMPARE(backendAxisInput.isEnabled(), axisInput.isEnabled());
+ QCOMPARE(backendAxisInput.axis(), axisInput.axis());
+ QCOMPARE(backendAxisInput.sourceDevice(), sourceDevice.id());
+ }
+
+ void checkInitialAndCleanedUpState()
+ {
+ // GIVEN
+ Qt3DInput::Input::AnalogAxisInput backendAxisInput;
+
+ // THEN
+ QVERIFY(backendAxisInput.peerId().isNull());
+ QCOMPARE(backendAxisInput.axis(), 0);
+ QCOMPARE(backendAxisInput.isEnabled(), false);
+ QCOMPARE(backendAxisInput.sourceDevice(), Qt3DCore::QNodeId());
+
+ // GIVEN
+ Qt3DInput::QAnalogAxisInput axisInput;
+ TestDevice sourceDevice;
+
+ axisInput.setAxis(327);
+ axisInput.setSourceDevice(&sourceDevice);
+
+ // WHEN
+ backendAxisInput.updateFromPeer(&axisInput);
+ backendAxisInput.cleanup();
+
+ // THEN
+ QVERIFY(backendAxisInput.peerId().isNull());
+ QCOMPARE(backendAxisInput.axis(), 0);
+ QCOMPARE(backendAxisInput.isEnabled(), false);
+ QCOMPARE(backendAxisInput.sourceDevice(), Qt3DCore::QNodeId());
+ }
+
+ void checkPropertyChanges()
+ {
+ // GIVEN
+ Qt3DInput::Input::AnalogAxisInput backendAxisInput;
+
+ // WHEN
+ Qt3DCore::QNodePropertyChangePtr updateChange(new Qt3DCore::QNodePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId()));
+ updateChange->setValue(32);
+ updateChange->setPropertyName("axis");
+ backendAxisInput.sceneChangeEvent(updateChange);
+
+ // THEN
+ QCOMPARE(backendAxisInput.axis(), 32);
+
+ // WHEN
+ updateChange.reset(new Qt3DCore::QNodePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId()));
+ updateChange->setPropertyName("enabled");
+ updateChange->setValue(true);
+ backendAxisInput.sceneChangeEvent(updateChange);
+
+ // THEN
+ QCOMPARE(backendAxisInput.isEnabled(), true);
+
+ // WHEN
+ TestDevice device;
+ updateChange.reset(new Qt3DCore::QNodePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId()));
+ updateChange->setPropertyName("sourceDevice");
+ updateChange->setValue(QVariant::fromValue(device.id()));
+ backendAxisInput.sceneChangeEvent(updateChange);
+
+ // THEN
+ QCOMPARE(backendAxisInput.sourceDevice(), device.id());
+ }
+};
+
+QTEST_APPLESS_MAIN(tst_AnalogAxisInput)
+
+#include "tst_analogaxisinput.moc"
diff --git a/tests/auto/input/axisinput/tst_axisinput.cpp b/tests/auto/input/axisinput/tst_axisinput.cpp
index 011d7d2fc..06edd031a 100644
--- a/tests/auto/input/axisinput/tst_axisinput.cpp
+++ b/tests/auto/input/axisinput/tst_axisinput.cpp
@@ -49,7 +49,6 @@ private Q_SLOTS:
Qt3DInput::QAxisInput axisInput;
TestDevice sourceDevice;
- axisInput.setAxis(327);
axisInput.setSourceDevice(&sourceDevice);
// WHEN
@@ -58,7 +57,6 @@ private Q_SLOTS:
// THEN
QCOMPARE(backendAxisInput.peerId(), axisInput.id());
QCOMPARE(backendAxisInput.isEnabled(), axisInput.isEnabled());
- QCOMPARE(backendAxisInput.axis(), axisInput.axis());
QCOMPARE(backendAxisInput.sourceDevice(), sourceDevice.id());
}
@@ -69,7 +67,6 @@ private Q_SLOTS:
// THEN
QVERIFY(backendAxisInput.peerId().isNull());
- QCOMPARE(backendAxisInput.axis(), 0);
QCOMPARE(backendAxisInput.isEnabled(), false);
QCOMPARE(backendAxisInput.sourceDevice(), Qt3DCore::QNodeId());
@@ -77,7 +74,6 @@ private Q_SLOTS:
Qt3DInput::QAxisInput axisInput;
TestDevice sourceDevice;
- axisInput.setAxis(327);
axisInput.setSourceDevice(&sourceDevice);
// WHEN
@@ -86,7 +82,6 @@ private Q_SLOTS:
// THEN
QVERIFY(backendAxisInput.peerId().isNull());
- QCOMPARE(backendAxisInput.axis(), 0);
QCOMPARE(backendAxisInput.isEnabled(), false);
QCOMPARE(backendAxisInput.sourceDevice(), Qt3DCore::QNodeId());
}
@@ -98,15 +93,6 @@ private Q_SLOTS:
// WHEN
Qt3DCore::QNodePropertyChangePtr updateChange(new Qt3DCore::QNodePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId()));
- updateChange->setValue(32);
- updateChange->setPropertyName("axis");
- backendAxisInput.sceneChangeEvent(updateChange);
-
- // THEN
- QCOMPARE(backendAxisInput.axis(), 32);
-
- // WHEN
- updateChange.reset(new Qt3DCore::QNodePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId()));
updateChange->setPropertyName("enabled");
updateChange->setValue(true);
backendAxisInput.sceneChangeEvent(updateChange);
diff --git a/tests/auto/input/buttonaxisinput/tst_buttonaxisinput.cpp b/tests/auto/input/buttonaxisinput/tst_buttonaxisinput.cpp
index ede60e134..9f278bbbe 100644
--- a/tests/auto/input/buttonaxisinput/tst_buttonaxisinput.cpp
+++ b/tests/auto/input/buttonaxisinput/tst_buttonaxisinput.cpp
@@ -62,7 +62,6 @@ private Q_SLOTS:
TestDevice sourceDevice;
axisInput.setButtons(QVariantList() << QVariant(1 << 8));
- axisInput.setAxis(327);
axisInput.setScale(0.5f);
axisInput.setSourceDevice(&sourceDevice);
@@ -73,7 +72,6 @@ private Q_SLOTS:
QCOMPARE(backendAxisInput.peerId(), axisInput.id());
QCOMPARE(backendAxisInput.isEnabled(), axisInput.isEnabled());
compareKeys(backendAxisInput.buttons(), axisInput.buttons());
- QCOMPARE(backendAxisInput.axis(), axisInput.axis());
QCOMPARE(backendAxisInput.scale(), axisInput.scale());
QCOMPARE(backendAxisInput.sourceDevice(), sourceDevice.id());
}
@@ -87,7 +85,6 @@ private Q_SLOTS:
QVERIFY(backendAxisInput.peerId().isNull());
QCOMPARE(backendAxisInput.scale(), 0.0f);
QVERIFY(backendAxisInput.buttons().isEmpty());
- QCOMPARE(backendAxisInput.axis(), 0);
QCOMPARE(backendAxisInput.isEnabled(), false);
QCOMPARE(backendAxisInput.sourceDevice(), Qt3DCore::QNodeId());
@@ -96,7 +93,6 @@ private Q_SLOTS:
TestDevice sourceDevice;
axisInput.setButtons(QVariantList() << QVariant(1 << 8));
- axisInput.setAxis(327);
axisInput.setScale(0.5f);
axisInput.setSourceDevice(&sourceDevice);
@@ -108,7 +104,6 @@ private Q_SLOTS:
QVERIFY(backendAxisInput.peerId().isNull());
QCOMPARE(backendAxisInput.scale(), 0.0f);
QVERIFY(backendAxisInput.buttons().isEmpty());
- QCOMPARE(backendAxisInput.axis(), 0);
QCOMPARE(backendAxisInput.isEnabled(), false);
QCOMPARE(backendAxisInput.sourceDevice(), Qt3DCore::QNodeId());
}
@@ -118,18 +113,8 @@ private Q_SLOTS:
// GIVEN
Qt3DInput::Input::ButtonAxisInput backendAxisInput;
-
// WHEN
- Qt3DCore::QNodePropertyChangePtr updateChange(new Qt3DCore::QNodePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId()));
- updateChange->setValue(32);
- updateChange->setPropertyName("axis");
- backendAxisInput.sceneChangeEvent(updateChange);
-
- // THEN
- QCOMPARE(backendAxisInput.axis(), 32);
-
- // WHEN
- updateChange.reset(new Qt3DCore::QNodePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId()));
+ Qt3DCore::QNodePropertyChangePtr updateChange(new Qt3DCore::QNodePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId()));
updateChange->setValue(QVariantList() << QVariant(64));
updateChange->setPropertyName("buttons");
backendAxisInput.sceneChangeEvent(updateChange);
diff --git a/tests/auto/input/input.pro b/tests/auto/input/input.pro
index b4790f9ff..ed9bf41d6 100644
--- a/tests/auto/input/input.pro
+++ b/tests/auto/input/input.pro
@@ -6,10 +6,12 @@ contains(QT_CONFIG, private_tests) {
qaction \
qactioninput \
qaxisinput \
+ qanalogaxisinput \
qbuttonaxisinput \
qlogicaldevice \
axis \
action \
axisinput \
+ analogaxisinput \
buttonaxisinput
}
diff --git a/tests/auto/input/qanalogaxisinput/qanalogaxisinput.pro b/tests/auto/input/qanalogaxisinput/qanalogaxisinput.pro
new file mode 100644
index 000000000..e693c160b
--- /dev/null
+++ b/tests/auto/input/qanalogaxisinput/qanalogaxisinput.pro
@@ -0,0 +1,12 @@
+TEMPLATE = app
+
+TARGET = tst_qanalogaxisinput
+
+QT += core-private 3dcore 3dcore-private 3dinput 3dinput-private testlib
+
+CONFIG += testcase
+
+SOURCES += tst_qanalogaxisinput.cpp
+
+include(../../render/commons/commons.pri)
+include(../commons/commons.pri)
diff --git a/tests/auto/input/qanalogaxisinput/tst_qanalogaxisinput.cpp b/tests/auto/input/qanalogaxisinput/tst_qanalogaxisinput.cpp
new file mode 100644
index 000000000..db34a37bf
--- /dev/null
+++ b/tests/auto/input/qanalogaxisinput/tst_qanalogaxisinput.cpp
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QTest>
+#include <Qt3DCore/private/qnode_p.h>
+#include <Qt3DCore/private/qscene_p.h>
+#include <Qt3DCore/private/qnodecreatedchangegenerator_p.h>
+
+#include <Qt3DInput/QAnalogAxisInput>
+#include <Qt3DInput/QAbstractPhysicalDevice>
+#include <Qt3DInput/private/qanalogaxisinput_p.h>
+
+#include "testpostmanarbiter.h"
+#include "testdevice.h"
+
+class tst_QAnalogAxisInput: public QObject
+{
+ Q_OBJECT
+public:
+ tst_QAnalogAxisInput()
+ {
+ qRegisterMetaType<Qt3DInput::QAbstractPhysicalDevice*>("Qt3DInput::QAbstractPhysicalDevice*");
+ }
+
+private Q_SLOTS:
+ void checkCloning_data()
+ {
+ QTest::addColumn<Qt3DInput::QAnalogAxisInput *>("axisInput");
+
+ Qt3DInput::QAnalogAxisInput *defaultConstructed = new Qt3DInput::QAnalogAxisInput();
+ QTest::newRow("defaultConstructed") << defaultConstructed;
+
+ Qt3DInput::QAnalogAxisInput *axisInputWithAxis = new Qt3DInput::QAnalogAxisInput();
+ axisInputWithAxis->setAxis(383);
+ QTest::newRow("axisInputWithAxis") << axisInputWithAxis;
+
+ Qt3DInput::QAnalogAxisInput *axisInputWithAxisAndSourceDevice = new Qt3DInput::QAnalogAxisInput();
+ TestDevice *device = new TestDevice();
+ axisInputWithAxisAndSourceDevice->setSourceDevice(device);
+ axisInputWithAxisAndSourceDevice->setAxis(427);
+ QTest::newRow("axisInputWithAxisAndSourceDevice") << axisInputWithAxisAndSourceDevice;
+ }
+
+ void checkCloning()
+ {
+ // GIVEN
+ QFETCH(Qt3DInput::QAnalogAxisInput *, axisInput);
+
+ // WHEN
+ Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(axisInput);
+ QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges = creationChangeGenerator.creationChanges();
+
+ // THEN
+ QCOMPARE(creationChanges.size(), 1 + (axisInput->sourceDevice() ? 1 : 0));
+
+ const Qt3DCore::QNodeCreatedChangePtr<Qt3DInput::QAnalogAxisInputData> creationChangeData =
+ qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DInput::QAnalogAxisInputData>>(creationChanges.first());
+ const Qt3DInput::QAnalogAxisInputData &cloneData = creationChangeData->data;
+ QCOMPARE(axisInput->id(), creationChangeData->subjectId());
+ QCOMPARE(axisInput->isEnabled(), creationChangeData->isNodeEnabled());
+ QCOMPARE(axisInput->metaObject(), creationChangeData->metaObject());
+ QCOMPARE(axisInput->axis(), cloneData.axis);
+ QCOMPARE(axisInput->sourceDevice() ? axisInput->sourceDevice()->id() : Qt3DCore::QNodeId(), cloneData.sourceDeviceId);
+ }
+
+ void checkPropertyUpdates()
+ {
+ // GIVEN
+ QScopedPointer<Qt3DInput::QAnalogAxisInput> axisInput(new Qt3DInput::QAnalogAxisInput());
+ TestArbiter arbiter(axisInput.data());
+
+ // WHEN
+ axisInput->setAxis(350);
+ QCoreApplication::processEvents();
+
+ // THEN
+ QCOMPARE(arbiter.events.size(), 1);
+ Qt3DCore::QNodePropertyChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QNodePropertyChange>();
+ QCOMPARE(change->propertyName(), "axis");
+ QCOMPARE(change->value().toInt(), 350);
+ QCOMPARE(change->type(), Qt3DCore::NodeUpdated);
+
+ arbiter.events.clear();
+
+ // WHEN
+ TestDevice *device = new TestDevice(axisInput.data());
+ QCoreApplication::processEvents();
+ arbiter.events.clear();
+
+ axisInput->setSourceDevice(device);
+ QCoreApplication::processEvents();
+
+ // THEN
+ QCOMPARE(arbiter.events.size(), 1);
+ change = arbiter.events.first().staticCast<Qt3DCore::QNodePropertyChange>();
+ QCOMPARE(change->propertyName(), "sourceDevice");
+ QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), device->id());
+ QCOMPARE(change->type(), Qt3DCore::NodeUpdated);
+
+ arbiter.events.clear();
+ }
+};
+
+QTEST_MAIN(tst_QAnalogAxisInput)
+
+#include "tst_qanalogaxisinput.moc"
diff --git a/tests/auto/input/qaxisinput/tst_qaxisinput.cpp b/tests/auto/input/qaxisinput/tst_qaxisinput.cpp
index 465d85ee2..d34060e05 100644
--- a/tests/auto/input/qaxisinput/tst_qaxisinput.cpp
+++ b/tests/auto/input/qaxisinput/tst_qaxisinput.cpp
@@ -55,15 +55,10 @@ private Q_SLOTS:
Qt3DInput::QAxisInput *defaultConstructed = new Qt3DInput::QAxisInput();
QTest::newRow("defaultConstructed") << defaultConstructed;
- Qt3DInput::QAxisInput *axisInputWithAxis = new Qt3DInput::QAxisInput();
- axisInputWithAxis->setAxis(383);
- QTest::newRow("axisInputWithAxis") << axisInputWithAxis;
-
- Qt3DInput::QAxisInput *axisInputWithAxisAndSourceDevice = new Qt3DInput::QAxisInput();
+ Qt3DInput::QAxisInput *axisInputWithSourceDevice = new Qt3DInput::QAxisInput();
TestDevice *device = new TestDevice();
- axisInputWithAxisAndSourceDevice->setSourceDevice(device);
- axisInputWithAxisAndSourceDevice->setAxis(427);
- QTest::newRow("axisInputWithAxisAndSourceDevice") << axisInputWithAxisAndSourceDevice;
+ axisInputWithSourceDevice->setSourceDevice(device);
+ QTest::newRow("axisInputWithSourceDevice") << axisInputWithSourceDevice;
}
void checkCloning()
@@ -86,7 +81,6 @@ private Q_SLOTS:
QCOMPARE(axisInput->id(), creationChangeData->subjectId());
QCOMPARE(axisInput->isEnabled(), creationChangeData->isNodeEnabled());
QCOMPARE(axisInput->metaObject(), creationChangeData->metaObject());
- QCOMPARE(axisInput->axis(), cloneData.axis);
QCOMPARE(axisInput->sourceDevice() ? axisInput->sourceDevice()->id() : Qt3DCore::QNodeId(), cloneData.sourceDeviceId);
}
@@ -97,19 +91,6 @@ private Q_SLOTS:
TestArbiter arbiter(axisInput.data());
// WHEN
- axisInput->setAxis(350);
- QCoreApplication::processEvents();
-
- // THEN
- QCOMPARE(arbiter.events.size(), 1);
- Qt3DCore::QNodePropertyChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QNodePropertyChange>();
- QCOMPARE(change->propertyName(), "axis");
- QCOMPARE(change->value().toInt(), 350);
- QCOMPARE(change->type(), Qt3DCore::NodeUpdated);
-
- arbiter.events.clear();
-
- // WHEN
TestDevice *device = new TestDevice(axisInput.data());
QCoreApplication::processEvents();
arbiter.events.clear();
@@ -119,7 +100,7 @@ private Q_SLOTS:
// THEN
QCOMPARE(arbiter.events.size(), 1);
- change = arbiter.events.first().staticCast<Qt3DCore::QNodePropertyChange>();
+ Qt3DCore::QNodePropertyChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QNodePropertyChange>();
QCOMPARE(change->propertyName(), "sourceDevice");
QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), device->id());
QCOMPARE(change->type(), Qt3DCore::NodeUpdated);
diff --git a/tests/auto/input/qbuttonaxisinput/tst_qbuttonaxisinput.cpp b/tests/auto/input/qbuttonaxisinput/tst_qbuttonaxisinput.cpp
index 62c6d8c3d..ebd266e06 100644
--- a/tests/auto/input/qbuttonaxisinput/tst_qbuttonaxisinput.cpp
+++ b/tests/auto/input/qbuttonaxisinput/tst_qbuttonaxisinput.cpp
@@ -55,17 +55,15 @@ private Q_SLOTS:
Qt3DInput::QButtonAxisInput *defaultConstructed = new Qt3DInput::QButtonAxisInput();
QTest::newRow("defaultConstructed") << defaultConstructed;
- Qt3DInput::QButtonAxisInput *axisInputWithKeysAndAxis = new Qt3DInput::QButtonAxisInput();
- axisInputWithKeysAndAxis->setButtons(QVariantList() << QVariant((1 << 1) | (1 << 5)));
- axisInputWithKeysAndAxis->setAxis(383);
- axisInputWithKeysAndAxis->setScale(327.0f);
- QTest::newRow("axisInputWithKeys") << axisInputWithKeysAndAxis;
+ Qt3DInput::QButtonAxisInput *axisInputWithKeys = new Qt3DInput::QButtonAxisInput();
+ axisInputWithKeys->setButtons(QVariantList() << QVariant((1 << 1) | (1 << 5)));
+ axisInputWithKeys->setScale(327.0f);
+ QTest::newRow("axisInputWithKeys") << axisInputWithKeys;
Qt3DInput::QButtonAxisInput *axisInputWithKeysAndSourceDevice = new Qt3DInput::QButtonAxisInput();
TestDevice *device = new TestDevice();
axisInputWithKeysAndSourceDevice->setButtons(QVariantList() << QVariant((1 << 1) | (1 << 5)));
axisInputWithKeysAndSourceDevice->setSourceDevice(device);
- axisInputWithKeysAndSourceDevice->setAxis(427);
axisInputWithKeysAndSourceDevice->setScale(355.0f);
QTest::newRow("axisInputWithKeysAndSourceDevice") << axisInputWithKeysAndSourceDevice;
}
@@ -89,7 +87,6 @@ private Q_SLOTS:
QCOMPARE(axisInput->isEnabled(), creationChangeData->isNodeEnabled());
QCOMPARE(axisInput->metaObject(), creationChangeData->metaObject());
QCOMPARE(axisInput->buttons(), cloneData.buttons);
- QCOMPARE(axisInput->axis(), cloneData.axis);
QCOMPARE(axisInput->scale(), cloneData.scale);
QCOMPARE(axisInput->sourceDevice() ? axisInput->sourceDevice()->id() : Qt3DCore::QNodeId(), cloneData.sourceDeviceId);
}
@@ -128,19 +125,6 @@ private Q_SLOTS:
arbiter.events.clear();
// WHEN
- axisInput->setAxis(350);
- QCoreApplication::processEvents();
-
- // THEN
- QCOMPARE(arbiter.events.size(), 1);
- change = arbiter.events.first().staticCast<Qt3DCore::QNodePropertyChange>();
- QCOMPARE(change->propertyName(), "axis");
- QCOMPARE(change->value().toInt(), 350);
- QCOMPARE(change->type(), Qt3DCore::NodeUpdated);
-
- arbiter.events.clear();
-
- // WHEN
TestDevice *device = new TestDevice(axisInput.data());
QCoreApplication::processEvents();
arbiter.events.clear();