File indexing completed on 2024-05-05 17:45:18
0001 /* 0002 SPDX-FileCopyrightText: 2009 Marco Martin <notmart@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <kdedmodule.h> 0010 0011 #include <QDBusContext> 0012 #include <QObject> 0013 #include <QSet> 0014 #include <QStringList> 0015 0016 class QDBusServiceWatcher; 0017 0018 class StatusNotifierWatcher : public KDEDModule, protected QDBusContext 0019 { 0020 Q_OBJECT 0021 Q_PROPERTY(QStringList RegisteredStatusNotifierItems READ RegisteredStatusNotifierItems) 0022 Q_PROPERTY(bool IsStatusNotifierHostRegistered READ IsStatusNotifierHostRegistered) 0023 Q_PROPERTY(int ProtocolVersion READ ProtocolVersion) 0024 0025 public: 0026 StatusNotifierWatcher(QObject *parent, const QList<QVariant> &); 0027 ~StatusNotifierWatcher() override; 0028 0029 QStringList RegisteredStatusNotifierItems() const; 0030 0031 bool IsStatusNotifierHostRegistered() const; 0032 0033 int ProtocolVersion() const; 0034 0035 public Q_SLOTS: 0036 void RegisterStatusNotifierItem(const QString &service); 0037 0038 void RegisterStatusNotifierHost(const QString &service); 0039 0040 protected Q_SLOTS: 0041 void serviceUnregistered(const QString &name); 0042 0043 Q_SIGNALS: 0044 void StatusNotifierItemRegistered(const QString &service); 0045 // TODO: decide if this makes sense, the systray itself could notice the vanishing of items, but looks complete putting it here 0046 void StatusNotifierItemUnregistered(const QString &service); 0047 void StatusNotifierHostRegistered(); 0048 void StatusNotifierHostUnregistered(); 0049 0050 private: 0051 QDBusServiceWatcher *m_serviceWatcher = nullptr; 0052 QStringList m_registeredServices; 0053 };