aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kde.org>2015-08-29 15:54:14 +0300
committerBogDan Vatra <bogdan@kdab.com>2015-10-16 05:27:11 +0000
commit00871e531f7fb44feb3dac7abfe4eff0af5dfada (patch)
treebe4f3a63c9ff19d83bf1eaa28335026b835893f1
parentee6ff7f07325edf5979ac02c6bb6e3f41a8d1068 (diff)
We need GamepadManager in QML to listen for gamepad[Dis]Connected signals
Change-Id: I4868a66cad0b1225fb4a8768b7bc585d52e985dd Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
-rw-r--r--src/imports/gamepad/qtgamepad.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/imports/gamepad/qtgamepad.cpp b/src/imports/gamepad/qtgamepad.cpp
index ae37e62..1d550db 100644
--- a/src/imports/gamepad/qtgamepad.cpp
+++ b/src/imports/gamepad/qtgamepad.cpp
@@ -34,6 +34,7 @@
**
****************************************************************************/
+#include <QtQml/qqmlengine.h>
#include <QtQml/qqmlextensionplugin.h>
#include <QtQml/qqml.h>
@@ -44,6 +45,13 @@
QT_BEGIN_NAMESPACE
+static QObject *gamepadmanager_singletontype_provider(QQmlEngine */*engine*/, QJSEngine */*scriptEngine*/)
+{
+ QGamepadManager *manager = QGamepadManager::instance();
+ QQmlEngine::setObjectOwnership(manager, QQmlEngine::CppOwnership);
+ return manager;
+}
+
class QGamepadModule : public QQmlExtensionPlugin
{
Q_OBJECT
@@ -53,6 +61,7 @@ public:
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("QtGamepad"));
+ qmlRegisterSingletonType<QGamepadManager>(uri, 1, 0, "GamepadManager", &gamepadmanager_singletontype_provider);
qmlRegisterType<QGamepad>(uri, 1, 0, "Gamepad");
qmlRegisterType<QGamepadKeyNavigation>(uri, 1, 0, "GamepadKeyNavigation");
qmlRegisterType<QGamepadMouseItem>(uri, 1, 0, "GamepadMouseItem");