diff options
author | Robert Brock <robert.brock@kdab.com> | 2016-04-29 08:18:06 +0200 |
---|---|---|
committer | Kevin Ottens <kevin.ottens@kdab.com> | 2016-05-02 10:26:25 +0000 |
commit | f63397953d052dc2a35bcc0ec32eaff0ebd80f05 (patch) | |
tree | 869d1bd567a7a8a6d399a2ecb4e6d9e561c6b557 /src/input/backend/updateaxisactionjob.cpp | |
parent | 617e4c768616868a3e306668630efdfca69604d7 (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.cpp | 11 |
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(); } } } |