X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fsystemtray.cpp;h=679a4b182770007553d425c752314ec2f0bcb605;hb=b4b4d30567ea2d5c5bfaff8d019cf7ff5d023538;hp=e92e4ae6848b18a9b071f5e9fd605a165489433f;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;p=quassel.git diff --git a/src/qtui/systemtray.cpp b/src/qtui/systemtray.cpp index e92e4ae6..679a4b18 100644 --- a/src/qtui/systemtray.cpp +++ b/src/qtui/systemtray.cpp @@ -36,16 +36,12 @@ SystemTray::SystemTray(QWidget *parent) : QObject(parent), - _mode(Invalid), - _state(Passive), - _shouldBeVisible(true), - _passiveIcon(QIcon::fromTheme("inactive-quassel", QIcon(":/icons/inactive-quassel.png"))), - _activeIcon(QIcon::fromTheme("quassel", QIcon(":/icons/quassel.png"))), - _needsAttentionIcon(QIcon::fromTheme("message-quassel", QIcon(":/icons/message-quassel.png"))), - _trayMenu(0), _associatedWidget(parent) { Q_ASSERT(parent); + + NotificationSettings{}.initAndNotify("Systray/Animate", this, SLOT(enableAnimationChanged(QVariant)), true); + UiStyleSettings{}.initAndNotify("Icons/InvertTray", this, SLOT(invertTrayIconChanged(QVariant)), false); } @@ -55,12 +51,6 @@ SystemTray::~SystemTray() } -QWidget *SystemTray::associatedWidget() const -{ - return _associatedWidget; -} - - void SystemTray::init() { ActionCollection *coll = QtUi::actionCollection("General"); @@ -88,18 +78,42 @@ void SystemTray::init() _trayMenu->addAction(coll->action("Quit")); connect(_trayMenu, SIGNAL(aboutToShow()), SLOT(trayMenuAboutToShow())); +} + + +QWidget *SystemTray::associatedWidget() const +{ + return _associatedWidget; +} + - NotificationSettings notificationSettings; - notificationSettings.initAndNotify("Systray/Animate", this, SLOT(enableAnimationChanged(QVariant)), true); +bool SystemTray::isSystemTrayAvailable() const +{ + return false; } -void SystemTray::trayMenuAboutToShow() +bool SystemTray::isVisible() const { - if (GraphicalUi::isMainWidgetVisible()) - _minimizeRestoreAction->setText(tr("&Minimize")); - else - _minimizeRestoreAction->setText(tr("&Restore")); + return false; +} + + +bool SystemTray::shouldBeVisible() const +{ + return _shouldBeVisible; +} + + +void SystemTray::setVisible(bool visible) +{ + _shouldBeVisible = visible; +} + + +SystemTray::Mode SystemTray::mode() const +{ + return _mode; } @@ -121,31 +135,46 @@ void SystemTray::setMode(Mode mode_) } -QIcon SystemTray::stateIcon() const +SystemTray::State SystemTray::state() const { - return stateIcon(state()); + return _state; } -QIcon SystemTray::stateIcon(State state) const +void SystemTray::setState(State state) { - switch (state) { - case Passive: - return _passiveIcon; - case Active: - return _activeIcon; - case NeedsAttention: - return _needsAttentionIcon; + if (_state != state) { + _state = state; } - return QIcon(); } -void SystemTray::setState(State state) +QString SystemTray::iconName(State state) const { - if (_state != state) { - _state = state; + QString name; + switch (state) { + case State::Passive: + name = "inactive-quassel-tray"; + break; + case State::Active: + name = "active-quassel-tray"; + break; + case State::NeedsAttention: + name = "message-quassel-tray"; + break; + } + + if (_trayIconInverted) { + name += "-inverted"; } + + return name; +} + + +bool SystemTray::isAlerted() const +{ + return state() == State::NeedsAttention; } @@ -158,9 +187,49 @@ void SystemTray::setAlert(bool alerted) } -void SystemTray::setVisible(bool visible) +QMenu *SystemTray::trayMenu() const { - _shouldBeVisible = visible; + return _trayMenu; +} + + +void SystemTray::trayMenuAboutToShow() +{ + if (GraphicalUi::isMainWidgetVisible()) + _minimizeRestoreAction->setText(tr("&Minimize")); + else + _minimizeRestoreAction->setText(tr("&Restore")); +} + + +bool SystemTray::animationEnabled() const +{ + return _animationEnabled; +} + + +void SystemTray::enableAnimationChanged(const QVariant &v) +{ + _animationEnabled = v.toBool(); + emit animationEnabledChanged(v.toBool()); +} + + +void SystemTray::invertTrayIconChanged(const QVariant &v) +{ + _trayIconInverted = v.toBool(); +} + + +QString SystemTray::toolTipTitle() const +{ + return _toolTipTitle; +} + + +QString SystemTray::toolTipSubTitle() const +{ + return _toolTipSubTitle; } @@ -182,20 +251,19 @@ void SystemTray::showMessage(const QString &title, const QString &message, Messa } -void SystemTray::activate(SystemTray::ActivationReason reason) +void SystemTray::closeMessage(uint notificationId) { - emit activated(reason); + Q_UNUSED(notificationId) } -void SystemTray::minimizeRestore() +void SystemTray::activate(SystemTray::ActivationReason reason) { - GraphicalUi::toggleMainWidget(); + emit activated(reason); } -void SystemTray::enableAnimationChanged(const QVariant &v) +void SystemTray::minimizeRestore() { - _animationEnabled = v.toBool(); - emit animationEnabledChanged(v.toBool()); + GraphicalUi::toggleMainWidget(); }