X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fqtmultimedianotificationbackend.cpp;h=3a32cb1709b0973820c03943ba5c5ce223efc60f;hp=746c21cb0ca3f4e01c5af56f49ac936058ab8a3c;hb=20745bd0cbae035b84913127dfec9e8433d1282d;hpb=680565f39c50f27cc339cb3e96bbd0abc6f47144 diff --git a/src/qtui/qtmultimedianotificationbackend.cpp b/src/qtui/qtmultimedianotificationbackend.cpp index 746c21cb..3a32cb17 100644 --- a/src/qtui/qtmultimedianotificationbackend.cpp +++ b/src/qtui/qtmultimedianotificationbackend.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,19 +18,19 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include "qtmultimedianotificationbackend.h" + #include -#include #include - -#include "qtmultimedianotificationbackend.h" +#include #include "clientsettings.h" +#include "icon.h" #include "mainwin.h" #include "qtui.h" QtMultimediaNotificationBackend::QtMultimediaNotificationBackend(QObject *parent) - : AbstractNotificationBackend(parent), - _media(0) + : AbstractNotificationBackend(parent) { NotificationSettings notificationSettings; notificationSettings.notify("QtMultimedia/Enabled", this, SLOT(enabledChanged(const QVariant &))); @@ -42,13 +42,6 @@ QtMultimediaNotificationBackend::QtMultimediaNotificationBackend(QObject *parent } -QtMultimediaNotificationBackend::~QtMultimediaNotificationBackend() -{ - if (_media) - delete _media; -} - - void QtMultimediaNotificationBackend::notify(const Notification ¬ification) { if (_enabled && (notification.type == Highlight || notification.type == PrivMsg)) { @@ -88,15 +81,12 @@ SettingsPage *QtMultimediaNotificationBackend::createConfigWidget() const void QtMultimediaNotificationBackend::createMediaObject(const QString &file) { - if (_media) - delete _media; - if (file.isEmpty()) { - _media = 0; + _media.reset(); return; } - _media = new QMediaPlayer; + _media = std::make_unique(); _media->setMedia(QUrl::fromLocalFile(file)); } @@ -104,42 +94,32 @@ void QtMultimediaNotificationBackend::createMediaObject(const QString &file) /***************************************************************************/ QtMultimediaNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) - : SettingsPage("Internal", "QtMultimediaNotification", parent), - audioPreview(0) + : 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")); - QMediaPlayer *player = new QMediaPlayer; - _audioAvailable = player->availability() == QMultimedia::Available; - delete player; + _audioAvailable = (QMediaPlayer().availability() == QMultimedia::Available); connect(ui.enabled, SIGNAL(toggled(bool)), SLOT(widgetChanged())); connect(ui.filename, SIGNAL(textChanged(const QString &)), SLOT(widgetChanged())); } -QtMultimediaNotificationBackend::ConfigWidget::~ConfigWidget() -{ - if (audioPreview) - delete audioPreview; -} - - void QtMultimediaNotificationBackend::ConfigWidget::widgetChanged() { if (! _audioAvailable) { ui.play->setEnabled(ui.enabled->isChecked()); ui.open->setEnabled(false); ui.filename->setEnabled(false); - ui.filename->setText(QString()); + ui.filename->setText({}); } else { ui.play->setEnabled(ui.enabled->isChecked() && !ui.filename->text().isEmpty()); - bool changed = (enabled != ui.enabled->isChecked() || filename != ui.filename->text()); + bool changed = (_enabled != ui.enabled->isChecked() || _filename != ui.filename->text()); if (changed != hasChanged()) setChangedState(changed); @@ -156,7 +136,7 @@ bool QtMultimediaNotificationBackend::ConfigWidget::hasDefaults() const void QtMultimediaNotificationBackend::ConfigWidget::defaults() { ui.enabled->setChecked(false); - ui.filename->setText(QString()); + ui.filename->setText({}); widgetChanged(); } @@ -164,11 +144,11 @@ void QtMultimediaNotificationBackend::ConfigWidget::defaults() void QtMultimediaNotificationBackend::ConfigWidget::load() { NotificationSettings s; - enabled = s.value("QtMultimedia/Enabled", false).toBool(); - filename = s.value("QtMultimedia/AudioFile", QString()).toString(); + _enabled = s.value("QtMultimedia/Enabled", false).toBool(); + _filename = s.value("QtMultimedia/AudioFile", QString()).toString(); - ui.enabled->setChecked(enabled); - ui.filename->setText(filename); + ui.enabled->setChecked(_enabled); + ui.filename->setText(_filename); setChangedState(false); } @@ -198,12 +178,9 @@ void QtMultimediaNotificationBackend::ConfigWidget::on_play_clicked() { if (_audioAvailable) { if (!ui.filename->text().isEmpty()) { - if (audioPreview) - delete audioPreview; - - audioPreview = new QMediaPlayer; - audioPreview->setMedia(QUrl::fromLocalFile(ui.filename->text())); - audioPreview->play(); + _audioPreview = std::make_unique(); + _audioPreview->setMedia(QUrl::fromLocalFile(ui.filename->text())); + _audioPreview->play(); } } else