summaryrefslogtreecommitdiffstats
path: root/src/input/backend/updateaxisactionjob.cpp
diff options
context:
space:
mode:
authorRobert Brock <robert.brock@kdab.com>2016-04-29 08:18:06 +0200
committerKevin Ottens <kevin.ottens@kdab.com>2016-05-02 10:26:25 +0000
commitf63397953d052dc2a35bcc0ec32eaff0ebd80f05 (patch)
tree869d1bd567a7a8a6d399a2ecb4e6d9e561c6b557 /src/input/backend/updateaxisactionjob.cpp
parent617e4c768616868a3e306668630efdfca69604d7 (diff)
Splitting of QAxisInput
Placed buttons and scale into a new class named QButtonAxisInput Change-Id: I0e8407dc361d9d6eda38973a8950f77b17119467 Task-number: QTBUG-51474 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/input/backend/updateaxisactionjob.cpp')
-rw-r--r--src/input/backend/updateaxisactionjob.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/input/backend/updateaxisactionjob.cpp b/src/input/backend/updateaxisactionjob.cpp
index 97ad15842..cf35cbac6 100644
--- a/src/input/backend/updateaxisactionjob.cpp
+++ b/src/input/backend/updateaxisactionjob.cpp
@@ -170,6 +170,13 @@ 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;
+ }
+ Q_ASSERT(axisInput);
+
QAbstractPhysicalDeviceBackendNode *physicalDeviceBackend = nullptr;
const auto integrations = m_handler->inputDeviceIntegrations();
@@ -180,14 +187,14 @@ void UpdateAxisActionJob::updateAxis(LogicalDevice *device)
if (physicalDeviceBackend != nullptr) {
// Update the value
- const QVector<int> buttons = axisInput->buttons();
+ 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 += axisInput->scale();
+ axisValue += buttonAxisInput->scale();
}
}
}