void KdeConnectDeclarativePlugin::registerTypes(const char *uri)
{
qmlRegisterType(uri, 1, 0, "DevicesModel");
qmlRegisterType(uri, 1, 0, "NotificationsModel");
qmlRegisterType(uri, 1, 0, "RemoteCommandsModel");
qmlRegisterType(uri, 1, 0, "DBusAsyncResponse");
qmlRegisterType(uri, 1, 0, "DevicesSortProxyModel");
qmlRegisterType(uri, 1, 0, "DevicesPluginFilterProxyModel");
qmlRegisterType(uri, 1, 0, "RemoteSinksModel");
qmlRegisterType(uri, 1, 0, "PluginModel");
qmlRegisterType(uri, 1, 0, "KdeConnectPluginConfig");
qmlRegisterType(uri, 1, 0, "CommandsModel");
qmlRegisterUncreatableType(uri, 1, 0, "MprisDbusInterface", QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterUncreatableType(uri, 1, 0, "LockDeviceDbusInterface", QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterUncreatableType(uri,
1,
0,
"FindMyPhoneDbusInterface",
QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterUncreatableType(uri,
1,
0,
"RemoteKeyboardDbusInterface",
QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterUncreatableType(uri, 1, 0, "DeviceDbusInterface", QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterUncreatableType(uri,
1,
0,
"RemoteCommandsDbusInterface",
QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterUncreatableType(uri,
1,
0,
"RemoteSystemVolumeInterface",
QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterUncreatableType(uri, 1, 0, "ShareDbusInterface", QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterUncreatableType(uri, 1, 0, "PhotoDbusInterface", QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterUncreatableType(uri, 1, 0, "BigscreenDbusInterface", QStringLiteral("You're not supposed to instantiate interfaces"));
qmlRegisterSingletonType(uri, 1, 0, "DaemonDbusInterface", [](QQmlEngine *, QJSEngine *) -> QObject * {
return new DaemonDbusInterface;
});
qmlRegisterSingletonType("org.kde.kdeconnect", 1, 0, "PointerLocker", [](QQmlEngine *, QJSEngine *) -> QObject * {
AbstractPointerLocker *ret;
#if WITH_WAYLAND
if (qGuiApp->platformName() == QLatin1String("wayland"))
ret = new PointerLockerWayland;
else
#endif
ret = new PointerLockerQt;
return ret;
});
qmlRegisterSingletonType(uri, 1, 0, "OpenConfig", [](QQmlEngine *, QJSEngine *) -> QObject * {
return new OpenConfig;
});
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
qmlRegisterAnonymousType(uri, 1);
#else
qmlRegisterType();
#endif
registerFactory(uri, "DeviceDbusInterfaceFactory");
registerFactory(uri, "DeviceBatteryDbusInterfaceFactory");
registerFactory(uri, "DeviceConnectivityReportDbusInterfaceFactory");
registerFactory(uri, "FindMyPhoneDbusInterfaceFactory");
registerFactory(uri, "SftpDbusInterfaceFactory");
registerFactory(uri, "RemoteKeyboardDbusInterfaceFactory");
registerFactory(uri, "MprisDbusInterfaceFactory");
registerFactory(uri, "RemoteControlDbusInterfaceFactory");
registerFactory(uri, "LockDeviceDbusInterfaceFactory");
registerFactory(uri, "SmsDbusInterfaceFactory");
registerFactory(uri, "RemoteCommandsDbusInterfaceFactory");
registerFactory(uri, "ShareDbusInterfaceFactory");
registerFactory(uri, "PhotoDbusInterfaceFactory");
registerFactory(uri, "RemoteSystemVolumeDbusInterfaceFactory");
registerFactory(uri, "BigscreenDbusInterfaceFactory");
registerFactory(uri, "VirtualmonitorDbusInterfaceFactory");
}
This registers all types of objects, like objects and factories. It allows to register objects of any type, like objects and methods that are not supposed to be instantiated.