X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/2f045c60109e0a5811f68bcce617236e3478e402..5454283008f2:/src/panels/information/phononwidget.cpp diff --git a/src/panels/information/phononwidget.cpp b/src/panels/information/phononwidget.cpp index 092b5dd5b..ac4a32506 100644 --- a/src/panels/information/phononwidget.cpp +++ b/src/panels/information/phononwidget.cpp @@ -30,15 +30,16 @@ #include #include #include - -#include -#include +#include +#include #include -#include -#include +#include +#include class EmbeddedVideoPlayer : public Phonon::VideoWidget { + Q_OBJECT + public: EmbeddedVideoPlayer(QWidget *parent = 0) : Phonon::VideoWidget(parent) @@ -51,7 +52,7 @@ class EmbeddedVideoPlayer : public Phonon::VideoWidget updateGeometry(); } - virtual QSize sizeHint() const + QSize sizeHint() const Q_DECL_OVERRIDE { return m_sizeHint.isValid() ? m_sizeHint : Phonon::VideoWidget::sizeHint(); } @@ -73,7 +74,7 @@ PhononWidget::PhononWidget(QWidget *parent) { } -void PhononWidget::setUrl(const KUrl &url) +void PhononWidget::setUrl(const QUrl &url) { if (m_url != url) { stop(); // emits playingStopped() signal @@ -81,7 +82,7 @@ void PhononWidget::setUrl(const KUrl &url) } } -KUrl PhononWidget::url() const +QUrl PhononWidget::url() const { return m_url; } @@ -109,7 +110,7 @@ void PhononWidget::showEvent(QShowEvent *event) if (!m_topLayout) { m_topLayout = new QVBoxLayout(this); m_topLayout->setMargin(0); - m_topLayout->setSpacing(KDialog::spacingHint()); + QHBoxLayout *controlsLayout = new QHBoxLayout(this); controlsLayout->setMargin(0); controlsLayout->setSpacing(0); @@ -129,16 +130,16 @@ void PhononWidget::showEvent(QShowEvent *event) m_playButton->setToolTip(i18n("play")); m_playButton->setIconSize(buttonSize); - m_playButton->setIcon(KIcon("media-playback-start")); + m_playButton->setIcon(QIcon::fromTheme(QStringLiteral("media-playback-start"))); m_playButton->setAutoRaise(true); - connect(m_playButton, SIGNAL(clicked()), this, SLOT(play())); + connect(m_playButton, &QToolButton::clicked, this, &PhononWidget::play); m_stopButton->setToolTip(i18n("stop")); m_stopButton->setIconSize(buttonSize); - m_stopButton->setIcon(KIcon("media-playback-stop")); + m_stopButton->setIcon(QIcon::fromTheme(QStringLiteral("media-playback-stop"))); m_stopButton->setAutoRaise(true); m_stopButton->hide(); - connect(m_stopButton, SIGNAL(clicked()), this, SLOT(stop())); + connect(m_stopButton, &QToolButton::clicked, this, &PhononWidget::stop); m_seekSlider->setIconVisible(false); @@ -166,6 +167,12 @@ void PhononWidget::stateChanged(Phonon::State newstate) m_stopButton->show(); m_playButton->hide(); break; + case Phonon::StoppedState: + if (m_videoPlayer) { + m_videoPlayer->hide(); + } + emit hasVideoChanged(false); + // fall through default: m_stopButton->hide(); m_playButton->show(); @@ -178,13 +185,20 @@ void PhononWidget::play() { if (!m_media) { m_media = new Phonon::MediaObject(this); - connect(m_media, SIGNAL(stateChanged(Phonon::State,Phonon::State)), - this, SLOT(stateChanged(Phonon::State))); - connect(m_media, SIGNAL(hasVideoChanged(bool)), - this, SLOT(slotHasVideoChanged(bool))); + connect(m_media, &Phonon::MediaObject::stateChanged, + this, &PhononWidget::stateChanged); + connect(m_media, &Phonon::MediaObject::hasVideoChanged, + this, &PhononWidget::slotHasVideoChanged); m_seekSlider->setMediaObject(m_media); } + if (!m_videoPlayer) { + m_videoPlayer = new EmbeddedVideoPlayer(this); + m_topLayout->insertWidget(0, m_videoPlayer); + Phonon::createPath(m_media, m_videoPlayer); + applyVideoSize(); + } + if (!m_audioOutput) { m_audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this); Phonon::createPath(m_media, m_audioOutput); @@ -201,16 +215,7 @@ void PhononWidget::stop() { if (m_media) { m_media->stop(); - - m_stopButton->hide(); - m_playButton->show(); - } - - if (m_videoPlayer) { - m_videoPlayer->hide(); } - - emit hasVideoChanged(false); } void PhononWidget::slotHasVideoChanged(bool hasVideo) @@ -218,15 +223,6 @@ void PhononWidget::slotHasVideoChanged(bool hasVideo) emit hasVideoChanged(hasVideo); if (hasVideo) { - if (!m_videoPlayer) { - // Replay the media to apply path changes - m_media->stop(); - m_videoPlayer = new EmbeddedVideoPlayer(this); - m_topLayout->insertWidget(0, m_videoPlayer); - Phonon::createPath(m_media, m_videoPlayer); - m_media->play(); - } - applyVideoSize(); m_videoPlayer->show(); } } @@ -237,3 +233,5 @@ void PhononWidget::applyVideoSize() m_videoPlayer->setSizeHint(m_videoSize); } } + +#include "phononwidget.moc"