46 lines
955 B
C++
46 lines
955 B
C++
#ifndef OLLIE_TRAY_H
|
|
#define OLLIE_TRAY_H
|
|
|
|
#include <QObject>
|
|
#include <QMenu>
|
|
#include <QDBusInterface>
|
|
#include <QDBusConnection>
|
|
#include <KStatusNotifierItem>
|
|
|
|
class OllieTray : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit OllieTray(QObject *parent = nullptr);
|
|
~OllieTray() override;
|
|
|
|
void updateStatus();
|
|
|
|
private slots:
|
|
void onSessionCreated(const QString &session_id);
|
|
void onSessionKilled(const QString &session_id);
|
|
void onStateChanged(const QString &session_id, const QString &new_state);
|
|
|
|
void newSession();
|
|
void stopAll();
|
|
void quitDaemon();
|
|
void refreshSessions();
|
|
|
|
private:
|
|
void setupMenu();
|
|
void updateTooltip();
|
|
QStringList callListSessions();
|
|
bool callKillSession(const QString &id);
|
|
|
|
KStatusNotifierItem *m_sni;
|
|
QMenu *m_menu;
|
|
QMenu *m_sessionsMenu;
|
|
QDBusInterface *m_iface;
|
|
|
|
int m_totalSessions = 0;
|
|
int m_activeSessions = 0;
|
|
};
|
|
|
|
#endif // OLLIE_TRAY_H
|