summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/input
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick3d/imports/input')
-rw-r--r--src/quick3d/imports/input/CMakeLists.txt8
-rw-r--r--src/quick3d/imports/input/importsinput.pro18
-rw-r--r--src/quick3d/imports/input/qt3dquick3dinputforeign_p.h238
-rw-r--r--src/quick3d/imports/input/qt3dquick3dinputplugin.cpp80
-rw-r--r--src/quick3d/imports/input/qt3dquick3dinputplugin.h22
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