diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2015-11-27 14:48:07 +0000 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2015-11-28 15:02:07 +0000 |
commit | f9f5a391956e143491c8a17ebf8b209118109f2e (patch) | |
tree | ede35254e70dce57d595742128a4cbeb9fe1dfe9 /src/input/frontend | |
parent | cab9cefad698e51560d7cf1f81c4c500f2a1d596 (diff) |
Add QAxisSetting frontend class
Change-Id: I9f433f7deb19027c8a136a24ee0b7edc0c38fce0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/input/frontend')
-rw-r--r-- | src/input/frontend/frontend.pri | 6 | ||||
-rw-r--r-- | src/input/frontend/qaxissetting.cpp | 128 | ||||
-rw-r--r-- | src/input/frontend/qaxissetting.h | 88 |
3 files changed, 220 insertions, 2 deletions
diff --git a/src/input/frontend/frontend.pri b/src/input/frontend/frontend.pri index cbf040fde..0b23e541a 100644 --- a/src/input/frontend/frontend.pri +++ b/src/input/frontend/frontend.pri @@ -19,7 +19,8 @@ HEADERS += \ $$PWD/qlogicaldevice.h \ $$PWD/qinputdeviceintegration.h \ $$PWD/qabstractphysicaldevice.h \ - $$PWD/qinputdeviceintegrationfactory_p.h + $$PWD/qinputdeviceintegrationfactory_p.h \ + $$PWD/qaxissetting.h SOURCES += \ $$PWD/qinputaspect.cpp \ @@ -37,6 +38,7 @@ SOURCES += \ $$PWD/qlogicaldevice.cpp \ $$PWD/qinputdeviceintegration.cpp \ $$PWD/qabstractphysicaldevice.cpp \ - $$PWD/qinputdeviceintegrationfactory.cpp + $$PWD/qinputdeviceintegrationfactory.cpp \ + $$PWD/qaxissetting.cpp INCLUDEPATH += $$PWD diff --git a/src/input/frontend/qaxissetting.cpp b/src/input/frontend/qaxissetting.cpp new file mode 100644 index 000000000..eee0be04b --- /dev/null +++ b/src/input/frontend/qaxissetting.cpp @@ -0,0 +1,128 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://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.LGPLv3 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.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 later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qaxissetting.h" +#include <Qt3DCore/private/qnode_p.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3DInput { + +class QAxisSettingPrivate : public Qt3DCore::QNodePrivate +{ +public: + QAxisSettingPrivate() + : Qt3DCore::QNodePrivate() + , m_deadZone(0.0f) + , m_axes(0) + , m_filter(false) + {} + + float m_deadZone; + int m_axes; + bool m_filter; +}; + +QAxisSetting::QAxisSetting(Qt3DCore::QNode *parent) + : QNode(*new QAxisSettingPrivate(), parent) +{ +} + +QAxisSetting::~QAxisSetting() +{ + QNode::cleanup(); +} + +int QAxisSetting::axes() const +{ + Q_D(const QAxisSetting); + return d->m_axes; +} + +float QAxisSetting::deadZone() const +{ + Q_D(const QAxisSetting); + return d->m_deadZone; +} + +bool QAxisSetting::isFilterEnabled() const +{ + Q_D(const QAxisSetting); + return d->m_filter; +} + +void QAxisSetting::setDeadZone(float deadZone) +{ + Q_D(QAxisSetting); + if (d->m_deadZone == deadZone) + return; + + d->m_deadZone = deadZone; + emit deadZoneChanged(deadZone); +} + +void QAxisSetting::setAxes(int axes) +{ + Q_D(QAxisSetting); + if (d->m_axes == axes) + return; + + d->m_axes = axes; + emit axesChanged(axes); +} + +void QAxisSetting::setFilterEnabled(bool enabled) +{ + Q_D(QAxisSetting); + if (d->m_filter == enabled) + return; + + d->m_filter = enabled; + emit filterChanged(enabled); +} + +void QAxisSetting::copy(const Qt3DCore::QNode *ref) +{ + QNode::copy(ref); + const QAxisSetting *setting = static_cast<const QAxisSetting *>(ref); + d_func()->m_deadZone = setting->d_func()->m_deadZone; + d_func()->m_axes = setting->d_func()->m_axes; + d_func()->m_filter = setting->d_func()->m_filter; +} + +} // namespace Qt3DInput + +QT_END_NAMESPACE diff --git a/src/input/frontend/qaxissetting.h b/src/input/frontend/qaxissetting.h new file mode 100644 index 000000000..1737b5bb2 --- /dev/null +++ b/src/input/frontend/qaxissetting.h @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://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.LGPLv3 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.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 later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3DINPUT_QAXISSETTING_H +#define QT3DINPUT_QAXISSETTING_H + +#include <Qt3DCore/qnode.h> +#include <Qt3DInput/qt3dinput_global.h> + +#include <QtCore/qvector.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3DInput { + +class QAxisSettingPrivate; + +class QT3DINPUTSHARED_EXPORT QAxisSetting : public Qt3DCore::QNode +{ + Q_OBJECT + Q_PROPERTY(float deadZone READ deadZone WRITE setDeadZone NOTIFY deadZoneChanged) + Q_PROPERTY(int axes READ axes WRITE setAxes NOTIFY axesChanged) + Q_PROPERTY(bool filter READ isFilterEnabled WRITE setFilterEnabled NOTIFY filterChanged) + +public: + explicit QAxisSetting(Qt3DCore::QNode *parent = Q_NULLPTR); + ~QAxisSetting(); + + float deadZone() const; + int axes() const; + bool isFilterEnabled() const; + +public Q_SLOTS: + void setDeadZone(float deadZone); + void setAxes(int axes); + void setFilterEnabled(bool enabled); + +Q_SIGNALS: + void deadZoneChanged(float deadZone); + void axesChanged(int axes); + void filterChanged(bool filter); + +protected: + void copy(const Qt3DCore::QNode *ref) Q_DECL_OVERRIDE; + +private: + Q_DECLARE_PRIVATE(QAxisSetting) + QT3D_CLONEABLE(QAxisSetting) +}; + +} // namespace Qt3DInput + +QT_END_NAMESPACE + +#endif // QT3DINPUT_QAXISSETTING_H |