From 170a217b3e2fb1688ae876ca60b1beab0331b123 Mon Sep 17 00:00:00 2001 From: Jim Hodapp Date: Fri, 27 Nov 2015 09:39:28 -0500 Subject: Add moveItem(from, to) to QMediaPlaylist. Change-Id: Ic3c2ab35529ba5056b7f0d172a434e586e6cf03d Reviewed-by: Yoann Lopes --- src/imports/multimedia/qdeclarativeplaylist.cpp | 14 ++++++++++++++ src/imports/multimedia/qdeclarativeplaylist_p.h | 1 + src/multimedia/playback/qmedianetworkplaylistprovider.cpp | 10 ++++++++++ src/multimedia/playback/qmedianetworkplaylistprovider_p.h | 1 + src/multimedia/playback/qmediaplaylist.cpp | 14 ++++++++++++++ src/multimedia/playback/qmediaplaylist.h | 1 + src/multimedia/playback/qmediaplaylistprovider.cpp | 14 ++++++++++++++ src/multimedia/playback/qmediaplaylistprovider_p.h | 1 + 8 files changed, 56 insertions(+) (limited to 'src') diff --git a/src/imports/multimedia/qdeclarativeplaylist.cpp b/src/imports/multimedia/qdeclarativeplaylist.cpp index 3432bf237..75be64b81 100644 --- a/src/imports/multimedia/qdeclarativeplaylist.cpp +++ b/src/imports/multimedia/qdeclarativeplaylist.cpp @@ -478,6 +478,20 @@ bool QDeclarativePlaylist::insertItems(int index, const QList &sources) return m_playlist->insertMedia(index, contents); } +/*! + \qmlmethod bool QtMultimedia::Playlist::moveItem(from, to) + + Moves the item at index position \a from to index position \a to. + + Returns true if the item is moved successfully. + + \since 5.7 +*/ +bool QDeclarativePlaylist::moveItem(int from, int to) +{ + return m_playlist->moveMedia(from, to); +} + /*! \qmlmethod bool QtMultimedia::Playlist::removeItem(index) diff --git a/src/imports/multimedia/qdeclarativeplaylist_p.h b/src/imports/multimedia/qdeclarativeplaylist_p.h index 295cbb100..66674ebb7 100644 --- a/src/imports/multimedia/qdeclarativeplaylist_p.h +++ b/src/imports/multimedia/qdeclarativeplaylist_p.h @@ -155,6 +155,7 @@ public Q_SLOTS: bool addItems(const QList &sources); bool insertItem(int index, const QUrl &source); bool insertItems(int index, const QList &sources); + bool moveItem(int from, int to); bool removeItem(int index); bool removeItems(int start, int end); bool clear(); diff --git a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp index 88c253494..d7630640c 100644 --- a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp +++ b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp @@ -198,6 +198,16 @@ bool QMediaNetworkPlaylistProvider::insertMedia(int pos, const QList &items); virtual bool insertMedia(int pos, const QMediaContent &content); virtual bool insertMedia(int pos, const QList &items); + virtual bool moveMedia(int from, int to); virtual bool removeMedia(int pos); virtual bool removeMedia(int start, int end); virtual bool clear(); diff --git a/src/multimedia/playback/qmediaplaylist.cpp b/src/multimedia/playback/qmediaplaylist.cpp index 06813592e..5f65a1884 100644 --- a/src/multimedia/playback/qmediaplaylist.cpp +++ b/src/multimedia/playback/qmediaplaylist.cpp @@ -376,6 +376,20 @@ bool QMediaPlaylist::insertMedia(int pos, const QList &items) return playlist->insertMedia(qBound(0, pos, playlist->mediaCount()), items); } +/*! + Move the item from position \a from to position \a to. + + Returns true if the operation is successful, otherwise false. + + \since 5.7 +*/ +bool QMediaPlaylist::moveMedia(int from, int to) +{ + QMediaPlaylistProvider *playlist = d_func()->playlist(); + return playlist->moveMedia(qBound(0, from, playlist->mediaCount()), + qBound(0, to, playlist->mediaCount())); +} + /*! Remove the item from the playlist at position \a pos. diff --git a/src/multimedia/playback/qmediaplaylist.h b/src/multimedia/playback/qmediaplaylist.h index 1388ac10f..e076877b7 100644 --- a/src/multimedia/playback/qmediaplaylist.h +++ b/src/multimedia/playback/qmediaplaylist.h @@ -85,6 +85,7 @@ public: bool addMedia(const QList &items); bool insertMedia(int index, const QMediaContent &content); bool insertMedia(int index, const QList &items); + bool moveMedia(int from, int to); bool removeMedia(int pos); bool removeMedia(int start, int end); bool clear(); diff --git a/src/multimedia/playback/qmediaplaylistprovider.cpp b/src/multimedia/playback/qmediaplaylistprovider.cpp index fc3619ff3..d9c989c85 100644 --- a/src/multimedia/playback/qmediaplaylistprovider.cpp +++ b/src/multimedia/playback/qmediaplaylistprovider.cpp @@ -207,6 +207,20 @@ bool QMediaPlaylistProvider::insertMedia(int position, const QList &contentList); virtual bool insertMedia(int index, const QMediaContent &content); virtual bool insertMedia(int index, const QList &content); + virtual bool moveMedia(int from, int to); virtual bool removeMedia(int pos); virtual bool removeMedia(int start, int end); virtual bool clear(); -- cgit v1.2.3