X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Flegacysystemtray.cpp;h=18bf02c46046519e0e02779931037e5dade2b8b9;hp=b57fd995944f3a6e7e31db0e8215465f0a2da732;hb=d452877910888c25d40590b5fff57eb8197ca9b0;hpb=c4b281a2f246e87c216d99c8c7f7bcd26b025cc0 diff --git a/src/qtui/legacysystemtray.cpp b/src/qtui/legacysystemtray.cpp index b57fd995..18bf02c4 100644 --- a/src/qtui/legacysystemtray.cpp +++ b/src/qtui/legacysystemtray.cpp @@ -23,15 +23,15 @@ #include "legacysystemtray.h" #include "qtui.h" -LegacySystemTray::LegacySystemTray(QObject *parent) +LegacySystemTray::LegacySystemTray(QWidget *parent) : SystemTray(parent), _blinkState(false), _isVisible(true) { #ifndef HAVE_KDE - _trayIcon = new QSystemTrayIcon(QtUi::mainWindow()); + _trayIcon = new QSystemTrayIcon(associatedWidget()); #else - _trayIcon = new KSystemTrayIcon(QtUi::mainWindow()); + _trayIcon = new KSystemTrayIcon(associatedWidget()); // We don't want to trigger a minimize if a highlight is pending, so we brutally remove the internal connection for that disconnect(_trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), _trayIcon, SLOT(activateOrHide(QSystemTrayIcon::ActivationReason))); @@ -54,6 +54,8 @@ LegacySystemTray::LegacySystemTray(QObject *parent) void LegacySystemTray::init() { if(mode() == Invalid) // derived class hasn't set a mode itself setMode(Legacy); + + SystemTray::init(); } void LegacySystemTray::syncLegacyIcon() { @@ -71,6 +73,13 @@ void LegacySystemTray::setVisible(bool visible) { } } +bool LegacySystemTray::isVisible() const { + if(mode() == Legacy) { + return _trayIcon->isVisible(); + } + return false; +} + void LegacySystemTray::setMode(Mode mode_) { SystemTray::setMode(mode_); @@ -113,18 +122,7 @@ void LegacySystemTray::on_blinkTimeout() { } void LegacySystemTray::on_activated(QSystemTrayIcon::ActivationReason reason) { - emit activated((ActivationReason)reason); - - if(reason == QSystemTrayIcon::Trigger && !isActivationInhibited()) { - -# ifdef HAVE_KDE - // the slot is private, but meh, who cares :) - QMetaObject::invokeMethod(_trayIcon, "activateOrHide", Q_ARG(QSystemTrayIcon::ActivationReason, QSystemTrayIcon::Trigger)); -# else - QtUi::mainWindow()->toggleMinimizedToTray(); -# endif - - } + activate((SystemTray::ActivationReason)reason); } void LegacySystemTray::showMessage(const QString &title, const QString &message, SystemTray::MessageIcon icon, int millisecondsTimeoutHint) {