[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [plasma-workspace] applets/systemtray: Backport 70326bdbed9b3e2f74990e170cb400f1e6769c8d to new syst
From: Weng Xuetian <wengxt () gmail ! com>
Date: 2016-03-09 19:12:37
Message-ID: E1adjXB-0005Xr-7C () scm ! kde ! org
[Download RAW message or body]
Git commit cdc79a193228df58c80e1cac51626e228d5cca6b by Weng Xuetian.
Committed on 09/03/2016 at 19:08.
Pushed by xuetianweng into branch 'master'.
Backport 70326bdbed9b3e2f74990e170cb400f1e6769c8d to new systemtray
Replace QDBusServiceWatcher with
QDBusConnectionInterface::serviceOwnerChanged for now.
M +13 -8 applets/systemtray/systemtray.cpp
M +3 -0 applets/systemtray/systemtray.h
http://commits.kde.org/plasma-workspace/cdc79a193228df58c80e1cac51626e228d5cca6b
diff --git a/applets/systemtray/systemtray.cpp \
b/applets/systemtray/systemtray.cpp index b229000..a16c5d9 100644
--- a/applets/systemtray/systemtray.cpp
+++ b/applets/systemtray/systemtray.cpp
@@ -27,7 +27,6 @@
#include <QDBusConnection>
#include <QDBusConnectionInterface>
#include <QDBusPendingCallWatcher>
-#include <QDBusServiceWatcher>
#include <QMenu>
#include <QQuickItem>
#include <QQuickWindow>
@@ -518,15 +517,21 @@ void \
SystemTray::serviceNameFetchFinished(QDBusPendingCallWatcher* watcher, cons \
// not just compare them
// This makes mpris work, since it wants to match \
org.mpris.MediaPlayer2.dragonplayer // against org.mpris.MediaPlayer2
- QDBusServiceWatcher *serviceWatcher = new \
QDBusServiceWatcher(QString(),
- connection,
- \
QDBusServiceWatcher::WatchForOwnerChange,
- this);
- connect(serviceWatcher, &QDBusServiceWatcher::serviceRegistered, this, \
&SystemTray::serviceRegistered);
- connect(serviceWatcher, &QDBusServiceWatcher::serviceUnregistered, \
this, &SystemTray::serviceUnregistered); + // QDBusServiceWatcher is not \
capable for watching wildcard service right now + // See:
+ // https://bugreports.qt.io/browse/QTBUG-51683
+ // https://bugreports.qt.io/browse/QTBUG-33829
+ connect(connection.interface(), \
&QDBusConnectionInterface::serviceOwnerChanged, this, \
&SystemTray::serviceOwnerChanged); }
-
+void SystemTray::serviceOwnerChanged(const QString &serviceName, const \
QString &oldOwner, const QString &newOwner) +{
+ if (oldOwner.isEmpty()) {
+ serviceRegistered(serviceName);
+ } else if (newOwner.isEmpty()) {
+ serviceUnregistered(serviceName);
+ }
+}
void SystemTray::serviceRegistered(const QString &service)
{
diff --git a/applets/systemtray/systemtray.h \
b/applets/systemtray/systemtray.h index 68a56ec..e12ea65 100644
--- a/applets/systemtray/systemtray.h
+++ b/applets/systemtray/systemtray.h
@@ -89,6 +89,9 @@ public:
private Q_SLOTS:
void serviceNameFetchFinished(QDBusPendingCallWatcher* watcher, const \
QDBusConnection &connection); + void serviceOwnerChanged(const QString \
&serviceName, const QString &oldOwner, const QString &newOwner); +
+private:
void serviceRegistered(const QString &service);
void serviceUnregistered(const QString &service);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic