summaryrefslogtreecommitdiffstats
path: root/src/multimedia/playback/qmediaplayer.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-08-13 13:53:51 +0200
committerLiang Qi <liang.qi@qt.io>2016-08-13 13:53:59 +0200
commit820205e604a5f281238c23464638fdff72b969d1 (patch)
treec6f6723449d1b11e8d540752e50e3c2e11613f33 /src/multimedia/playback/qmediaplayer.cpp
parent03d55888942feac26054978ce4e7c6edd4611eda (diff)
parentc30eeb5b7486caa31cdb0f9279de2f78fed89c54 (diff)
Merge remote-tracking branch 'origin/5.6' into 5.7
Diffstat (limited to 'src/multimedia/playback/qmediaplayer.cpp')
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp
index afea8e147..edccd30ef 100644
--- a/src/multimedia/playback/qmediaplayer.cpp
+++ b/src/multimedia/playback/qmediaplayer.cpp
@@ -859,17 +859,19 @@ void QMediaPlayer::play()
}
//if playlist control is available, the service should advance itself
- if (d->rootMedia.playlist() && d->rootMedia.playlist()->currentIndex() == -1 && !d->rootMedia.playlist()->isEmpty()) {
-
+ if (d->rootMedia.playlist() && !d->rootMedia.playlist()->isEmpty()) {
// switch to playing state
if (d->state != QMediaPlayer::PlayingState)
d->_q_stateChanged(QMediaPlayer::PlayingState);
- if (d->playlist != d->rootMedia.playlist())
- d->setPlaylist(d->rootMedia.playlist());
- Q_ASSERT(d->playlist == d->rootMedia.playlist());
- emit currentMediaChanged(d->rootMedia);
- d->playlist->setCurrentIndex(0);
+ if (d->rootMedia.playlist()->currentIndex() == -1) {
+ if (d->playlist != d->rootMedia.playlist())
+ d->setPlaylist(d->rootMedia.playlist());
+ Q_ASSERT(d->playlist == d->rootMedia.playlist());
+
+ emit currentMediaChanged(d->rootMedia);
+ d->playlist->setCurrentIndex(0);
+ }
}
// Reset error conditions