21 #include "DBusGreeter.h"
22 #include "DBusGreeterList.h"
24 #include "UsersModel.h"
25 #include <libusermetricsoutput/ColorTheme.h>
26 #include <libusermetricsoutput/UserMetrics.h>
27 #include <QLightDM/UsersModel>
29 #include <QAbstractItemModel>
30 #include <QDBusConnection>
31 #include <QtQml/qqml.h>
33 static const char* GREETER_LIST_DBUS_PATH =
"/list";
34 static const char* GREETER_DBUS_SERVICE =
"com.canonical.UnityGreeter";
36 static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
39 Q_UNUSED(scriptEngine)
41 Greeter *greeter = new Greeter();
42 QDBusConnection connection = QDBusConnection::sessionBus();
44 connection.registerObject("/", root, QDBusConnection::ExportScriptableContents);
46 connection.registerObject(GREETER_LIST_DBUS_PATH, list, QDBusConnection::ExportScriptableContents);
47 connection.registerService(GREETER_DBUS_SERVICE);
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 LightDMPlugin::registerTypes(const
char *uri)
68 qmlRegisterType<QAbstractItemModel>();
69 qmlRegisterType<UserMetricsOutput::ColorTheme>();
71 Q_ASSERT(uri == QLatin1String(
"LightDM"));
72 qmlRegisterSingletonType<Greeter>(uri, 0, 1,
"Greeter", greeter_provider);
73 qmlRegisterSingletonType<UsersModel>(uri, 0, 1,
"Users", users_provider);
74 qmlRegisterUncreatableType<QLightDM::UsersModel>(uri, 0, 1,
"UserRoles",
"Type is not instantiable");
75 qmlRegisterSingletonType<UserMetricsOutput::UserMetrics>(uri, 0, 1,
"Infographic", infographic_provider);