summaryrefslogtreecommitdiffstats
path: root/src/multimedia/playback/qmediaplaylist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/playback/qmediaplaylist.cpp')
-rw-r--r--src/multimedia/playback/qmediaplaylist.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/multimedia/playback/qmediaplaylist.cpp b/src/multimedia/playback/qmediaplaylist.cpp
index 3a08b7e56..9b5d9a681 100644
--- a/src/multimedia/playback/qmediaplaylist.cpp
+++ b/src/multimedia/playback/qmediaplaylist.cpp
@@ -358,7 +358,8 @@ bool QMediaPlaylist::addMedia(const QList<QMediaContent> &items)
bool QMediaPlaylist::insertMedia(int pos, const QMediaContent &content)
{
- return d_func()->playlist()->insertMedia(pos, content);
+ QMediaPlaylistProvider *playlist = d_func()->playlist();
+ return playlist->insertMedia(qBound(0, pos, playlist->mediaCount()), content);
}
/*!
@@ -369,7 +370,8 @@ bool QMediaPlaylist::insertMedia(int pos, const QMediaContent &content)
bool QMediaPlaylist::insertMedia(int pos, const QList<QMediaContent> &items)
{
- return d_func()->playlist()->insertMedia(pos, items);
+ QMediaPlaylistProvider *playlist = d_func()->playlist();
+ return playlist->insertMedia(qBound(0, pos, playlist->mediaCount()), items);
}
/*!
@@ -379,8 +381,11 @@ bool QMediaPlaylist::insertMedia(int pos, const QList<QMediaContent> &items)
*/
bool QMediaPlaylist::removeMedia(int pos)
{
- Q_D(QMediaPlaylist);
- return d->playlist()->removeMedia(pos);
+ QMediaPlaylistProvider *playlist = d_func()->playlist();
+ if (pos >= 0 && pos < playlist->mediaCount())
+ return playlist->removeMedia(pos);
+ else
+ return false;
}
/*!
@@ -390,8 +395,13 @@ bool QMediaPlaylist::removeMedia(int pos)
*/
bool QMediaPlaylist::removeMedia(int start, int end)
{
- Q_D(QMediaPlaylist);
- return d->playlist()->removeMedia(start, end);
+ QMediaPlaylistProvider *playlist = d_func()->playlist();
+ start = qMax(0, start);
+ end = qMin(end, playlist->mediaCount() - 1);
+ if (start <= end)
+ return playlist->removeMedia(start, end);
+ else
+ return false;
}
/*!