[vlc-commits] qt/playlist_controller: Add the 'insert' function
Benjamin Arnaud
git at videolan.org
Mon Mar 15 10:34:51 UTC 2021
vlc | branch: master | Benjamin Arnaud <benjamin.arnaud at videolabs.io> | Thu Mar 11 10:16:49 2021 +0100| [cd305426edd043c758e18ea261656a6edc74c6c2] | committer: Pierre Lamot
qt/playlist_controller: Add the 'insert' function
Signed-off-by: Pierre Lamot <pierre at videolabs.io>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=cd305426edd043c758e18ea261656a6edc74c6c2
---
modules/gui/qt/playlist/playlist_controller.cpp | 19 +++++++++++++++++++
modules/gui/qt/playlist/playlist_controller.hpp | 2 ++
2 files changed, 21 insertions(+)
diff --git a/modules/gui/qt/playlist/playlist_controller.cpp b/modules/gui/qt/playlist/playlist_controller.cpp
index 671d98df2e..1d4f3da36c 100644
--- a/modules/gui/qt/playlist/playlist_controller.cpp
+++ b/modules/gui/qt/playlist/playlist_controller.cpp
@@ -24,6 +24,7 @@
#include "playlist_controller_p.hpp"
#include "vlc_player.h"
#include "vlc_url.h"
+#include "util/qmlinputitem.hpp"
#include <algorithm>
#include <QVariant>
#include <QDesktopServices>
@@ -441,6 +442,24 @@ PlaylistControllerModel::remove(const QVector<PlaylistItem> &items, ssize_t inde
throw std::bad_alloc();
}
+void
+PlaylistControllerModel::insert(int index, const QVariantList & items)
+{
+ QVector<vlc::playlist::Media> medias;
+
+ for (const QVariant & variant : items)
+ {
+ if (variant.canConvert<QmlInputItem>() == false)
+ continue;
+
+ const QmlInputItem & item = variant.value<QmlInputItem>();
+
+ medias.push_back(vlc::playlist::Media(item.item.get()));
+ }
+
+ insert(index, medias, false);
+}
+
void
PlaylistControllerModel::shuffle()
{
diff --git a/modules/gui/qt/playlist/playlist_controller.hpp b/modules/gui/qt/playlist/playlist_controller.hpp
index 27e37c1082..5f069bd600 100644
--- a/modules/gui/qt/playlist/playlist_controller.hpp
+++ b/modules/gui/qt/playlist/playlist_controller.hpp
@@ -112,6 +112,8 @@ public:
void move(const QVector<PlaylistItem> &, size_t target, ssize_t indexHint);
void remove(const QVector<PlaylistItem> &, ssize_t indexHint);
+ Q_INVOKABLE void insert(int index, const QVariantList & items /* QList<QmlInputItem> */);
+
Q_INVOKABLE void shuffle();
void sort(const QVector<vlc_playlist_sort_criterion> &);
More information about the vlc-commits
mailing list