20 #include <QtQml/qqml.h>
21 #include <QDBusConnection>
22 #include <QQmlContext>
23 #include <QtQuick/QQuickWindow>
29 #include "bottombarvisibilitycommunicatorshell.h"
30 #include "qlimitproxymodelqml.h"
31 #include "qsortfilterproxymodelqml.h"
32 #include "timeformatter.h"
33 #include "unitymenumodelpaths.h"
34 #include "easingcurve.h"
36 static const char* BOTTOM_BAR_VISIBILITY_COMMUNICATOR_DBUS_PATH =
"/BottomBarVisibilityCommunicator";
37 static const char* DBUS_SERVICE =
"com.canonical.Shell.BottomBarVisibilityCommunicator";
39 void UtilsPlugin::registerTypes(
const char *uri)
41 Q_ASSERT(uri == QLatin1String(
"Utils"));
42 qmlRegisterType<QAbstractItemModel>();
43 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1,
"LimitProxyModel");
44 qmlRegisterType<QSortFilterProxyModelQML>(uri, 0, 1,
"SortFilterProxyModel");
45 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1,
"UnityMenuModelPaths");
46 qmlRegisterType<TimeFormatter>(uri, 0, 1,
"TimeFormatter");
47 qmlRegisterType<GDateTimeFormatter>(uri, 0, 1,
"GDateTimeFormatter");
48 qmlRegisterUncreatableType<BottomBarVisibilityCommunicatorShell>(uri, 0, 1,
"BottomBarVisibilityCommunicatorShell",
"Can't create BottomBarVisibilityCommunicatorShell");
49 qmlRegisterType<EasingCurve>(uri, 0, 1,
"EasingCurve");
52 void UtilsPlugin::initializeEngine(QQmlEngine *engine,
const char *uri)
54 QQmlExtensionPlugin::initializeEngine(engine, uri);
56 QDBusConnection::sessionBus().registerService(DBUS_SERVICE);
58 QDBusConnection::sessionBus().registerObject(BOTTOM_BAR_VISIBILITY_COMMUNICATOR_DBUS_PATH, bottomBarVisibilityCommunicator, QDBusConnection::ExportAllContents);
59 engine->rootContext()->setContextProperty(
"bottomBarVisibilityCommunicatorShell", bottomBarVisibilityCommunicator);