2022-03-05 22:41:29 +05:00

54 lines
1.5 KiB
C++

/*
SPDX-FileCopyrightText: 2009 Marco Martin <notmart@gmail.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include <kdedmodule.h>
#include <QDBusContext>
#include <QObject>
#include <QSet>
#include <QStringList>
class QDBusServiceWatcher;
class StatusNotifierWatcher : public KDEDModule, protected QDBusContext
{
Q_OBJECT
Q_PROPERTY(QStringList RegisteredStatusNotifierItems READ RegisteredStatusNotifierItems)
Q_PROPERTY(bool IsStatusNotifierHostRegistered READ IsStatusNotifierHostRegistered)
Q_PROPERTY(int ProtocolVersion READ ProtocolVersion)
public:
StatusNotifierWatcher(QObject *parent, const QList<QVariant> &);
~StatusNotifierWatcher() override;
QStringList RegisteredStatusNotifierItems() const;
bool IsStatusNotifierHostRegistered() const;
int ProtocolVersion() const;
public Q_SLOTS:
void RegisterStatusNotifierItem(const QString &service);
void RegisterStatusNotifierHost(const QString &service);
protected Q_SLOTS:
void serviceUnregistered(const QString &name);
Q_SIGNALS:
void StatusNotifierItemRegistered(const QString &service);
// TODO: decide if this makes sense, the systray itself could notice the vanishing of items, but looks complete putting it here
void StatusNotifierItemUnregistered(const QString &service);
void StatusNotifierHostRegistered();
void StatusNotifierHostUnregistered();
private:
QDBusServiceWatcher *m_serviceWatcher = nullptr;
QStringList m_registeredServices;
QSet<QString> m_statusNotifierHostServices;
};