summaryrefslogtreecommitdiffstats
path: root/src/platformsupport
diff options
context:
space:
mode:
Diffstat (limited to 'src/platformsupport')
-rw-r--r--src/platformsupport/dbusmenu/qdbusmenuconnection.cpp10
-rw-r--r--src/platformsupport/dbusmenu/qdbusmenuconnection_p.h4
-rw-r--r--src/platformsupport/dbustray/qdbustrayicon.cpp7
-rw-r--r--src/platformsupport/themes/genericunix/qgenericunixthemes.cpp2
4 files changed, 10 insertions, 13 deletions
diff --git a/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp b/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp
index a8211f63ce..73793d7497 100644
--- a/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp
+++ b/src/platformsupport/dbusmenu/qdbusmenuconnection.cpp
@@ -63,14 +63,14 @@ QDBusMenuConnection::QDBusMenuConnection(QObject *parent)
: QObject(parent)
, m_connection(QDBusConnection::sessionBus())
, m_dbusWatcher(new QDBusServiceWatcher(StatusNotifierWatcherService, m_connection, QDBusServiceWatcher::WatchForRegistration, this))
- , m_watcherRegistered(false)
+ , m_statusNotifierHostRegistered(false)
{
#ifndef QT_NO_SYSTEMTRAYICON
- // Start monitoring if any known tray-related services are registered.
- if (m_connection.interface()->isServiceRegistered(StatusNotifierWatcherService))
- m_watcherRegistered = true;
+ QDBusInterface systrayHost(StatusNotifierWatcherService, StatusNotifierWatcherPath, StatusNotifierWatcherService, m_connection);
+ if (systrayHost.isValid() && systrayHost.property("IsStatusNotifierHostRegistered").toBool())
+ m_statusNotifierHostRegistered = true;
else
- qCDebug(qLcMenu) << "failed to find service" << StatusNotifierWatcherService;
+ qCDebug(qLcMenu) << "StatusNotifierHost is not registered";
#endif
}
diff --git a/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h b/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h
index 377999c365..8d230bd3bf 100644
--- a/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h
+++ b/src/platformsupport/dbusmenu/qdbusmenuconnection_p.h
@@ -63,7 +63,7 @@ class QDBusMenuConnection : public QObject
public:
QDBusMenuConnection(QObject *parent = 0);
QDBusConnection connection() const { return m_connection; }
- bool isWatcherRegistered() const { return m_watcherRegistered; }
+ bool isStatusNotifierHostRegistered() const { return m_statusNotifierHostRegistered; }
#ifndef QT_NO_SYSTEMTRAYICON
bool registerTrayIcon(QDBusTrayIcon *item);
bool unregisterTrayIcon(QDBusTrayIcon *item);
@@ -80,7 +80,7 @@ private Q_SLOTS:
private:
QDBusConnection m_connection;
QDBusServiceWatcher *m_dbusWatcher;
- bool m_watcherRegistered;
+ bool m_statusNotifierHostRegistered;
};
QT_END_NAMESPACE
diff --git a/src/platformsupport/dbustray/qdbustrayicon.cpp b/src/platformsupport/dbustray/qdbustrayicon.cpp
index 18e72d852a..d85d29a5c7 100644
--- a/src/platformsupport/dbustray/qdbustrayicon.cpp
+++ b/src/platformsupport/dbustray/qdbustrayicon.cpp
@@ -281,11 +281,8 @@ void QDBusTrayIcon::notificationClosed(uint id, uint reason)
bool QDBusTrayIcon::isSystemTrayAvailable() const
{
QDBusMenuConnection * conn = const_cast<QDBusTrayIcon *>(this)->dBusConnection();
-
- // If the KDE watcher service is registered, we must be on a desktop
- // where a StatusNotifier-conforming system tray exists.
- qCDebug(qLcTray) << conn->isWatcherRegistered();
- return conn->isWatcherRegistered();
+ qCDebug(qLcTray) << conn->isStatusNotifierHostRegistered();
+ return conn->isStatusNotifierHostRegistered();
}
QT_END_NAMESPACE
diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
index 3fffec0dfd..ba328bfb41 100644
--- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
+++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
@@ -98,7 +98,7 @@ static bool isDBusTrayAvailable() {
static bool dbusTrayAvailableKnown = false;
if (!dbusTrayAvailableKnown) {
QDBusMenuConnection conn;
- if (conn.isWatcherRegistered())
+ if (conn.isStatusNotifierHostRegistered())
dbusTrayAvailable = true;
dbusTrayAvailableKnown = true;
qCDebug(qLcTray) << "D-Bus tray available:" << dbusTrayAvailable;