diff options
Diffstat (limited to 'src/multimedia/playback/qmediaplayer.cpp')
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 396508aa9..c1636e8e8 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -468,6 +468,7 @@ void QMediaPlayerPrivate::disconnectPlaylist() QObject::disconnect(playlist, SIGNAL(currentMediaChanged(QMediaContent)), q, SLOT(_q_updateMedia(QMediaContent))); QObject::disconnect(playlist, SIGNAL(destroyed()), q, SLOT(_q_playlistDestroyed())); + q->unbind(playlist); } } @@ -475,6 +476,7 @@ void QMediaPlayerPrivate::connectPlaylist() { Q_Q(QMediaPlayer); if (playlist) { + q->bind(playlist); QObject::connect(playlist, SIGNAL(currentMediaChanged(QMediaContent)), q, SLOT(_q_updateMedia(QMediaContent))); QObject::connect(playlist, SIGNAL(destroyed()), q, SLOT(_q_playlistDestroyed())); @@ -622,6 +624,8 @@ QMediaPlayer::~QMediaPlayer() { Q_D(QMediaPlayer); + d->disconnectPlaylist(); + if (d->service) { if (d->control) d->service->releaseControl(d->control); |