18 #include <QtQml/qqml.h>
19 #include <QDBusConnection>
20 #include <QQmlContext>
21 #include <QtQuick/QQuickWindow>
26 #include "activefocuslogger.h"
27 #include "easingcurve.h"
28 #include "HomeKeyWatcher.h"
29 #include "inputwatcher.h"
30 #include "qlimitproxymodelqml.h"
31 #include "unitysortfilterproxymodelqml.h"
32 #include "unitymenumodelpaths.h"
33 #include "windowkeysfilter.h"
34 #include "windowscreenshotprovider.h"
35 #include "windowstatestorage.h"
36 #include "constants.h"
37 #include "timezoneFormatter.h"
38 #include "applicationsfiltermodel.h"
40 static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
43 Q_UNUSED(scriptEngine)
44 return new WindowStateStorage();
47 static QObject *createConstants(QQmlEngine *engine, QJSEngine *scriptEngine)
50 Q_UNUSED(scriptEngine)
54 void UtilsPlugin::registerTypes(const
char *uri)
56 Q_ASSERT(uri == QLatin1String(
"Utils"));
57 qmlRegisterType<HomeKeyWatcher>(uri, 0, 1,
"HomeKeyWatcher");
58 qmlRegisterType<QAbstractItemModel>();
59 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1,
"LimitProxyModel");
60 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1,
"UnitySortFilterProxyModel");
61 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1,
"UnityMenuModelPaths");
62 qmlRegisterType<WindowKeysFilter>(uri, 0, 1,
"WindowKeysFilter");
63 qmlRegisterType<EasingCurve>(uri, 0, 1,
"EasingCurve");
64 qmlRegisterSingletonType<WindowStateStorage>(uri, 0, 1,
"WindowStateStorage", createWindowStateStorage);
65 qmlRegisterType<InputWatcher>(uri, 0, 1,
"InputWatcher");
66 qmlRegisterSingletonType<Constants>(uri, 0, 1,
"Constants", createConstants);
67 qmlRegisterSingletonType<TimezoneFormatter>(uri, 0, 1,
"TimezoneFormatter",
68 [](QQmlEngine*, QJSEngine*) -> QObject* {
return new TimezoneFormatter; });
69 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1,
"ActiveFocusLogger");
70 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1,
"ApplicationsFilterModel");
73 void UtilsPlugin::initializeEngine(QQmlEngine *engine,
const char *uri)
75 QQmlExtensionPlugin::initializeEngine(engine, uri);
77 engine->addImageProvider(QStringLiteral(
"window"),
new WindowScreenshotProvider);