]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/information/phononwidget.h
Fixed regression when refactoring the Information Panel: Don't forget to give a visua...
[dolphin.git] / src / panels / information / phononwidget.h
index 00c6574bf61ec372288a2c2e7b156089c0edadb7..196b87f879c6274c1d2f8f2002462f8998839343 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <kurl.h>
 
+#include <QtCore/QSize>
 #include <QtGui/QWidget>
 
 #include <Phonon/Global>
@@ -31,16 +32,41 @@ namespace Phonon
 {
     class MediaObject;
     class SeekSlider;
+    class VideoPlayer;
 } // namespace Phonon
 
+class EmbeddedVideoPlayer;
 class QToolButton;
+class QVBoxLayout;
 
 class PhononWidget : public QWidget
 {
     Q_OBJECT
     public:
+        enum Mode
+        {
+            Audio,
+            Video
+        };
+
         PhononWidget(QWidget *parent = 0);
+
         void setUrl(const KUrl &url);
+        KUrl url() const;
+
+        void setMode(Mode mode);
+        Mode mode() const;
+
+        void setVideoSize(const QSize& size);
+        QSize videoSize() const;
+
+    signals:
+        void playingStarted();
+        void playingStopped();
+
+    protected:
+        virtual void showEvent(QShowEvent *event);
+        virtual void hideEvent(QHideEvent *event);
 
     private slots:
         void stateChanged(Phonon::State);
@@ -48,14 +74,21 @@ class PhononWidget : public QWidget
         void stop();
 
     private:
-        void requestMedia();
+        void applyVideoSize();
 
     private:
+        Mode m_mode;
         KUrl m_url;
+        QSize m_videoSize;
+
         QToolButton *m_playButton;
         QToolButton *m_stopButton;
+
+        QVBoxLayout *m_topLayout;
+        Phonon::MediaObject *m_audioMedia;
         Phonon::MediaObject *m_media;
         Phonon::SeekSlider *m_seekSlider;
+        EmbeddedVideoPlayer *m_videoPlayer;
 };
 
 #endif // PHONONWIDGET_H