summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2023-05-11 16:05:19 +0200
committerIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2023-05-16 12:57:53 +0200
commit450bb8dacdff2c0dd24bbe9eea998c70bd5f6fae (patch)
tree7f9654c50c540b9735e99856839e035f3dd7ebab
parent24085ee19751fa39db5f70d2d850ff5b82a7e400 (diff)
downloadqttools-450bb8dacdff2c0dd24bbe9eea998c70bd5f6fae.tar.gz
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 <thiago.macieira@intel.com>
-rw-r--r--src/qdbus/qdbusviewer/qdbusviewer.cpp17
-rw-r--r--src/qdbus/qdbusviewer/qdbusviewer.h3
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;