X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fsystemtray.h;h=dc31edc7e7996b62a0257e1fd2ae79f7c0ef8fd9;hb=3fb23d04b25cd0a88b4f806070d7a16be8e3ffbd;hp=b2b0afba7bc3e957faddb05b480242bbeb3ea7fc;hpb=e7d1bc1fa02e1233f140e4b04d99ab8f4685bce5;p=quassel.git diff --git a/src/qtui/systemtray.h b/src/qtui/systemtray.h index b2b0afba..dc31edc7 100644 --- a/src/qtui/systemtray.h +++ b/src/qtui/systemtray.h @@ -27,6 +27,7 @@ class QMenu; class SystemTray : public QObject { Q_OBJECT + Q_ENUMS(State Mode MessageIcon ActivationReason) public: enum State { @@ -58,7 +59,7 @@ public: MiddleClick }; - SystemTray(QObject *parent = 0); + explicit SystemTray(QWidget *parent); virtual ~SystemTray(); virtual void init() {} @@ -67,8 +68,9 @@ public: virtual inline bool isSystemTrayAvailable() const; void setAlert(bool alerted); - inline void setInhibitActivation(); - inline bool isActivationInhibited() const; + virtual inline bool isVisible() const { return false; } + + QWidget *associatedWidget() const; public slots: virtual void setState(State); @@ -82,6 +84,9 @@ signals: void toolTipChanged(const QString &title, const QString &subtitle); void messageClicked(); +protected slots: + virtual void activate(SystemTray::ActivationReason = Trigger); + protected: virtual void setMode(Mode mode); inline Mode mode() const; @@ -93,28 +98,23 @@ protected: inline QMenu *trayMenu() const; void setTrayMenu(QMenu *); - virtual bool eventFilter(QObject *obj, QEvent *event); - private slots: private: Mode _mode; State _state; - bool _inhibitActivation; - QString _toolTipTitle, _toolTipSubTitle; Icon _passiveIcon, _activeIcon, _needsAttentionIcon; QMenu *_trayMenu; + QWidget *_associatedWidget; }; // inlines bool SystemTray::isSystemTrayAvailable() const { return false; } bool SystemTray::isAlerted() const { return state() == NeedsAttention; } -void SystemTray::setInhibitActivation() { _inhibitActivation = true; } -bool SystemTray::isActivationInhibited() const { return _inhibitActivation; } SystemTray::Mode SystemTray::mode() const { return _mode; } SystemTray::State SystemTray::state() const { return _state; } QMenu *SystemTray::trayMenu() const { return _trayMenu; }