on 16fa310 help sign in
79 lines 2.8 kB history raw
1/*
2 * Copyright (C) 2014, 2015 Canonical, Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
17#include "plugin.h"
18#include <DBusGreeter.h>
19#include <DBusGreeterList.h>
20#include "MockGreeter.h"
21#include "MockSessionsModel.h"
22#include "MockUsersModel.h"
23#include <QLightDM/SessionsModel>
24#include "ColorTheme.h"
25#include "UserMetrics.h"
26#include <QLightDM/UsersModel>
28#include <QAbstractItemModel>
29#include <QDBusConnection>
30#include <QtQml/qqml.h>
32static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
34 Q_UNUSED(engine)
35 Q_UNUSED(scriptEngine)
37 MockGreeter *greeter = new MockGreeter;
38 new DBusGreeter(greeter, "/");
39 new DBusGreeterList(greeter, "/list");
41 return greeter;
44static QObject *sessions_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
46 Q_UNUSED(engine)
47 Q_UNUSED(scriptEngine)
48 return new MockSessionsModel;
51static QObject *users_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
53 Q_UNUSED(engine)
54 Q_UNUSED(scriptEngine)
55 return new MockUsersModel;
58static QObject *infographic_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
60 Q_UNUSED(engine)
61 Q_UNUSED(scriptEngine)
62 return UserMetricsOutput::UserMetrics::getInstance();
65void LightDMPlugin::registerTypes(const char *uri)
67 qmlRegisterType<QAbstractItemModel>();
68 qmlRegisterType<UserMetricsOutput::ColorTheme>();
70 Q_ASSERT(uri == QLatin1String("LightDM.IntegratedLightDM"));
71 qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
72 qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
73 qmlRegisterSingletonType<MockGreeter>(uri, 0, 1, "Greeter", greeter_provider);
74 qmlRegisterSingletonType<MockSessionsModel>(uri, 0, 1, "Sessions", sessions_provider);
75 qmlRegisterUncreatableType<QLightDM::SessionsModel>(uri, 0, 1, "SessionRoles", "Type is not instantiable");
76 qmlRegisterSingletonType<MockUsersModel>(uri, 0, 1, "Users", users_provider);
77 qmlRegisterUncreatableType<QLightDM::UsersModel>(uri, 0, 1, "UserRoles", "Type is not instantiable");
78 qmlRegisterSingletonType<UserMetricsOutput::UserMetrics>(uri, 0, 1, "Infographic", infographic_provider);