X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsystraynotificationbackend.cpp;h=183404d5bcb2636b934e72e4b34a6da2677bb08e;hp=deb4927488d3dcbae49e5c2a952091d6cfee4838;hb=HEAD;hpb=b7447afe8e836376776dac26704e227a678d2913 diff --git a/src/qtui/systraynotificationbackend.cpp b/src/qtui/systraynotificationbackend.cpp index deb49274..044c4aed 100644 --- a/src/qtui/systraynotificationbackend.cpp +++ b/src/qtui/systraynotificationbackend.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -33,24 +33,27 @@ #include "qtui.h" #include "systemtray.h" -SystrayNotificationBackend::SystrayNotificationBackend(QObject *parent) - : AbstractNotificationBackend(parent), - _blockActivation(false) +SystrayNotificationBackend::SystrayNotificationBackend(QObject* parent) + : AbstractNotificationBackend(parent) { NotificationSettings notificationSettings; - notificationSettings.initAndNotify("Systray/ShowBubble", this, SLOT(showBubbleChanged(QVariant)), true); + notificationSettings.initAndNotify("Systray/ShowBubble", this, &SystrayNotificationBackend::showBubbleChanged, true); - connect(QtUi::mainWindow()->systemTray(), SIGNAL(messageClicked(uint)), SLOT(notificationActivated(uint))); - connect(QtUi::mainWindow()->systemTray(), SIGNAL(activated(SystemTray::ActivationReason)), - SLOT(notificationActivated(SystemTray::ActivationReason))); + connect(QtUi::mainWindow()->systemTray(), + &SystemTray::messageClicked, + this, + selectOverload(&SystrayNotificationBackend::onNotificationActivated)); + connect(QtUi::mainWindow()->systemTray(), + &SystemTray::activated, + this, + selectOverload(&SystrayNotificationBackend::onNotificationActivated)); QApplication::instance()->installEventFilter(this); updateToolTip(); } - -void SystrayNotificationBackend::notify(const Notification &n) +void SystrayNotificationBackend::notify(const Notification& n) { if (n.type != Highlight && n.type != PrivMsg) return; @@ -65,7 +68,6 @@ void SystrayNotificationBackend::notify(const Notification &n) updateToolTip(); } - void SystrayNotificationBackend::close(uint notificationId) { QList::iterator i = _notifications.begin(); @@ -81,8 +83,7 @@ void SystrayNotificationBackend::close(uint notificationId) updateToolTip(); } - -void SystrayNotificationBackend::notificationActivated(uint notificationId) +void SystrayNotificationBackend::onNotificationActivated(uint notificationId) { if (!_blockActivation) { QList::iterator i = _notifications.begin(); @@ -93,25 +94,25 @@ void SystrayNotificationBackend::notificationActivated(uint notificationId) emit activated(notificationId); break; } - ++i; + ++i; } } } - -void SystrayNotificationBackend::notificationActivated(SystemTray::ActivationReason reason) +void SystrayNotificationBackend::onNotificationActivated(SystemTray::ActivationReason reason) { if (reason == SystemTray::Trigger) { - if (_notifications.count()) - notificationActivated(_notifications.last().notificationId); - else + if (_notifications.count()) { + onNotificationActivated(_notifications.last().notificationId); + } + else { GraphicalUi::toggleMainWidget(); + } } } - // moving the mouse or releasing the button means that we're not dealing with a double activation -bool SystrayNotificationBackend::eventFilter(QObject *obj, QEvent *event) +bool SystrayNotificationBackend::eventFilter(QObject* obj, QEvent* event) { if (event->type() == QEvent::MouseMove || event->type() == QEvent::MouseButtonRelease) { _blockActivation = false; @@ -119,38 +120,35 @@ bool SystrayNotificationBackend::eventFilter(QObject *obj, QEvent *event) return AbstractNotificationBackend::eventFilter(obj, event); } - -void SystrayNotificationBackend::showBubbleChanged(const QVariant &v) +void SystrayNotificationBackend::showBubbleChanged(const QVariant& v) { _showBubble = v.toBool(); } - void SystrayNotificationBackend::updateToolTip() { QtUi::mainWindow()->systemTray()->setToolTip("Quassel IRC", - _notifications.count() ? tr("%n pending highlight(s)", "", _notifications.count()) : QString()); + _notifications.count() ? tr("%n pending highlight(s)", "", _notifications.count()) + : QString()); } - -SettingsPage *SystrayNotificationBackend::createConfigWidget() const +SettingsPage* SystrayNotificationBackend::createConfigWidget() const { return new ConfigWidget(); } - /***************************************************************************/ -SystrayNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) : SettingsPage("Internal", "SystrayNotification", parent) +SystrayNotificationBackend::ConfigWidget::ConfigWidget(QWidget* parent) + : SettingsPage("Internal", "SystrayNotification", parent) { _showBubbleBox = new QCheckBox(tr("Show a message in a popup")); _showBubbleBox->setIcon(icon::get("dialog-information")); - connect(_showBubbleBox, SIGNAL(toggled(bool)), this, SLOT(widgetChanged())); - QHBoxLayout *layout = new QHBoxLayout(this); + connect(_showBubbleBox, &QAbstractButton::toggled, this, &ConfigWidget::widgetChanged); + auto* layout = new QHBoxLayout(this); layout->addWidget(_showBubbleBox); } - void SystrayNotificationBackend::ConfigWidget::widgetChanged() { bool changed = (_showBubble != _showBubbleBox->isChecked()); @@ -158,20 +156,17 @@ void SystrayNotificationBackend::ConfigWidget::widgetChanged() setChangedState(changed); } - bool SystrayNotificationBackend::ConfigWidget::hasDefaults() const { return true; } - void SystrayNotificationBackend::ConfigWidget::defaults() { _showBubbleBox->setChecked(false); widgetChanged(); } - void SystrayNotificationBackend::ConfigWidget::load() { NotificationSettings s; @@ -180,7 +175,6 @@ void SystrayNotificationBackend::ConfigWidget::load() setChangedState(false); } - void SystrayNotificationBackend::ConfigWidget::save() { NotificationSettings s;