X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fsystemtray.h;h=cdb66d7dee30cb1a893fa03347e87ac6c38f8b5e;hb=6353231ed1d32a5be3580ba60a06d9cf588ad877;hp=1e811cd8cea76a386e415abbbe814d23f4d1e59b;hpb=5a470c1acab34c95d957bf81dce7e7cd330a2c58;p=quassel.git diff --git a/src/qtui/systemtray.h b/src/qtui/systemtray.h index 1e811cd8..cdb66d7d 100644 --- a/src/qtui/systemtray.h +++ b/src/qtui/systemtray.h @@ -21,7 +21,14 @@ #ifndef SYSTEMTRAY_H_ #define SYSTEMTRAY_H_ -#include +#ifndef QT_NO_SYSTEMTRAYICON + +#ifdef HAVE_KDE +# include +#else +# include +#endif + #include #include "icon.h" @@ -39,8 +46,9 @@ public: ~SystemTray(); inline bool isSystemTrayAvailable() const; - Icon icon() const; - QString toolTip() const; + inline bool isAlerted() const; + + inline void setInhibitActivation(); public slots: void setState(State); @@ -50,22 +58,31 @@ public slots: void showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000); - signals: void activated(QSystemTrayIcon::ActivationReason); void iconChanged(const Icon &); void messageClicked(); +protected: + bool eventFilter(QObject *obj, QEvent *event); + private slots: void nextPhase(); + void on_activated(QSystemTrayIcon::ActivationReason); private: void loadAnimations(); +#ifdef HAVE_KDE + KSystemTrayIcon *_trayIcon; +#else QSystemTrayIcon *_trayIcon; +#endif + QMenu *_trayMenu; State _state; bool _alert; + bool _inhibitActivation; int _idxOffStart, _idxOffEnd, _idxOnStart, _idxOnEnd, _idxAlertStart; int _currentIdx; @@ -77,5 +94,9 @@ private: // inlines bool SystemTray::isSystemTrayAvailable() const { return QSystemTrayIcon::isSystemTrayAvailable(); } +bool SystemTray::isAlerted() const { return _alert; } +void SystemTray::setInhibitActivation() { _inhibitActivation = true; } + +#endif /* QT_NO_SYSTEMTRAYICON */ #endif