From e6c1b97d67f6b6c6d4ad935db14241b041b3fca4 Mon Sep 17 00:00:00 2001 From: Méven Car Date: Sun, 14 Apr 2019 16:54:54 +0200 Subject: Allow dolphin to auto-play previewed media file, click on preview to play/pause videos or audio Summary: It is based on D19844. I did my best to avoid glitches hence the amount of code touched. Retry after @pekkah D7539 Moved the setting to the information panel context menu, no more timer Settings screenshot : {F6700220} This would mach the same feature in the open/save dialog (although not equivalent) {F6696456} FEATURE: 378613 FIXED-IN: 19.08.0 GUI: New information panel context menu option Test Plan: Without auto play - in dolphin with the information panel opened, and the auto media play feature is disabled (right on the information panel) - hover over media files - the behavior is the same as before the patch With auto play - in dolphin with the information panel opened, and the auto media play feature is enabled - hover over media files - media is played automatically - hover over another media file, the new media is previewed Use audio or video file as media. Reviewers: #dolphin, elvisangelaccio, ngraham Reviewed By: #dolphin, elvisangelaccio, ngraham Subscribers: ngraham, broulik, kfm-devel, pekkah Tags: #dolphin Differential Revision: https://phabricator.kde.org/D19782 --- src/panels/information/phononwidget.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/panels/information/phononwidget.h') diff --git a/src/panels/information/phononwidget.h b/src/panels/information/phononwidget.h index 971e8c731..b9e7d4f05 100644 --- a/src/panels/information/phononwidget.h +++ b/src/panels/information/phononwidget.h @@ -43,14 +43,22 @@ class PhononWidget : public QWidget { Q_OBJECT public: + + enum MediaKind { + Video, + Audio + }; + explicit PhononWidget(QWidget *parent = nullptr); - void setUrl(const QUrl &url); + void setUrl(const QUrl &url, MediaKind kind); QUrl url() const; void setVideoSize(const QSize& size); QSize videoSize() const; + void setAutoPlay(bool autoPlay); + signals: /** * Is emitted whenever the video-state @@ -62,15 +70,17 @@ class PhononWidget : public QWidget */ void hasVideoChanged(bool hasVideo); + public slots: + void play(); + protected: void showEvent(QShowEvent *event) override; void hideEvent(QHideEvent *event) override; private slots: - void stateChanged(Phonon::State); - void play(); + void stateChanged(Phonon::State newstate); void stop(); - void slotHasVideoChanged(bool); + void finished(); private: void applyVideoSize(); @@ -87,6 +97,8 @@ class PhononWidget : public QWidget Phonon::SeekSlider *m_seekSlider; Phonon::AudioOutput *m_audioOutput; EmbeddedVideoPlayer *m_videoPlayer; + bool m_autoPlay; + bool m_isVideo; }; #endif // PHONONWIDGET_H -- cgit v1.3