#ifndef PHONONWIDGET_H
#define PHONONWIDGET_H
-#include <kurl.h>
-
-#include <QtGui/QWidget>
+#include <QUrl>
+#include <QSize>
+#include <QWidget>
#include <Phonon/Global>
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);
+ explicit PhononWidget(QWidget *parent = nullptr);
+
+ 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:
+ void showEvent(QShowEvent *event) override;
+ void hideEvent(QHideEvent *event) 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