This repository has been archived on 2026-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
ollie-kde/tray/ollie_tray.h

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