Moved WebRadioDialog from heap to stack
This commit is contained in:
@@ -24,68 +24,68 @@
|
|||||||
<translation>Stop</translation>
|
<translation>Stop</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="63"/>
|
<location filename="../webradiodialog.cpp" line="54"/>
|
||||||
<source>Stopped</source>
|
<source>Stopped</source>
|
||||||
<translation>Gestoppt</translation>
|
<translation>Gestoppt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="64"/>
|
<location filename="../webradiodialog.cpp" line="55"/>
|
||||||
<source>Playing</source>
|
<source>Playing</source>
|
||||||
<translation>Wird abgespielt</translation>
|
<translation>Wird abgespielt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="65"/>
|
<location filename="../webradiodialog.cpp" line="56"/>
|
||||||
<source>Paused</source>
|
<source>Paused</source>
|
||||||
<translation>Pausiert</translation>
|
<translation>Pausiert</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="68"/>
|
<location filename="../webradiodialog.cpp" line="59"/>
|
||||||
<location filename="../webradiodialog.cpp" line="87"/>
|
<location filename="../webradiodialog.cpp" line="78"/>
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation>Unbekannt</translation>
|
<translation>Unbekannt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="76"/>
|
<location filename="../webradiodialog.cpp" line="67"/>
|
||||||
<source>Unknown media</source>
|
<source>Unknown media</source>
|
||||||
<translation>Unbekanntes Medium</translation>
|
<translation>Unbekanntes Medium</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="77"/>
|
<location filename="../webradiodialog.cpp" line="68"/>
|
||||||
<source>No media</source>
|
<source>No media</source>
|
||||||
<translation>Kein Medium</translation>
|
<translation>Kein Medium</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="78"/>
|
<location filename="../webradiodialog.cpp" line="69"/>
|
||||||
<source>Loading media...</source>
|
<source>Loading media...</source>
|
||||||
<translation>Lade Medium...</translation>
|
<translation>Lade Medium...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="79"/>
|
<location filename="../webradiodialog.cpp" line="70"/>
|
||||||
<source>Loaded media</source>
|
<source>Loaded media</source>
|
||||||
<translation>Medium geladen</translation>
|
<translation>Medium geladen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="80"/>
|
<location filename="../webradiodialog.cpp" line="71"/>
|
||||||
<source>Stalled media</source>
|
<source>Stalled media</source>
|
||||||
<translation>Medium angehalten</translation>
|
<translation>Medium angehalten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="81"/>
|
<location filename="../webradiodialog.cpp" line="72"/>
|
||||||
<source>Buffering media</source>
|
<source>Buffering media</source>
|
||||||
<translation>Puffere Medium</translation>
|
<translation>Puffere Medium</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="82"/>
|
<location filename="../webradiodialog.cpp" line="73"/>
|
||||||
<source>Buffered media</source>
|
<source>Buffered media</source>
|
||||||
<translation>Medium gepuffert</translation>
|
<translation>Medium gepuffert</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="83"/>
|
<location filename="../webradiodialog.cpp" line="74"/>
|
||||||
<source>End of media</source>
|
<source>End of media</source>
|
||||||
<translation>Ende des Mediums</translation>
|
<translation>Ende des Mediums</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="84"/>
|
<location filename="../webradiodialog.cpp" line="75"/>
|
||||||
<source>Invalid media</source>
|
<source>Invalid media</source>
|
||||||
<translation>Ungültiges Medium</translation>
|
<translation>Ungültiges Medium</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>WebRadioPlugin</name>
|
<name>WebRadioPlugin</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradioplugin.cpp" line="39"/>
|
<location filename="../webradioplugin.cpp" line="48"/>
|
||||||
<source>Play webradio</source>
|
<source>Play webradio</source>
|
||||||
<translation>Webradio spielen</translation>
|
<translation>Webradio spielen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@@ -24,68 +24,68 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="63"/>
|
<location filename="../webradiodialog.cpp" line="54"/>
|
||||||
<source>Stopped</source>
|
<source>Stopped</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="64"/>
|
<location filename="../webradiodialog.cpp" line="55"/>
|
||||||
<source>Playing</source>
|
<source>Playing</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="65"/>
|
<location filename="../webradiodialog.cpp" line="56"/>
|
||||||
<source>Paused</source>
|
<source>Paused</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="68"/>
|
<location filename="../webradiodialog.cpp" line="59"/>
|
||||||
<location filename="../webradiodialog.cpp" line="87"/>
|
<location filename="../webradiodialog.cpp" line="78"/>
|
||||||
<source>Unknown</source>
|
<source>Unknown</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="76"/>
|
<location filename="../webradiodialog.cpp" line="67"/>
|
||||||
<source>Unknown media</source>
|
<source>Unknown media</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="77"/>
|
<location filename="../webradiodialog.cpp" line="68"/>
|
||||||
<source>No media</source>
|
<source>No media</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="78"/>
|
<location filename="../webradiodialog.cpp" line="69"/>
|
||||||
<source>Loading media...</source>
|
<source>Loading media...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="79"/>
|
<location filename="../webradiodialog.cpp" line="70"/>
|
||||||
<source>Loaded media</source>
|
<source>Loaded media</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="80"/>
|
<location filename="../webradiodialog.cpp" line="71"/>
|
||||||
<source>Stalled media</source>
|
<source>Stalled media</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="81"/>
|
<location filename="../webradiodialog.cpp" line="72"/>
|
||||||
<source>Buffering media</source>
|
<source>Buffering media</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="82"/>
|
<location filename="../webradiodialog.cpp" line="73"/>
|
||||||
<source>Buffered media</source>
|
<source>Buffered media</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="83"/>
|
<location filename="../webradiodialog.cpp" line="74"/>
|
||||||
<source>End of media</source>
|
<source>End of media</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradiodialog.cpp" line="84"/>
|
<location filename="../webradiodialog.cpp" line="75"/>
|
||||||
<source>Invalid media</source>
|
<source>Invalid media</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>WebRadioPlugin</name>
|
<name>WebRadioPlugin</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../webradioplugin.cpp" line="39"/>
|
<location filename="../webradioplugin.cpp" line="48"/>
|
||||||
<source>Play webradio</source>
|
<source>Play webradio</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@@ -4,20 +4,20 @@
|
|||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
#include "zeiterfassungsettings.h"
|
#include "zeiterfassungsettings.h"
|
||||||
|
|
||||||
WebRadioDialog::WebRadioDialog(MainWindow &mainWindow) :
|
WebRadioDialog::WebRadioDialog(QMediaPlayer &player, MainWindow &mainWindow) :
|
||||||
ZeiterfassungDialog(&mainWindow),
|
ZeiterfassungDialog(&mainWindow),
|
||||||
ui(new Ui::WebRadioDialog),
|
ui(new Ui::WebRadioDialog),
|
||||||
m_mainWindow(mainWindow),
|
m_mainWindow(mainWindow),
|
||||||
m_settings(m_mainWindow.settings())
|
m_settings(m_mainWindow.settings()),
|
||||||
|
m_player(player)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
m_player = new QMediaPlayer(this);
|
connect(&m_player, &QMediaPlayer::stateChanged, this, &WebRadioDialog::stateChanged);
|
||||||
connect(m_player, &QMediaPlayer::stateChanged, this, &WebRadioDialog::stateChanged);
|
connect(&m_player, &QMediaPlayer::stateChanged, this, &WebRadioDialog::updateWidgets);
|
||||||
connect(m_player, &QMediaPlayer::stateChanged, this, &WebRadioDialog::updateWidgets);
|
connect(&m_player, &QMediaPlayer::mediaStatusChanged, this, &WebRadioDialog::mediaStatusChanged);
|
||||||
connect(m_player, &QMediaPlayer::mediaStatusChanged, this, &WebRadioDialog::mediaStatusChanged);
|
connect(&m_player, &QMediaPlayer::mediaStatusChanged, this, &WebRadioDialog::updateWidgets);
|
||||||
connect(m_player, &QMediaPlayer::mediaStatusChanged, this, &WebRadioDialog::updateWidgets);
|
connect(&m_player, static_cast<void(QMediaPlayer::*)(QMediaPlayer::Error)>(&QMediaPlayer::error), this, &WebRadioDialog::error);
|
||||||
connect(m_player, static_cast<void(QMediaPlayer::*)(QMediaPlayer::Error)>(&QMediaPlayer::error), this, &WebRadioDialog::error);
|
|
||||||
|
|
||||||
for(const auto &url : m_settings.urls())
|
for(const auto &url : m_settings.urls())
|
||||||
ui->comboBox->addItem(url, url);
|
ui->comboBox->addItem(url, url);
|
||||||
@@ -31,28 +31,19 @@ WebRadioDialog::WebRadioDialog(MainWindow &mainWindow) :
|
|||||||
this, &WebRadioDialog::updateWidgets);
|
this, &WebRadioDialog::updateWidgets);
|
||||||
|
|
||||||
connect(ui->pushButtonPlay, &QAbstractButton::pressed, this, &WebRadioDialog::play);
|
connect(ui->pushButtonPlay, &QAbstractButton::pressed, this, &WebRadioDialog::play);
|
||||||
connect(ui->pushButtonPause, &QAbstractButton::pressed, m_player, &QMediaPlayer::pause);
|
connect(ui->pushButtonPause, &QAbstractButton::pressed, &m_player, &QMediaPlayer::pause);
|
||||||
connect(ui->pushButtonStop, &QAbstractButton::pressed, m_player, &QMediaPlayer::stop);
|
connect(ui->pushButtonStop, &QAbstractButton::pressed, &m_player, &QMediaPlayer::stop);
|
||||||
|
|
||||||
m_player->setVolume(m_settings.volume());
|
ui->horizontalSlider->setValue(m_player.volume());
|
||||||
ui->horizontalSlider->setValue(m_player->volume());
|
|
||||||
connect(ui->horizontalSlider, &QAbstractSlider::valueChanged, this, &WebRadioDialog::volumeChanged);
|
connect(ui->horizontalSlider, &QAbstractSlider::valueChanged, this, &WebRadioDialog::volumeChanged);
|
||||||
|
|
||||||
stateChanged(m_player->state());
|
stateChanged(m_player.state());
|
||||||
mediaStatusChanged(m_player->mediaStatus());
|
mediaStatusChanged(m_player.mediaStatus());
|
||||||
currentIndexChanged(ui->comboBox->currentIndex());
|
|
||||||
updateWidgets();
|
updateWidgets();
|
||||||
}
|
}
|
||||||
|
|
||||||
WebRadioDialog::~WebRadioDialog()
|
WebRadioDialog::~WebRadioDialog()
|
||||||
{
|
{
|
||||||
// To avoid crash on app close
|
|
||||||
disconnect(m_player, &QMediaPlayer::stateChanged, this, &WebRadioDialog::stateChanged);
|
|
||||||
disconnect(m_player, &QMediaPlayer::stateChanged, this, &WebRadioDialog::updateWidgets);
|
|
||||||
disconnect(m_player, &QMediaPlayer::mediaStatusChanged, this, &WebRadioDialog::mediaStatusChanged);
|
|
||||||
disconnect(m_player, &QMediaPlayer::mediaStatusChanged, this, &WebRadioDialog::updateWidgets);
|
|
||||||
disconnect(m_player, static_cast<void(QMediaPlayer::*)(QMediaPlayer::Error)>(&QMediaPlayer::error), this, &WebRadioDialog::error);
|
|
||||||
|
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,9 +87,10 @@ void WebRadioDialog::error(QMediaPlayer::Error error)
|
|||||||
void WebRadioDialog::currentIndexChanged(int index)
|
void WebRadioDialog::currentIndexChanged(int index)
|
||||||
{
|
{
|
||||||
if(index == -1)
|
if(index == -1)
|
||||||
m_player->setMedia(QMediaContent());
|
m_player.setMedia(QMediaContent());
|
||||||
else
|
else
|
||||||
m_player->setMedia(QMediaContent(QUrl(ui->comboBox->currentData().toString())));
|
m_player.setMedia(QMediaContent(QUrl(ui->comboBox->currentData().toString())));
|
||||||
|
m_settings.setLastUrl(ui->comboBox->currentData().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebRadioDialog::play()
|
void WebRadioDialog::play()
|
||||||
@@ -106,23 +98,21 @@ void WebRadioDialog::play()
|
|||||||
if(ui->comboBox->currentIndex() == -1)
|
if(ui->comboBox->currentIndex() == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_settings.setLastUrl(ui->comboBox->currentData().toString());
|
m_player.play();
|
||||||
|
|
||||||
m_player->play();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebRadioDialog::updateWidgets()
|
void WebRadioDialog::updateWidgets()
|
||||||
{
|
{
|
||||||
ui->comboBox->setEnabled(m_player->state() != QMediaPlayer::PlayingState);
|
ui->comboBox->setEnabled(m_player.state() != QMediaPlayer::PlayingState);
|
||||||
ui->pushButtonPlay->setEnabled(ui->comboBox->currentIndex() > -1 &&
|
ui->pushButtonPlay->setEnabled(ui->comboBox->currentIndex() > -1 &&
|
||||||
(m_player->state() == QMediaPlayer::StoppedState || m_player->state() == QMediaPlayer::PausedState) &&
|
(m_player.state() == QMediaPlayer::StoppedState || m_player.state() == QMediaPlayer::PausedState) &&
|
||||||
(m_player->mediaStatus() == QMediaPlayer::LoadedMedia || m_player->mediaStatus() == QMediaPlayer::BufferedMedia));
|
(m_player.mediaStatus() == QMediaPlayer::LoadedMedia || m_player.mediaStatus() == QMediaPlayer::BufferedMedia));
|
||||||
ui->pushButtonPause->setEnabled(m_player->state() == QMediaPlayer::PlayingState || m_player->state() == QMediaPlayer::PausedState);
|
ui->pushButtonPause->setEnabled(m_player.state() == QMediaPlayer::PlayingState || m_player.state() == QMediaPlayer::PausedState);
|
||||||
ui->pushButtonStop->setEnabled(m_player->state() == QMediaPlayer::PlayingState || m_player->state() == QMediaPlayer::PausedState);
|
ui->pushButtonStop->setEnabled(m_player.state() == QMediaPlayer::PlayingState || m_player.state() == QMediaPlayer::PausedState);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebRadioDialog::volumeChanged(int volume)
|
void WebRadioDialog::volumeChanged(int volume)
|
||||||
{
|
{
|
||||||
m_settings.setVolume(volume);
|
m_settings.setVolume(volume);
|
||||||
m_player->setVolume(volume);
|
m_player.setVolume(volume);
|
||||||
}
|
}
|
||||||
|
@@ -15,7 +15,7 @@ class WebRadioDialog : public ZeiterfassungDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit WebRadioDialog(MainWindow &mainWindow);
|
explicit WebRadioDialog(QMediaPlayer &player, MainWindow &mainWindow);
|
||||||
~WebRadioDialog();
|
~WebRadioDialog();
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
@@ -34,5 +34,5 @@ private:
|
|||||||
MainWindow &m_mainWindow;
|
MainWindow &m_mainWindow;
|
||||||
WebRadioSettings m_settings;
|
WebRadioSettings m_settings;
|
||||||
|
|
||||||
QMediaPlayer *m_player;
|
QMediaPlayer &m_player;
|
||||||
};
|
};
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
|
#include <QMediaPlayer>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
|
||||||
@@ -11,6 +12,7 @@
|
|||||||
|
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
#include "webradiosettings.h"
|
||||||
#include "webradiodialog.h"
|
#include "webradiodialog.h"
|
||||||
#include "webradiosettingswidget.h"
|
#include "webradiosettingswidget.h"
|
||||||
|
|
||||||
@@ -34,9 +36,19 @@ WebRadioPlugin::WebRadioPlugin(QObject *parent) :
|
|||||||
|
|
||||||
void WebRadioPlugin::attachTo(MainWindow &mainWindow)
|
void WebRadioPlugin::attachTo(MainWindow &mainWindow)
|
||||||
{
|
{
|
||||||
auto dialog = new WebRadioDialog(mainWindow);
|
auto mediaPlayer = [&mainWindow](){
|
||||||
|
auto mediaPlayer = new QMediaPlayer(&mainWindow);
|
||||||
|
WebRadioSettings settings(mainWindow.settings());
|
||||||
|
mediaPlayer->setVolume(settings.volume());
|
||||||
|
mediaPlayer->setMedia(QMediaContent(QUrl(settings.lastUrl())));
|
||||||
|
return mediaPlayer;
|
||||||
|
}();
|
||||||
|
|
||||||
mainWindow.menuTools()->addAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/webradioplugin/images/web-radio.png")),
|
mainWindow.menuTools()->addAction(QIcon(QStringLiteral(":/zeiterfassung/plugins/webradioplugin/images/web-radio.png")),
|
||||||
tr("Play webradio"), dialog, &QWidget::show);
|
tr("Play webradio"), &mainWindow, [mediaPlayer, &mainWindow](){
|
||||||
|
WebRadioDialog dialog(*mediaPlayer, mainWindow);
|
||||||
|
dialog.exec();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsWidget *WebRadioPlugin::settingsWidget(ZeiterfassungSettings &settings, QWidget *parent) const
|
SettingsWidget *WebRadioPlugin::settingsWidget(ZeiterfassungSettings &settings, QWidget *parent) const
|
||||||
|
Reference in New Issue
Block a user