19 #include "DBusGreeter.h" 20 #include "DBusGreeterList.h" 22 #include "PromptsModel.h" 23 #include "SessionsModel.h" 24 #include "UsersModel.h" 25 #include <libusermetricsoutput/ColorTheme.h> 26 #include <libusermetricsoutput/UserMetrics.h> 27 #include <QLightDM/SessionsModel> 28 #include <QLightDM/UsersModel> 30 #include <QAbstractItemModel> 31 #include <QDBusConnection> 32 #include <QtQml/qqml.h> 34 static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
36 Q_UNUSED(scriptEngine)
38 Greeter *greeter = Greeter::instance();
42 engine->setObjectOwnership(greeter, QQmlEngine::CppOwnership);
47 static QObject *prompts_provider(QQmlEngine *engine, QJSEngine *)
49 auto model = Greeter::instance()->promptsModel();
50 engine->setObjectOwnership(model, QQmlEngine::CppOwnership);
54 static QObject *sessions_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
57 Q_UNUSED(scriptEngine)
58 return new SessionsModel();
61 static QObject *users_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
64 Q_UNUSED(scriptEngine)
65 return new UsersModel();
68 static QObject *infographic_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
71 Q_UNUSED(scriptEngine)
72 return UserMetricsOutput::UserMetrics::getInstance();
75 void PLUGIN_CLASSNAME::registerTypes(const
char *uri)
77 qmlRegisterType<QAbstractItemModel>();
78 qmlRegisterType<UserMetricsOutput::ColorTheme>();
80 #if defined INTEGRATED_LIGHTDM 81 Q_ASSERT(uri == QLatin1String(
"LightDM.IntegratedLightDM"));
82 qmlRegisterSingletonType<Greeter>(uri, 0, 1,
"Greeter", greeter_provider);
83 #elif defined FULL_LIGHTDM 84 Q_ASSERT(uri == QLatin1String(
"LightDM.FullLightDM"));
85 qmlRegisterSingletonType<QLightDM::Greeter>(uri, 0, 1,
"Greeter", greeter_provider);
87 #error No library defined in LightDM plugin 90 qmlRegisterSingletonType<PromptsModel>(uri, 0, 1,
"Prompts", prompts_provider);
92 qmlRegisterSingletonType<SessionsModel>(uri, 0, 1,
"Sessions", sessions_provider);
93 qmlRegisterUncreatableType<QLightDM::SessionsModel>(uri, 0, 1,
"SessionRoles", QStringLiteral(
"Type is not instantiable"));
95 qmlRegisterSingletonType<UsersModel>(uri, 0, 1,
"Users", users_provider);
96 qmlRegisterUncreatableType<QLightDM::UsersModel>(uri, 0, 1,
"UserRoles", QStringLiteral(
"Type is not instantiable"));
98 qmlRegisterSingletonType<UserMetricsOutput::UserMetrics>(uri, 0, 1,
"Infographic", infographic_provider);