Replace the stop button of the media preview by a pause button

Summary:
Stop is not as useful as paused plus it makes the button coherent with the click to play/pause feature.

CCBUG: 364957

Test Plan: {F7305382}

Reviewers: #dolphin, elvisangelaccio, ngraham

Reviewed By: #dolphin, ngraham

Subscribers: ngraham, kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D23648
This commit is contained in:
Méven Car 2019-09-02 07:00:13 +02:00
parent 290411cf1c
commit 9996b1f89c
2 changed files with 24 additions and 17 deletions

View file

@ -60,7 +60,7 @@ PhononWidget::PhononWidget(QWidget *parent)
: QWidget(parent), : QWidget(parent),
m_url(), m_url(),
m_playButton(nullptr), m_playButton(nullptr),
m_stopButton(nullptr), m_pauseButton(nullptr),
m_topLayout(nullptr), m_topLayout(nullptr),
m_media(nullptr), m_media(nullptr),
m_seekSlider(nullptr), m_seekSlider(nullptr),
@ -100,6 +100,15 @@ void PhononWidget::clearUrl()
m_url.clear(); m_url.clear();
} }
void PhononWidget::togglePlayback()
{
if (m_media && m_media->state() == Phonon::State::PlayingState) {
m_media->pause();
} else {
play();
}
}
bool PhononWidget::eventFilter(QObject *object, QEvent *event) bool PhononWidget::eventFilter(QObject *object, QEvent *event)
{ {
Q_UNUSED(object) Q_UNUSED(object)
@ -107,11 +116,7 @@ bool PhononWidget::eventFilter(QObject *object, QEvent *event)
const QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event); const QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
if (mouseEvent->button() == Qt::LeftButton) { if (mouseEvent->button() == Qt::LeftButton) {
// toggle playback // toggle playback
if (m_media && m_media->state() == Phonon::State::PlayingState) { togglePlayback();
m_media->pause();
} else {
play();
}
return true; return true;
} }
} }
@ -147,11 +152,11 @@ void PhononWidget::showEvent(QShowEvent *event)
controlsLayout->setSpacing(0); controlsLayout->setSpacing(0);
m_playButton = new QToolButton(this); m_playButton = new QToolButton(this);
m_stopButton = new QToolButton(this); m_pauseButton = new QToolButton(this);
m_seekSlider = new Phonon::SeekSlider(this); m_seekSlider = new Phonon::SeekSlider(this);
controlsLayout->addWidget(m_playButton); controlsLayout->addWidget(m_playButton);
controlsLayout->addWidget(m_stopButton); controlsLayout->addWidget(m_pauseButton);
controlsLayout->addWidget(m_seekSlider); controlsLayout->addWidget(m_seekSlider);
m_topLayout->addLayout(controlsLayout); m_topLayout->addLayout(controlsLayout);
@ -165,12 +170,12 @@ void PhononWidget::showEvent(QShowEvent *event)
m_playButton->setAutoRaise(true); m_playButton->setAutoRaise(true);
connect(m_playButton, &QToolButton::clicked, this, &PhononWidget::play); connect(m_playButton, &QToolButton::clicked, this, &PhononWidget::play);
m_stopButton->setToolTip(i18n("stop")); m_pauseButton->setToolTip(i18n("pause"));
m_stopButton->setIconSize(buttonSize); m_pauseButton->setIconSize(buttonSize);
m_stopButton->setIcon(QIcon::fromTheme(QStringLiteral("media-playback-stop"))); m_pauseButton->setIcon(QIcon::fromTheme(QStringLiteral("media-playback-pause")));
m_stopButton->setAutoRaise(true); m_pauseButton->setAutoRaise(true);
m_stopButton->hide(); m_pauseButton->hide();
connect(m_stopButton, &QToolButton::clicked, this, &PhononWidget::stop); connect(m_pauseButton, &QToolButton::clicked, this, &PhononWidget::togglePlayback);
m_seekSlider->setIconVisible(false); m_seekSlider->setIconVisible(false);
@ -196,10 +201,10 @@ void PhononWidget::stateChanged(Phonon::State newstate)
case Phonon::PlayingState: case Phonon::PlayingState:
case Phonon::BufferingState: case Phonon::BufferingState:
m_playButton->hide(); m_playButton->hide();
m_stopButton->show(); m_pauseButton->show();
break; break;
default: default:
m_stopButton->hide(); m_pauseButton->hide();
m_playButton->show(); m_playButton->show();
break; break;
} }

View file

@ -89,11 +89,13 @@ class PhononWidget : public QWidget
void applyVideoSize(); void applyVideoSize();
private: private:
void togglePlayback();
QUrl m_url; QUrl m_url;
QSize m_videoSize; QSize m_videoSize;
QToolButton *m_playButton; QToolButton *m_playButton;
QToolButton *m_stopButton; QToolButton *m_pauseButton;
QVBoxLayout *m_topLayout; QVBoxLayout *m_topLayout;
Phonon::MediaObject *m_media; Phonon::MediaObject *m_media;