┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/information/phononwidget.cpp
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2019-08-27 13:04:56 +0200
committerMéven Car <[email protected]>2019-09-01 16:47:22 +0200
commiteaec53a7af4e098acd957a274f059920d569e0be (patch)
tree4c83b5562baf5a9db36b1bbf3f89d63c9f2b2830 /src/panels/information/phononwidget.cpp
parentdb717a21c512fafdf90828d71ddeb0f993413872 (diff)
Add click to play/pause feature on previews for audio/video
Test Plan: In dolphin, click on a video or audio preview in the information panel. The video or audio preview starts Reviewers: elvisangelaccio, #dolphin, ngraham Reviewed By: elvisangelaccio, #dolphin, ngraham Subscribers: alexde, anthonyfieroni, ngraham, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D22183
Diffstat (limited to 'src/panels/information/phononwidget.cpp')
-rw-r--r--src/panels/information/phononwidget.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/panels/information/phononwidget.cpp b/src/panels/information/phononwidget.cpp
index 4ea2e6666..e301df270 100644
--- a/src/panels/information/phononwidget.cpp
+++ b/src/panels/information/phononwidget.cpp
@@ -95,6 +95,29 @@ QUrl PhononWidget::url() const
return m_url;
}
+void PhononWidget::clearUrl()
+{
+ m_url.clear();
+}
+
+bool PhononWidget::eventFilter(QObject *object, QEvent *event)
+{
+ Q_UNUSED(object)
+ if (event->type() == QEvent::MouseButtonPress) {
+ const QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
+ if (mouseEvent->button() == Qt::LeftButton) {
+ // toggle playback
+ if (m_media && m_media->state() == Phonon::State::PlayingState) {
+ m_media->pause();
+ } else {
+ play();
+ }
+ return true;
+ }
+ }
+ return false;
+}
+
void PhononWidget::setVideoSize(const QSize& size)
{
if (m_videoSize != size) {
@@ -172,8 +195,8 @@ void PhononWidget::stateChanged(Phonon::State newstate)
switch (newstate) {
case Phonon::PlayingState:
case Phonon::BufferingState:
- m_stopButton->show();
m_playButton->hide();
+ m_stopButton->show();
break;
default:
m_stopButton->hide();
@@ -196,6 +219,7 @@ void PhononWidget::play()
if (!m_videoPlayer) {
m_videoPlayer = new EmbeddedVideoPlayer(this);
+ m_videoPlayer->setCursor(Qt::PointingHandCursor);
m_videoPlayer->installEventFilter(this);
m_topLayout->insertWidget(0, m_videoPlayer);
Phonon::createPath(m_media, m_videoPlayer);
@@ -227,6 +251,11 @@ void PhononWidget::finished()
}
}
+Phonon::State PhononWidget::state() const
+{
+ return m_media == nullptr ? Phonon::State::StoppedState : m_media->state();
+}
+
void PhononWidget::stop()
{
if (m_media) {