From 450bb8dacdff2c0dd24bbe9eea998c70bd5f6fae Mon Sep 17 00:00:00 2001 From: Ievgenii Meshcheriakov Date: Thu, 11 May 2023 16:05:19 +0200 Subject: QDBusViewer: Use QDBusServiceWatcher This replaces connections to deprecated signal QDBusConnectionInterface::serviceOwnerChanged() and avoids a warning being printed at run time. QDBusServiceWatcher emits the serviceOwnerChanged() signal when services are registered and unregistered, so this one signal replaces 3 signals from QDBusConnectionInterface. Fixes: QTBUG-28618 Change-Id: Ic2afa25e8c6438ead93c75b4c8864e557ba70714 Reviewed-by: Thiago Macieira --- src/qdbus/qdbusviewer/qdbusviewer.cpp | 17 +++++------------ 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 #include #include +#include #include #include @@ -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; -- cgit v1.2.1