on xenial help sign in
Allow dbus objects to register immediately (speeds up dash a lot
e0be9e3Michael Terry
plugins/Unity/DashCommunicator/dbusdashcommunicatorservice.cpp+1−1
@@ -21,7 +21,7 @@
21#include <QDebug>
21#include <QDebug>
22
22
23DBusDashCommunicatorService::DBusDashCommunicatorService(QObject *parent):
23DBusDashCommunicatorService::DBusDashCommunicatorService(QObject *parent):
24− UnityDBusObject("/com/canonical/UnityDash", "com.canonical.UnityDash", parent)
24+ UnityDBusObject("/com/canonical/UnityDash", "com.canonical.UnityDash", false, parent)
25{
25{
26}
26}
27
27
plugins/Unity/Launcher/dbusinterface.cpp+1−1
@@ -27,7 +27,7 @@
27#include <QDebug>
27#include <QDebug>
28
28
29DBusInterface::DBusInterface(LauncherModel *parent):
29DBusInterface::DBusInterface(LauncherModel *parent):
30− UnityDBusVirtualObject("/com/canonical/Unity/Launcher", "com.canonical.Unity.Launcher", parent),
30+ UnityDBusVirtualObject("/com/canonical/Unity/Launcher", "com.canonical.Unity.Launcher", true, parent),
31 m_launcherModel(parent)
31 m_launcherModel(parent)
32{
32{
33}
33}
src/libunity8-private/unitydbusobject.cpp+7−3
@@ -21,14 +21,18 @@
21#include <QMetaClassInfo>
21#include <QMetaClassInfo>
22#include <QTimer>
22#include <QTimer>
23
23
24−UnityDBusObject::UnityDBusObject(const QString &path, const QString &service, QObject *parent)
24+UnityDBusObject::UnityDBusObject(const QString &path, const QString &service, bool async, QObject *parent)
25 : QObject(parent)
25 : QObject(parent)
26 , m_connection(QDBusConnection::sessionBus())
26 , m_connection(QDBusConnection::sessionBus())
27 , m_path(path)
27 , m_path(path)
28 , m_service(service)
28 , m_service(service)
29{
29{
30+ if (async) {
30− // Use a zero-timer to let Qml finish loading before we announce on DBus
31+ // Use a zero-timer to let Qml finish loading before we announce on DBus
31− QTimer::singleShot(0, this, SLOT(registerObject()));
32+ QTimer::singleShot(0, this, SLOT(registerObject()));
33+ } else {
34+ registerObject();
35+ }
32}
36}
33
37
34UnityDBusObject::~UnityDBusObject()
38UnityDBusObject::~UnityDBusObject()
src/libunity8-private/unitydbusobject.h+1−1
@@ -25,7 +25,7 @@ class Q_DECL_EXPORT UnityDBusObject : public QObject
25 Q_OBJECT
25 Q_OBJECT
26
26
27public:
27public:
28− explicit UnityDBusObject(const QString &path, const QString &service = QString(), QObject *parent = 0);
28+ explicit UnityDBusObject(const QString &path, const QString &service = QString(), bool async = true, QObject *parent = 0);
29 ~UnityDBusObject();
29 ~UnityDBusObject();
30
30
31 QDBusConnection connection() const;
31 QDBusConnection connection() const;
src/libunity8-private/unitydbusvirtualobject.cpp+7−3
@@ -20,14 +20,18 @@
20#include <QDBusMessage>
20#include <QDBusMessage>
21#include <QTimer>
21#include <QTimer>
22
22
23−UnityDBusVirtualObject::UnityDBusVirtualObject(const QString &path, const QString &service, QObject *parent)
23+UnityDBusVirtualObject::UnityDBusVirtualObject(const QString &path, const QString &service, bool async, QObject *parent)
24 : QDBusVirtualObject(parent)
24 : QDBusVirtualObject(parent)
25 , m_connection(QDBusConnection::sessionBus())
25 , m_connection(QDBusConnection::sessionBus())
26 , m_path(path)
26 , m_path(path)
27 , m_service(service)
27 , m_service(service)
28{
28{
29+ if (async) {
29− // Use a zero-timer to let Qml finish loading before we announce on DBus
30+ // Use a zero-timer to let Qml finish loading before we announce on DBus
30− QTimer::singleShot(0, this, SLOT(registerObject()));
31+ QTimer::singleShot(0, this, SLOT(registerObject()));
32+ } else {
33+ registerObject();
34+ }
31}
35}
32
36
33UnityDBusVirtualObject::~UnityDBusVirtualObject()
37UnityDBusVirtualObject::~UnityDBusVirtualObject()
src/libunity8-private/unitydbusvirtualobject.h+1−1
@@ -26,7 +26,7 @@ class Q_DECL_EXPORT UnityDBusVirtualObject : public QDBusVirtualObject
26 Q_OBJECT
26 Q_OBJECT
27
27
28public:
28public:
29− explicit UnityDBusVirtualObject(const QString &path, const QString &service = QString(), QObject *parent = 0);
29+ explicit UnityDBusVirtualObject(const QString &path, const QString &service = QString(), bool async = true, QObject *parent = 0);
30 ~UnityDBusVirtualObject();
30 ~UnityDBusVirtualObject();
31
31
32 QDBusConnection connection() const;
32 QDBusConnection connection() const;