X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e5edeb7446c0ec60d0962fb5cd0077c374a472ef..6dcbb8127c:/src/panels/information/phononwidget.h diff --git a/src/panels/information/phononwidget.h b/src/panels/information/phononwidget.h index 320ecbe6d..837a66888 100644 --- a/src/panels/information/phononwidget.h +++ b/src/panels/information/phononwidget.h @@ -21,41 +21,72 @@ #ifndef PHONONWIDGET_H #define PHONONWIDGET_H -#include - -#include +#include +#include +#include #include namespace Phonon { + class AudioOutput; class MediaObject; class SeekSlider; + class VideoPlayer; } // namespace Phonon +class EmbeddedVideoPlayer; class QToolButton; +class QVBoxLayout; class PhononWidget : public QWidget { Q_OBJECT public: PhononWidget(QWidget *parent = 0); - void setUrl(const KUrl &url); + + void setUrl(const QUrl &url); + QUrl url() const; + + void setVideoSize(const QSize& size); + QSize videoSize() const; + + signals: + /** + * Is emitted whenever the video-state + * has changed: If true is returned, a video + * including control-buttons will be shown. + * If false is returned, no video is shown + * and the control-buttons are available for + * audio only. + */ + void hasVideoChanged(bool hasVideo); + + protected: + virtual void showEvent(QShowEvent *event) Q_DECL_OVERRIDE; + virtual void hideEvent(QHideEvent *event) Q_DECL_OVERRIDE; private slots: void stateChanged(Phonon::State); void play(); void stop(); + void slotHasVideoChanged(bool); private: - void requestMedia(); + void applyVideoSize(); private: - KUrl m_url; + QUrl m_url; + QSize m_videoSize; + QToolButton *m_playButton; QToolButton *m_stopButton; + + QVBoxLayout *m_topLayout; Phonon::MediaObject *m_media; Phonon::SeekSlider *m_seekSlider; + Phonon::AudioOutput *m_audioOutput; + EmbeddedVideoPlayer *m_videoPlayer; }; -#endif // PHONONWIDGET_H \ No newline at end of file +#endif // PHONONWIDGET_H