diff options
| author | Méven Car <[email protected]> | 2019-04-14 16:54:54 +0200 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2019-06-23 16:38:09 +0200 |
| commit | e6c1b97d67f6b6c6d4ad935db14241b041b3fca4 (patch) | |
| tree | f0325a8b9ce9836b9e2149fcfd90ac23b0f044f5 /src/panels/information/phononwidget.h | |
| parent | cdad6a513e2cbd4376dd03bb4fa63681076eb18b (diff) | |
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
Diffstat (limited to 'src/panels/information/phononwidget.h')
| -rw-r--r-- | src/panels/information/phononwidget.h | 20 |
1 files changed, 16 insertions, 4 deletions
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 |
