#include <QObject>
#include <QString>
+#include <QTimer>
class Action;
class QMenu;
MiddleClick
};
+ enum class AttentionBehavior {
+ DoNothing,
+ ChangeColor,
+ Blink
+ };
+
explicit SystemTray(QWidget *parent);
~SystemTray() override;
void stateChanged(State state);
void visibilityChanged(bool isVisible);
void iconsChanged();
- void animationEnabledChanged(bool);
+ void currentIconNameChanged();
void toolTipChanged(const QString &title, const QString &subtitle);
void activated(SystemTray::ActivationReason);
protected:
void setMode(Mode mode);
- bool animationEnabled() const;
QString toolTipTitle() const;
QString toolTipSubTitle() const;
QMenu *trayMenu() const;
QString iconName(State state) const;
+ QString currentIconName() const;
+ QString currentAttentionIconName() const;
private slots:
void minimizeRestore();
void trayMenuAboutToShow();
- void enableAnimationChanged(const QVariant &);
void invertTrayIconChanged(const QVariant &);
+ void enableChangeColorChanged(const QVariant &);
+ void enableBlinkChanged(const QVariant &);
+
+ void onBlinkTimeout();
private:
bool _isVisible{false};
Mode _mode{Mode::Invalid};
State _state{State::Passive};
- bool _animationEnabled{true};
bool _trayIconInverted{false};
+ AttentionBehavior _attentionBehavior{AttentionBehavior::ChangeColor};
+
+ QTimer _blinkTimer;
+ bool _blinkState{false};
- QString _toolTipTitle, _toolTipSubTitle;
+ QString _toolTipTitle;
+ QString _toolTipSubTitle;
QMenu *_trayMenu{nullptr};
QWidget *_associatedWidget{nullptr};