mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-17 15:31:20 +00:00
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:
parent
290411cf1c
commit
9996b1f89c
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue