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"
39 static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
42 Q_UNUSED(scriptEngine)
43 return new WindowStateStorage();
46 static QObject *createConstants(QQmlEngine *engine, QJSEngine *scriptEngine)
49 Q_UNUSED(scriptEngine)
53 void UtilsPlugin::registerTypes(const
char *uri)
55 Q_ASSERT(uri == QLatin1String(
"Utils"));
56 qmlRegisterType<HomeKeyWatcher>(uri, 0, 1,
"HomeKeyWatcher");
57 qmlRegisterType<QAbstractItemModel>();
58 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1,
"LimitProxyModel");
59 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1,
"UnitySortFilterProxyModel");
60 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1,
"UnityMenuModelPaths");
61 qmlRegisterType<WindowKeysFilter>(uri, 0, 1,
"WindowKeysFilter");
62 qmlRegisterType<EasingCurve>(uri, 0, 1,
"EasingCurve");
63 qmlRegisterSingletonType<WindowStateStorage>(uri, 0, 1,
"WindowStateStorage", createWindowStateStorage);
64 qmlRegisterType<InputWatcher>(uri, 0, 1,
"InputWatcher");
65 qmlRegisterSingletonType<Constants>(uri, 0, 1,
"Constants", createConstants);
66 qmlRegisterSingletonType<TimezoneFormatter>(uri, 0, 1,
"TimezoneFormatter",
67 [](QQmlEngine*, QJSEngine*) -> QObject* {
return new TimezoneFormatter; });
68 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1,
"ActiveFocusLogger");
71 void UtilsPlugin::initializeEngine(QQmlEngine *engine,
const char *uri)
73 QQmlExtensionPlugin::initializeEngine(engine, uri);
75 engine->addImageProvider(QStringLiteral(
"window"),
new WindowScreenshotProvider);