diff options
-rw-r--r-- | src/qdbus/qdbusviewer/qdbusviewer.cpp | 17 | ||||
-rw-r--r-- | src/qdbus/qdbusviewer/qdbusviewer.h | 3 |
2 files changed, 6 insertions, 14 deletions
diff --git a/src/qdbus/qdbusviewer/qdbusviewer.cpp b/src/qdbus/qdbusviewer/qdbusviewer.cpp index 26b656b65..9c23c65a9 100644 --- a/src/qdbus/qdbusviewer/qdbusviewer.cpp +++ b/src/qdbus/qdbusviewer/qdbusviewer.cpp @@ -20,6 +20,7 @@ #include <QtDBus/QDBusConnectionInterface> #include <QtDBus/QDBusInterface> #include <QtDBus/QDBusMetaType> +#include <QtDBus/QDBusServiceWatcher> #include <QtGui/QAction> #include <QtGui/QKeyEvent> @@ -131,11 +132,11 @@ QDBusViewer::QDBusViewer(const QDBusConnection &connection, QWidget *parent) : QMetaObject::invokeMethod(this, "refresh", Qt::QueuedConnection); if (c.isConnected()) { + QDBusServiceWatcher *watcher = + new QDBusServiceWatcher("*", c, QDBusServiceWatcher::WatchForOwnerChange, this); + connect(watcher, &QDBusServiceWatcher::serviceOwnerChanged, this, + &QDBusViewer::serviceOwnerChanged); logMessage(QLatin1String("Connected to D-Bus.")); - QDBusConnectionInterface *iface = c.interface(); - connect(iface, &QDBusConnectionInterface::serviceRegistered, this, &QDBusViewer::serviceRegistered); - connect(iface, &QDBusConnectionInterface::serviceUnregistered, this, &QDBusViewer::serviceUnregistered); - connect(iface, &QDBusConnectionInterface::serviceOwnerChanged, this, &QDBusViewer::serviceOwnerChanged); } else { logError(QLatin1String("Cannot connect to D-Bus: ") + c.lastError().message()); } @@ -501,14 +502,6 @@ static QModelIndex findItem(QStringListModel *servicesModel, const QString &name return hits.first(); } -void QDBusViewer::serviceUnregistered(const QString &name) -{ - QModelIndex hit = findItem(servicesModel, name); - if (!hit.isValid()) - return; - servicesModel->removeRows(hit.row(), 1); -} - void QDBusViewer::serviceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner) { diff --git a/src/qdbus/qdbusviewer/qdbusviewer.h b/src/qdbus/qdbusviewer/qdbusviewer.h index 58d0f6143..4272d6957 100644 --- a/src/qdbus/qdbusviewer/qdbusviewer.h +++ b/src/qdbus/qdbusviewer/qdbusviewer.h @@ -50,8 +50,6 @@ private slots: void dumpError(const QDBusError &error); void refreshChildren(); - void serviceRegistered(const QString &service); - void serviceUnregistered(const QString &service); void serviceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner); void serviceFilterReturnPressed(); @@ -61,6 +59,7 @@ private slots: void anchorClicked(const QUrl &url); private: + void serviceRegistered(const QString &service); void logMessage(const QString &msg); void showEvent(QShowEvent *) override; bool eventFilter(QObject *obj, QEvent *event) override; |