on a6cff49 help sign in
45 lines 1.6 kB history raw
1/*
2 * Copyright (C) 2013 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 "fake_gsettings.h"
20#include <QtQml/qqml.h>
21#include <QQmlEngine>
22#include <QQmlContext>
24static QObject* controllerProvider(QQmlEngine* /* engine */, QJSEngine* /* scriptEngine */)
26 return GSettingsControllerQml::instance();
29void FakeGSettingsQmlPlugin::registerTypes(const char *uri)
31 qmlRegisterSingletonType<GSettingsControllerQml>(uri, 1, 0, "GSettingsController", controllerProvider);
32 qmlRegisterType<GSettingsQml>(uri, 1, 0, "GSettings");
33 qmlRegisterUncreatableType<GSettingsSchemaQml>(uri, 1, 0, "GSettingsSchema",
34 "GSettingsSchema can only be used inside of a GSettings component");
37void FakeGSettingsQmlPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
39 QQmlExtensionPlugin::initializeEngine(engine, uri);
41 QString usageType = qgetenv("UNITY_MOCK_DESKTOP");
42 if (!usageType.isEmpty()) {
43 GSettingsControllerQml::instance()->setUsageMode("Windowed");
44 }