summaryrefslogtreecommitdiffstats
path: root/src/imports/multimedia/qdeclarativevideo.cpp
diff options
context:
space:
mode:
authorJustin McPherson <justin.mcpherson@nokia.com>2010-03-19 02:56:15 (GMT)
committerJustin McPherson <justin.mcpherson@nokia.com>2010-03-19 05:31:59 (GMT)
commit0d4572595698502e04f491bfea3e16bb1851b645 (patch)
tree3e5545fdf75012a6f899bf4839f4b1556ab9e7e2 /src/imports/multimedia/qdeclarativevideo.cpp
parentabf09f87af8f57f670904ff25a626d19ec11120b (diff)
downloadQt-0d4572595698502e04f491bfea3e16bb1851b645.zip
Qt-0d4572595698502e04f491bfea3e16bb1851b645.tar.gz
Qt-0d4572595698502e04f491bfea3e16bb1851b645.tar.bz2
Fix; QML Video item is sensitive to property assignment order
Task-number: QTBUG-8605 Reviewed-by: Andrew den Exter
Diffstat (limited to 'src/imports/multimedia/qdeclarativevideo.cpp')
-rw-r--r--src/imports/multimedia/qdeclarativevideo.cpp56
1 files changed, 28 insertions, 28 deletions
diff --git a/src/imports/multimedia/qdeclarativevideo.cpp b/src/imports/multimedia/qdeclarativevideo.cpp
index 80c0ba4..67d9aef 100644
--- a/src/imports/multimedia/qdeclarativevideo.cpp
+++ b/src/imports/multimedia/qdeclarativevideo.cpp
@@ -100,17 +100,6 @@ QDeclarativeVideo::QDeclarativeVideo(QDeclarativeItem *parent)
m_graphicsItem = new QGraphicsVideoItem(this);
connect(m_graphicsItem, SIGNAL(nativeSizeChanged(QSizeF)),
this, SLOT(_q_nativeSizeChanged(QSizeF)));
-
- setObject(this);
-
- if (m_mediaService) {
- connect(m_playerControl, SIGNAL(audioAvailableChanged(bool)),
- this, SIGNAL(hasAudioChanged()));
- connect(m_playerControl, SIGNAL(videoAvailableChanged(bool)),
- this, SIGNAL(hasVideoChanged()));
-
- m_graphicsItem->setMediaObject(m_mediaObject);
- }
}
QDeclarativeVideo::~QDeclarativeVideo()
@@ -253,7 +242,7 @@ QDeclarativeVideo::Status QDeclarativeVideo::status() const
bool QDeclarativeVideo::hasAudio() const
{
- return m_playerControl->isAudioAvailable();
+ return m_playerControl == 0 ? false : m_playerControl->isAudioAvailable();
}
/*!
@@ -264,7 +253,7 @@ bool QDeclarativeVideo::hasAudio() const
bool QDeclarativeVideo::hasVideo() const
{
- return m_playerControl->isVideoAvailable();
+ return m_playerControl == 0 ? false : m_playerControl->isVideoAvailable();
}
/*!
@@ -356,12 +345,11 @@ void QDeclarativeVideo::setFillMode(FillMode mode)
void QDeclarativeVideo::play()
{
- m_playerControl->play();
+ if (m_playerControl == 0)
+ return;
- if (m_paused) {
- m_paused = false;
- emit pausedChanged();
- }
+ setPaused(false);
+ setPlaying(true);
}
/*!
@@ -374,12 +362,11 @@ void QDeclarativeVideo::play()
void QDeclarativeVideo::pause()
{
- m_playerControl->pause();
+ if (m_playerControl == 0)
+ return;
- if (!m_paused && m_state == QMediaPlayer::PausedState) {
- m_paused = true;
- emit pausedChanged();
- }
+ setPaused(true);
+ setPlaying(true);
}
/*!
@@ -392,12 +379,11 @@ void QDeclarativeVideo::pause()
void QDeclarativeVideo::stop()
{
- m_playerControl->stop();
+ if (m_playerControl == 0)
+ return;
- if (m_paused) {
- m_paused = false;
- emit pausedChanged();
- }
+ setPlaying(false);
+ setPaused(false);
}
void QDeclarativeVideo::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *)
@@ -411,6 +397,20 @@ void QDeclarativeVideo::geometryChanged(const QRectF &newGeometry, const QRectF
QDeclarativeItem::geometryChanged(newGeometry, oldGeometry);
}
+void QDeclarativeVideo::componentComplete()
+{
+ setObject(this);
+
+ if (m_mediaService) {
+ connect(m_playerControl, SIGNAL(audioAvailableChanged(bool)),
+ this, SIGNAL(hasAudioChanged()));
+ connect(m_playerControl, SIGNAL(videoAvailableChanged(bool)),
+ this, SIGNAL(hasVideoChanged()));
+
+ m_graphicsItem->setMediaObject(m_mediaObject);
+ }
+}
+
QT_END_NAMESPACE
// ***************************************