19 #include "DBusGreeter.h" 20 #include "DBusGreeterList.h" 22 #include "SessionsModel.h" 23 #include "UsersModel.h" 24 #include <libusermetricsoutput/ColorTheme.h> 25 #include <libusermetricsoutput/UserMetrics.h> 26 #include <QLightDM/SessionsModel> 27 #include <QLightDM/UsersModel> 29 #include <QAbstractItemModel> 30 #include <QDBusConnection> 31 #include <QtQml/qqml.h> 33 static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
36 Q_UNUSED(scriptEngine)
38 Greeter *greeter = new Greeter();
45 static QObject *sessions_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
48 Q_UNUSED(scriptEngine)
49 return new SessionsModel();
52 static QObject *users_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
55 Q_UNUSED(scriptEngine)
56 return new UsersModel();
59 static QObject *infographic_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
62 Q_UNUSED(scriptEngine)
63 return UserMetricsOutput::UserMetrics::getInstance();
66 void PLUGIN_CLASSNAME::registerTypes(const
char *uri)
68 qmlRegisterType<QAbstractItemModel>();
69 qmlRegisterType<UserMetricsOutput::ColorTheme>();
71 #if defined INTEGRATED_LIGHTDM 72 Q_ASSERT(uri == QLatin1String(
"LightDM.IntegratedLightDM"));
73 qmlRegisterSingletonType<Greeter>(uri, 0, 1,
"Greeter", greeter_provider);
74 #elif defined FULL_LIGHTDM 75 Q_ASSERT(uri == QLatin1String(
"LightDM.FullLightDM"));
76 qmlRegisterSingletonType<QLightDM::Greeter>(uri, 0, 1,
"Greeter", greeter_provider);
78 #error No library defined in LightDM plugin 81 qRegisterMetaType<QLightDM::Greeter::MessageType>(
"QLightDM::Greeter::MessageType");
82 qRegisterMetaType<QLightDM::Greeter::PromptType>(
"QLightDM::Greeter::PromptType");
84 qmlRegisterSingletonType<SessionsModel>(uri, 0, 1,
"Sessions", sessions_provider);
85 qmlRegisterUncreatableType<QLightDM::SessionsModel>(uri, 0, 1,
"SessionRoles", QStringLiteral(
"Type is not instantiable"));
87 qmlRegisterSingletonType<UsersModel>(uri, 0, 1,
"Users", users_provider);
88 qmlRegisterUncreatableType<QLightDM::UsersModel>(uri, 0, 1,
"UserRoles", QStringLiteral(
"Type is not instantiable"));
90 qmlRegisterSingletonType<UserMetricsOutput::UserMetrics>(uri, 0, 1,
"Infographic", infographic_provider);