on xenial help sign in
Allow dbus objects to register immediately (speeds up dash a lot
commite0be9e37fdf1c1cbc9e53e7137c53330259104e5 authorMichael Terry <michael.terry@canonical.com> dateThu 9 Oct 2014, 17:29 (12 years ago) parentdddfa87
6 files changed+18−10
plugins/Unity/DashCommunicator/dbusdashcommunicatorservice.cpp+1−1 plugins/Unity/Launcher/dbusinterface.cpp+1−1 src/libunity8-private/unitydbusobject.cpp+7−3 src/libunity8-private/unitydbusobject.h+1−1 src/libunity8-private/unitydbusvirtualobject.cpp+7−3 src/libunity8-private/unitydbusvirtualobject.h+1−1
plugins/Unity/DashCommunicator/dbusdashcommunicatorservice.cpp+1−1
@@ -21,7 +21,7 @@
2121#include <QDebug>
2222
2323DBusDashCommunicatorService::DBusDashCommunicatorService(QObject *parent):
24− UnityDBusObject("/com/canonical/UnityDash", "com.canonical.UnityDash", parent)
24+ UnityDBusObject("/com/canonical/UnityDash", "com.canonical.UnityDash", false, parent)
2525{
2626}
2727
plugins/Unity/Launcher/dbusinterface.cpp+1−1
@@ -27,7 +27,7 @@
2727#include <QDebug>
2828
2929DBusInterface::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),
3131 m_launcherModel(parent)
3232{
3333}
src/libunity8-private/unitydbusobject.cpp+7−3
@@ -21,14 +21,18 @@
2121#include <QMetaClassInfo>
2222#include <QTimer>
2323
24−UnityDBusObject::UnityDBusObject(const QString &path, const QString &service, QObject *parent)
24+UnityDBusObject::UnityDBusObject(const QString &path, const QString &service, bool async, QObject *parent)
2525 : QObject(parent)
2626 , m_connection(QDBusConnection::sessionBus())
2727 , m_path(path)
2828 , m_service(service)
2929{
30− // Use a zero-timer to let Qml finish loading before we announce on DBus
31− QTimer::singleShot(0, this, SLOT(registerObject()));
30+ if (async) {
31+ // Use a zero-timer to let Qml finish loading before we announce on DBus
32+ QTimer::singleShot(0, this, SLOT(registerObject()));
33+ } else {
34+ registerObject();
35+ }
3236}
3337
3438UnityDBusObject::~UnityDBusObject()
src/libunity8-private/unitydbusobject.h+1−1
@@ -25,7 +25,7 @@ class Q_DECL_EXPORT UnityDBusObject : public QObject
2525 Q_OBJECT
2626
2727public:
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);
2929 ~UnityDBusObject();
3030
3131 QDBusConnection connection() const;
src/libunity8-private/unitydbusvirtualobject.cpp+7−3
@@ -20,14 +20,18 @@
2020#include <QDBusMessage>
2121#include <QTimer>
2222
23−UnityDBusVirtualObject::UnityDBusVirtualObject(const QString &path, const QString &service, QObject *parent)
23+UnityDBusVirtualObject::UnityDBusVirtualObject(const QString &path, const QString &service, bool async, QObject *parent)
2424 : QDBusVirtualObject(parent)
2525 , m_connection(QDBusConnection::sessionBus())
2626 , m_path(path)
2727 , m_service(service)
2828{
29− // Use a zero-timer to let Qml finish loading before we announce on DBus
30− QTimer::singleShot(0, this, SLOT(registerObject()));
29+ if (async) {
30+ // Use a zero-timer to let Qml finish loading before we announce on DBus
31+ QTimer::singleShot(0, this, SLOT(registerObject()));
32+ } else {
33+ registerObject();
34+ }
3135}
3236
3337UnityDBusVirtualObject::~UnityDBusVirtualObject()
src/libunity8-private/unitydbusvirtualobject.h+1−1
@@ -26,7 +26,7 @@ class Q_DECL_EXPORT UnityDBusVirtualObject : public QDBusVirtualObject
2626 Q_OBJECT
2727
2828public:
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);
3030 ~UnityDBusVirtualObject();
3131
3232 QDBusConnection connection() const;