X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsystemtray.cpp;h=2bc365417a7383d2cea0cafd3d432c0da6ef3d47;hp=02ecffa345e8340a3b73d554215ec7b8e6e1408e;hb=1a9450ecc5eeb5f987ceac790be84dcced02f028;hpb=9d54503555534a2c554f09a33df6afa33d6308ec diff --git a/src/qtui/systemtray.cpp b/src/qtui/systemtray.cpp index 02ecffa3..2bc36541 100644 --- a/src/qtui/systemtray.cpp +++ b/src/qtui/systemtray.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This file is free software; you can redistribute it and/or modify * @@ -26,10 +26,9 @@ #include "action.h" #include "actioncollection.h" #include "client.h" -#include "iconloader.h" #include "qtui.h" -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include # include # include @@ -37,13 +36,6 @@ SystemTray::SystemTray(QWidget *parent) : QObject(parent), - _mode(Invalid), - _state(Passive), - _shouldBeVisible(true), - _passiveIcon(DesktopIcon("quassel-inactive")), - _activeIcon(DesktopIcon("quassel")), - _needsAttentionIcon(DesktopIcon("quassel-message")), - _trayMenu(0), _associatedWidget(parent) { Q_ASSERT(parent); @@ -56,18 +48,12 @@ SystemTray::~SystemTray() } -QWidget *SystemTray::associatedWidget() const -{ - return _associatedWidget; -} - - void SystemTray::init() { ActionCollection *coll = QtUi::actionCollection("General"); _minimizeRestoreAction = new Action(tr("&Minimize"), this, this, SLOT(minimizeRestore())); -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 KMenu *kmenu; _trayMenu = kmenu = new KMenu(); kmenu->addTitle(_activeIcon, "Quassel IRC"); @@ -77,7 +63,7 @@ void SystemTray::init() _trayMenu->setTitle("Quassel IRC"); -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 _trayMenu->setAttribute(Qt::WA_Hover); #endif @@ -95,12 +81,39 @@ void SystemTray::init() } -void SystemTray::trayMenuAboutToShow() +QWidget *SystemTray::associatedWidget() const { - if (GraphicalUi::isMainWidgetVisible()) - _minimizeRestoreAction->setText(tr("&Minimize")); - else - _minimizeRestoreAction->setText(tr("&Restore")); + return _associatedWidget; +} + + +bool SystemTray::isSystemTrayAvailable() const +{ + return false; +} + + +bool SystemTray::isVisible() const +{ + return false; +} + + +bool SystemTray::shouldBeVisible() const +{ + return _shouldBeVisible; +} + + +void SystemTray::setVisible(bool visible) +{ + _shouldBeVisible = visible; +} + + +SystemTray::Mode SystemTray::mode() const +{ + return _mode; } @@ -108,7 +121,7 @@ void SystemTray::setMode(Mode mode_) { if (mode_ != _mode) { _mode = mode_; -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 if (_trayMenu) { if (_mode == Legacy) { _trayMenu->setWindowFlags(Qt::Popup); @@ -122,31 +135,37 @@ void SystemTray::setMode(Mode mode_) } -Icon SystemTray::stateIcon() const +SystemTray::State SystemTray::state() const { - return stateIcon(state()); + return _state; } -Icon 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 Icon(); } -void SystemTray::setState(State state) +QString SystemTray::iconName(State state) const { - if (_state != state) { - _state = state; + switch (state) { + case State::Passive: + return "inactive-quassel"; + case State::Active: + return "quassel"; + case State::NeedsAttention: + return "message-quassel"; } + return {}; +} + + +bool SystemTray::isAlerted() const +{ + return state() == State::NeedsAttention; } @@ -159,9 +178,43 @@ 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()); +} + + +QString SystemTray::toolTipTitle() const +{ + return _toolTipTitle; +} + + +QString SystemTray::toolTipSubTitle() const +{ + return _toolTipSubTitle; } @@ -183,20 +236,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(); }