@@ -18,6 +18,8 @@
20#include <QtQml/qqml.h>
20#include <QtQml/qqml.h>
21+#include <QDBusConnection>
22+#include <QQmlContext>
21#include <QtQuick/QQuickWindow>
23#include <QtQuick/QQuickWindow>
22#include <QDebug>
24#include <QDebug>
@@ -26,11 +28,15 @@
27#include "albumartprovider.h"
29#include "albumartprovider.h"
28#include "applicationpaths.h"
30#include "applicationpaths.h"
31+#include "bottombarvisibilitycommunicatorshell.h"
29#include "qlimitproxymodelqml.h"
32#include "qlimitproxymodelqml.h"
30#include "qsortfilterproxymodelqml.h"
33#include "qsortfilterproxymodelqml.h"
31#include "ubuntuwindow.h"
34#include "ubuntuwindow.h"
32#include "unitymenumodelpaths.h"
35#include "unitymenumodelpaths.h"
37+static const char* BOTTOM_BAR_VISIBILITY_COMMUNICATOR_DBUS_PATH = "/BottomBarVisibilityCommunicator";
38+static const char* DBUS_SERVICE = "com.canonical.Shell.BottomBarVisibilityCommunicator";
34static QObject* applicationsPathsSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
40static QObject* applicationsPathsSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
35 Q_UNUSED(engine);
41 Q_UNUSED(engine);
36 Q_UNUSED(scriptEngine);
42 Q_UNUSED(scriptEngine);
@@ -46,6 +52,7 @@ void UtilsPlugin::registerTypes(const char *uri)
46 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
52 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
47 qmlRegisterExtendedType<QQuickWindow, UbuntuWindow>(uri, 0, 1, "Window");
53 qmlRegisterExtendedType<QQuickWindow, UbuntuWindow>(uri, 0, 1, "Window");
48 qmlRegisterSingletonType<ApplicationPaths>(uri, 0, 1, "ApplicationPaths", applicationsPathsSingleton);
54 qmlRegisterSingletonType<ApplicationPaths>(uri, 0, 1, "ApplicationPaths", applicationsPathsSingleton);
55+ qmlRegisterUncreatableType<BottomBarVisibilityCommunicatorShell>(uri, 0, 1, "BottomBarVisibilityCommunicatorShell", "Can't create BottomBarVisibilityCommunicatorShell");
51void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
58void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
@@ -64,4 +71,9 @@ void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
65 qWarning() << "Failed to register image provider for albumart (unknown error)";
72 qWarning() << "Failed to register image provider for albumart (unknown error)";
75+ QDBusConnection::sessionBus().registerService(DBUS_SERVICE);
76+ BottomBarVisibilityCommunicatorShell *bottomBarVisibilityCommunicator = &BottomBarVisibilityCommunicatorShell::instance();
77+ QDBusConnection::sessionBus().registerObject(BOTTOM_BAR_VISIBILITY_COMMUNICATOR_DBUS_PATH, bottomBarVisibilityCommunicator, QDBusConnection::ExportAllContents);
78+ engine->rootContext()->setContextProperty("bottomBarVisibilityCommunicatorShell", bottomBarVisibilityCommunicator);