X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fqtmultimedianotificationbackend.cpp;h=5754a3e7b0483cffc6763a6a8ed5c20ae5665eb0;hb=4e51500401db3c85dbe5e92e5e5c15b6e3c87787;hp=612c91c7b42ddd8bd340226f37a997421e021d59;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;p=quassel.git diff --git a/src/qtui/qtmultimedianotificationbackend.cpp b/src/qtui/qtmultimedianotificationbackend.cpp index 612c91c7..5754a3e7 100644 --- a/src/qtui/qtmultimedianotificationbackend.cpp +++ b/src/qtui/qtmultimedianotificationbackend.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,30 +18,31 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include "qtmultimedianotificationbackend.h" + +#include + #include -#include #include -#include "qtmultimedianotificationbackend.h" - #include "clientsettings.h" +#include "icon.h" #include "mainwin.h" #include "qtui.h" -QtMultimediaNotificationBackend::QtMultimediaNotificationBackend(QObject *parent) +QtMultimediaNotificationBackend::QtMultimediaNotificationBackend(QObject* parent) : AbstractNotificationBackend(parent) { NotificationSettings notificationSettings; - notificationSettings.notify("QtMultimedia/Enabled", this, SLOT(enabledChanged(const QVariant &))); - notificationSettings.notify("QtMultimedia/AudioFile", this, SLOT(audioFileChanged(const QVariant &))); + notificationSettings.notify("QtMultimedia/Enabled", this, &QtMultimediaNotificationBackend::enabledChanged); + notificationSettings.notify("QtMultimedia/AudioFile", this, &QtMultimediaNotificationBackend::audioFileChanged); createMediaObject(notificationSettings.value("QtMultimedia/AudioFile", QString()).toString()); _enabled = notificationSettings.value("QtMultimedia/Enabled", true).toBool(); } - -void QtMultimediaNotificationBackend::notify(const Notification ¬ification) +void QtMultimediaNotificationBackend::notify(const Notification& notification) { if (_enabled && (notification.type == Highlight || notification.type == PrivMsg)) { if (_media && _media->availability() == QMultimedia::Available) { @@ -53,63 +54,56 @@ void QtMultimediaNotificationBackend::notify(const Notification ¬ification) } } - void QtMultimediaNotificationBackend::close(uint notificationId) { Q_UNUSED(notificationId); } - -void QtMultimediaNotificationBackend::enabledChanged(const QVariant &v) +void QtMultimediaNotificationBackend::enabledChanged(const QVariant& v) { _enabled = v.toBool(); } - -void QtMultimediaNotificationBackend::audioFileChanged(const QVariant &v) +void QtMultimediaNotificationBackend::audioFileChanged(const QVariant& v) { createMediaObject(v.toString()); } - -SettingsPage *QtMultimediaNotificationBackend::createConfigWidget() const +SettingsPage* QtMultimediaNotificationBackend::createConfigWidget() const { return new ConfigWidget(); } - -void QtMultimediaNotificationBackend::createMediaObject(const QString &file) +void QtMultimediaNotificationBackend::createMediaObject(const QString& file) { if (file.isEmpty()) { _media.reset(); return; } - _media.reset(new QMediaPlayer); + _media = std::make_unique(); _media->setMedia(QUrl::fromLocalFile(file)); } - /***************************************************************************/ -QtMultimediaNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) +QtMultimediaNotificationBackend::ConfigWidget::ConfigWidget(QWidget* parent) : SettingsPage("Internal", "QtMultimediaNotification", parent) { ui.setupUi(this); - ui.enabled->setIcon(QIcon::fromTheme("media-playback-start")); - ui.play->setIcon(QIcon::fromTheme("media-playback-start")); - ui.open->setIcon(QIcon::fromTheme("document-open")); + ui.enabled->setIcon(icon::get("media-playback-start")); + ui.play->setIcon(icon::get("media-playback-start")); + ui.open->setIcon(icon::get("document-open")); _audioAvailable = (QMediaPlayer().availability() == QMultimedia::Available); - connect(ui.enabled, SIGNAL(toggled(bool)), SLOT(widgetChanged())); - connect(ui.filename, SIGNAL(textChanged(const QString &)), SLOT(widgetChanged())); + connect(ui.enabled, &QAbstractButton::toggled, this, &ConfigWidget::widgetChanged); + connect(ui.filename, &QLineEdit::textChanged, this, &ConfigWidget::widgetChanged); } - void QtMultimediaNotificationBackend::ConfigWidget::widgetChanged() { - if (! _audioAvailable) { + if (!_audioAvailable) { ui.play->setEnabled(ui.enabled->isChecked()); ui.open->setEnabled(false); ui.filename->setEnabled(false); @@ -125,13 +119,11 @@ void QtMultimediaNotificationBackend::ConfigWidget::widgetChanged() } } - bool QtMultimediaNotificationBackend::ConfigWidget::hasDefaults() const { return true; } - void QtMultimediaNotificationBackend::ConfigWidget::defaults() { ui.enabled->setChecked(false); @@ -139,7 +131,6 @@ void QtMultimediaNotificationBackend::ConfigWidget::defaults() widgetChanged(); } - void QtMultimediaNotificationBackend::ConfigWidget::load() { NotificationSettings s; @@ -152,7 +143,6 @@ void QtMultimediaNotificationBackend::ConfigWidget::load() setChangedState(false); } - void QtMultimediaNotificationBackend::ConfigWidget::save() { NotificationSettings s; @@ -161,7 +151,6 @@ void QtMultimediaNotificationBackend::ConfigWidget::save() load(); } - void QtMultimediaNotificationBackend::ConfigWidget::on_open_clicked() { QString file = QFileDialog::getOpenFileName(this, tr("Select Audio File")); @@ -172,12 +161,11 @@ void QtMultimediaNotificationBackend::ConfigWidget::on_open_clicked() } } - void QtMultimediaNotificationBackend::ConfigWidget::on_play_clicked() { if (_audioAvailable) { if (!ui.filename->text().isEmpty()) { - _audioPreview.reset(new QMediaPlayer); + _audioPreview = std::make_unique(); _audioPreview->setMedia(QUrl::fromLocalFile(ui.filename->text())); _audioPreview->play(); }