diff options
Diffstat (limited to 'src/quick3d/imports/input')
-rw-r--r-- | src/quick3d/imports/input/CMakeLists.txt | 8 | ||||
-rw-r--r-- | src/quick3d/imports/input/importsinput.pro | 18 | ||||
-rw-r--r-- | src/quick3d/imports/input/qt3dquick3dinputforeign_p.h | 238 | ||||
-rw-r--r-- | src/quick3d/imports/input/qt3dquick3dinputplugin.cpp | 80 | ||||
-rw-r--r-- | src/quick3d/imports/input/qt3dquick3dinputplugin.h | 22 |
5 files changed, 241 insertions, 125 deletions
diff --git a/src/quick3d/imports/input/CMakeLists.txt b/src/quick3d/imports/input/CMakeLists.txt index d0a57256b..52ce25c8f 100644 --- a/src/quick3d/imports/input/CMakeLists.txt +++ b/src/quick3d/imports/input/CMakeLists.txt @@ -11,15 +11,12 @@ qt_internal_add_qml_module(quick3dinputplugin URI "Qt3D.Input" VERSION "2.${PROJECT_VERSION_MINOR}" CLASS_NAME Qt3DQuick3DInputPlugin + NO_PLUGIN_OPTIONAL DEPENDENCIES QtQml/auto PLUGIN_TARGET quick3dinputplugin - NO_PLUGIN_OPTIONAL - NO_GENERATE_PLUGIN_SOURCE - NO_GENERATE_QMLTYPES - INSTALL_SOURCE_QMLTYPES "plugins.qmltypes" SOURCES - qt3dquick3dinputplugin.cpp qt3dquick3dinputplugin.h + qt3dquick3dinputforeign_p.h LIBRARIES Qt::3DCore Qt::3DInput @@ -30,6 +27,7 @@ qt_internal_add_qml_module(quick3dinputplugin Qt::Gui Qt::Qml ) +target_include_directories(quick3dinputplugin PRIVATE ../../quick3dinput/items) #### Keys ignored in scope 1:.:.:importsinput.pro:<TRUE>: # CXX_MODULE = "qml" diff --git a/src/quick3d/imports/input/importsinput.pro b/src/quick3d/imports/input/importsinput.pro deleted file mode 100644 index ec333f992..000000000 --- a/src/quick3d/imports/input/importsinput.pro +++ /dev/null @@ -1,18 +0,0 @@ -CXX_MODULE = qml -TARGET = quick3dinputplugin -TARGETPATH = Qt3D/Input -IMPORT_VERSION = 2.$$QT_MINOR_VERSION - -QT += core-private qml 3dcore 3dinput 3dinput-private 3dquickinput-private - -OTHER_FILES += qmldir - -HEADERS += \ - qt3dquick3dinputplugin.h - -SOURCES += \ - qt3dquick3dinputplugin.cpp - -qtHaveModule(gamepad): DEFINES += HAVE_QGAMEPAD - -load(qml_plugin) diff --git a/src/quick3d/imports/input/qt3dquick3dinputforeign_p.h b/src/quick3d/imports/input/qt3dquick3dinputforeign_p.h new file mode 100644 index 000000000..2079a258e --- /dev/null +++ b/src/quick3d/imports/input/qt3dquick3dinputforeign_p.h @@ -0,0 +1,238 @@ +// Copyright (C) 2023 Klaralvdalens Datakonsult AB (KDAB). +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QT3D_QUICK_INPUT_FOREIGN_P_H +#define QT3D_QUICK_INPUT_FOREIGN_P_H + +#include <QQmlEngine> + +#include <Qt3DInput/qabstractphysicaldevice.h> +#include <Qt3DInput/qaction.h> +#include <Qt3DInput/qactioninput.h> +#include <Qt3DInput/qanalogaxisinput.h> +#include <Qt3DInput/qaxis.h> +#include <Qt3DInput/qaxisaccumulator.h> +#include <Qt3DInput/qaxissetting.h> +#include <Qt3DInput/qbuttonaxisinput.h> +#include <Qt3DInput/qinputchord.h> +#include <Qt3DInput/qinputsequence.h> +#include <Qt3DInput/qinputsettings.h> +#include <Qt3DInput/qkeyboarddevice.h> +#include <Qt3DInput/qkeyboardhandler.h> +#include <Qt3DInput/qkeyevent.h> +#include <Qt3DInput/qlogicaldevice.h> +#include <Qt3DInput/qmousedevice.h> +#include <Qt3DInput/qmouseevent.h> +#include <Qt3DInput/qmousehandler.h> + +#include <Qt3DInput/private/qgenericinputdevice_p.h> +#include <Qt3DQuickInput/private/quick3daction_p.h> +#include <Qt3DQuickInput/private/quick3daxis_p.h> +#include <Qt3DQuickInput/private/quick3dinputchord_p.h> +#include <Qt3DQuickInput/private/quick3dinputsequence_p.h> +#include <Qt3DQuickInput/private/quick3dlogicaldevice_p.h> +#include <Qt3DQuickInput/private/quick3dphysicaldevice_p.h> + +QT_BEGIN_NAMESPACE + +namespace Qt3D { +namespace Input { + +struct QKeyEventForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(KeyEvent) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QKeyEvent) + QML_UNCREATABLE("Events cannot be created") +}; + +struct QKeyboardDeviceForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(KeyboardDevice) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QKeyboardDevice) +}; + +struct QKeyboardHandlerForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(KeyboardHandler) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QKeyboardHandler) +}; + +struct QInputSettingsForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(InputSettings) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QInputSettings) +}; + +struct QQMouseEventForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(MouseEvent) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QMouseEvent) + QML_UNCREATABLE("Events cannot be created") +}; + +#if QT_CONFIG(wheelevent) +struct QWheelEventForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(WheelEvent) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QWheelEvent) + QML_UNCREATABLE("Events cannot be created") +}; +#endif + +struct QMouseHandlerForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(MouseHandler) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QMouseHandler) +}; + +struct QMouseDeviceForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(MouseDevice) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QMouseDevice) +}; + +struct QLogicalDeviceDeviceForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(LogicalDevice) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QLogicalDevice) + QML_EXTENDED(Qt3DInput::Input::Quick::Quick3DLogicalDevice) +}; + +struct QAbstractActionInputForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(AbstractActionInput) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QAbstractActionInput) + QML_UNCREATABLE("AbstractActionInput is abstract") +}; + +struct QActionInputForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(ActionInput) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QActionInput) +}; + +struct QAbstractAxisInputForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(AbstractAxisInput) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QAbstractAxisInput) + QML_UNCREATABLE("AbstractAxisInput is abstract") +}; + +struct QAxisSettingForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(AxisSetting) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QAxisSetting) +}; + +struct QAnalogAxisInputForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(AnalogAxisInput) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QAnalogAxisInput) +}; + +struct QButtonAxisInputForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(ButtonAxisInput) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QButtonAxisInput) +}; + +struct QAxisForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(Axis) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QAxis) + QML_EXTENDED(Qt3DInput::Input::Quick::Quick3DAxis) +}; + +struct QActionForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(Action) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QAction) + QML_EXTENDED(Qt3DInput::Input::Quick::Quick3DAction) +}; + +struct QInputSequenceForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(InputSequence) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QInputSequence) + QML_EXTENDED(Qt3DInput::Input::Quick::Quick3DInputSequence) +}; + +struct QInputChordForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(InputChord) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QInputChord) + QML_EXTENDED(Qt3DInput::Input::Quick::Quick3DInputChord) +}; + +struct QAbstractPhysicalDeviceForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(AbstractPhysicalDevice) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QAbstractPhysicalDevice) + QML_EXTENDED(Qt3DInput::Input::Quick::Quick3DPhysicalDevice) + QML_UNCREATABLE("QAbstractPhysicalDevice is abstract") +}; + +struct QAxisAccumulatorForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(AxisAccumulator) + QML_ADDED_IN_VERSION(2, 1) + QML_FOREIGN(Qt3DInput::QAxisAccumulator) +}; + +#ifdef HAVE_QGAMEPAD +struct QGamepadInputForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(GamepadInput) + QML_ADDED_IN_VERSION(2, 0) + QML_FOREIGN(Qt3DInput::QGamepadInput) +}; +#endif + +} // namespace Input +} // namespace Qt3D + +QT_END_NAMESPACE + +#endif diff --git a/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp b/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp deleted file mode 100644 index 6f7a945d7..000000000 --- a/src/quick3d/imports/input/qt3dquick3dinputplugin.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only - -#include "qt3dquick3dinputplugin.h" - -#include <Qt3DInput/qabstractphysicaldevice.h> -#include <Qt3DInput/qaction.h> -#include <Qt3DInput/qactioninput.h> -#include <Qt3DInput/qanalogaxisinput.h> -#include <Qt3DInput/qaxis.h> -#include <Qt3DInput/qaxisaccumulator.h> -#include <Qt3DInput/qaxissetting.h> -#include <Qt3DInput/qbuttonaxisinput.h> -#include <Qt3DInput/qinputchord.h> -#include <Qt3DInput/qinputsequence.h> -#include <Qt3DInput/qinputsettings.h> -#include <Qt3DInput/qkeyboarddevice.h> -#include <Qt3DInput/qkeyboardhandler.h> -#include <Qt3DInput/qkeyevent.h> -#include <Qt3DInput/qlogicaldevice.h> -#include <Qt3DInput/qmousedevice.h> -#include <Qt3DInput/qmouseevent.h> -#include <Qt3DInput/qmousehandler.h> -#include <QtQml> - -#include <Qt3DInput/private/qgenericinputdevice_p.h> -#include <Qt3DQuickInput/private/quick3daction_p.h> -#include <Qt3DQuickInput/private/quick3daxis_p.h> -#include <Qt3DQuickInput/private/quick3dinputchord_p.h> -#include <Qt3DQuickInput/private/quick3dinputsequence_p.h> -#include <Qt3DQuickInput/private/quick3dlogicaldevice_p.h> -#include <Qt3DQuickInput/private/quick3dphysicaldevice_p.h> - -#ifdef HAVE_QGAMEPAD -# include <Qt3DInput/private/qgamepadinput_p.h> -#endif - -QT_BEGIN_NAMESPACE - -void Qt3DQuick3DInputPlugin::registerTypes(const char *uri) -{ - qmlRegisterUncreatableType<Qt3DInput::QKeyEvent>(uri, 2, 0, "KeyEvent", QStringLiteral("Events cannot be created")); - qmlRegisterType<Qt3DInput::QKeyboardDevice>(uri, 2, 0, "KeyboardDevice"); - qmlRegisterType<Qt3DInput::QKeyboardHandler>(uri, 2, 0, "KeyboardHandler"); - qmlRegisterType<Qt3DInput::QInputSettings>(uri, 2, 0, "InputSettings"); - - qmlRegisterUncreatableType<Qt3DInput::QMouseEvent>(uri, 2, 0, "MouseEvent", QStringLiteral("Events cannot be created")); -#if QT_CONFIG(wheelevent) - qmlRegisterUncreatableType<Qt3DInput::QWheelEvent>(uri, 2, 0, "WheelEvent", QStringLiteral("Events cannot be created")); -#endif - qmlRegisterType<Qt3DInput::QMouseHandler>(uri, 2, 0, "MouseHandler"); - qmlRegisterType<Qt3DInput::QMouseDevice>(uri, 2, 0, "MouseDevice"); - qmlRegisterType<Qt3DInput::QMouseDevice, 15>(uri, 2, 15, "MouseDevice"); - - qmlRegisterExtendedType<Qt3DInput::QLogicalDevice, Qt3DInput::Input::Quick::Quick3DLogicalDevice>(uri, 2, 0, "LogicalDevice"); - qmlRegisterUncreatableType<Qt3DInput::QAbstractActionInput>(uri, 2, 0, "AbstractActionInput", QStringLiteral("AbstractActionInput is abstract")); - qmlRegisterType<Qt3DInput::QActionInput>(uri, 2, 0, "ActionInput"); - qmlRegisterUncreatableType<Qt3DInput::QAbstractAxisInput>(uri, 2, 0, "AbstractAxisInput", QStringLiteral("AbstractAxisInput is abstract")); - 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"); - qmlRegisterExtendedType<Qt3DInput::QInputSequence, Qt3DInput::Input::Quick::Quick3DInputSequence>(uri, 2, 0, "InputSequence"); - qmlRegisterExtendedType<Qt3DInput::QInputChord, Qt3DInput::Input::Quick::Quick3DInputChord>(uri, 2, 0, "InputChord"); - qmlRegisterExtendedUncreatableType<Qt3DInput::QAbstractPhysicalDevice, Qt3DInput::Input::Quick::Quick3DPhysicalDevice>(uri, 2, 0, "QAbstractPhysicalDevice", QStringLiteral("QAbstractPhysicalDevice is abstract")); - qmlRegisterType<Qt3DInput::QAxisAccumulator>(uri, 2, 1, "AxisAccumulator"); - -#ifdef HAVE_QGAMEPAD - qmlRegisterType<Qt3DInput::QGamepadInput>(uri, 2, 0, "GamepadInput"); -#endif - - // The minor version used to be the current Qt 5 minor. For compatibility it is the last - // Qt 5 release. - qmlRegisterModule(uri, 2, 15); -} - -QT_END_NAMESPACE - -#include "moc_qt3dquick3dinputplugin.cpp" diff --git a/src/quick3d/imports/input/qt3dquick3dinputplugin.h b/src/quick3d/imports/input/qt3dquick3dinputplugin.h deleted file mode 100644 index 58b830f63..000000000 --- a/src/quick3d/imports/input/qt3dquick3dinputplugin.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only - -#ifndef QT3DQUICK3DINPUTPLUGIN_H -#define QT3DQUICK3DINPUTPLUGIN_H - -#include <QtQml/QQmlExtensionPlugin> - -QT_BEGIN_NAMESPACE - -class Qt3DQuick3DInputPlugin : public QQmlExtensionPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) -public: - Qt3DQuick3DInputPlugin(QObject *parent = nullptr) : QQmlExtensionPlugin(parent) { } - void registerTypes(const char *uri) override; -}; - -QT_END_NAMESPACE - -#endif // QT3DQUICK3DINPUTPLUGIN_H |