]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/information/phononwidget.h
Add click to play/pause feature on previews for audio/video
[dolphin.git] / src / panels / information / phononwidget.h
index 837a66888150234f8ec3c3f08b9a75b5612b2521..90a1d1e5ac6bcf5f030bac505f24b63fa9c868f4 100644 (file)
 #ifndef PHONONWIDGET_H
 #define PHONONWIDGET_H
 
-#include <QUrl>
+#include <Phonon/Global>
+
 #include <QSize>
+#include <QUrl>
 #include <QWidget>
 
-#include <Phonon/Global>
-
 namespace Phonon
 {
     class AudioOutput;
@@ -43,13 +43,24 @@ class PhononWidget : public QWidget
 {
     Q_OBJECT
     public:
-        PhononWidget(QWidget *parent = 0);
 
-        void setUrl(const QUrl &url);
+        enum MediaKind {
+            Video,
+            Audio
+        };
+
+        explicit PhononWidget(QWidget *parent = nullptr);
+
+        void setUrl(const QUrl &url, MediaKind kind);
         QUrl url() const;
+        void clearUrl();
 
         void setVideoSize(const QSize& size);
         QSize videoSize() const;
+        Phonon::State state() const;
+
+        void setAutoPlay(bool autoPlay);
+        bool eventFilter(QObject *object, QEvent *event) override;
 
     signals:
         /**
@@ -62,15 +73,17 @@ class PhononWidget : public QWidget
          */
         void hasVideoChanged(bool hasVideo);
 
+    public slots:
+        void play();
+
     protected:
-        virtual void showEvent(QShowEvent *event) Q_DECL_OVERRIDE;
-        virtual void hideEvent(QHideEvent *event) Q_DECL_OVERRIDE;
+        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 +100,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