aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/library/librarymodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/General/library/librarymodel.cpp')
-rw-r--r--src/plugins/General/library/librarymodel.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/plugins/General/library/librarymodel.cpp b/src/plugins/General/library/librarymodel.cpp
index fef15669f..d02e9ba27 100644
--- a/src/plugins/General/library/librarymodel.cpp
+++ b/src/plugins/General/library/librarymodel.cpp
@@ -26,8 +26,11 @@
#include <QHash>
#include <QJsonDocument>
#include <QJsonObject>
+#include <QWidget>
#include <qmmp/qmmp.h>
#include <qmmpui/playlistparser.h>
+#include <qmmpui/playlistmanager.h>
+#include <qmmpui/detailsdialog.h>
#include "librarymodel.h"
#define CONNECTION_NAME "qmmp_library_view"
@@ -303,6 +306,39 @@ void LibraryModel::refresh()
endResetModel();
}
+void LibraryModel::add(const QModelIndexList &indexes)
+{
+ QList<PlayListTrack *> tracks;
+
+ for(const QModelIndex &index : indexes)
+ {
+ if(index.isValid())
+ {
+ tracks << getTracks(index);
+ }
+ }
+
+ PlayListManager::instance()->add(tracks);
+}
+
+void LibraryModel::showInformation(const QModelIndexList &indexes, QWidget *parent)
+{
+ QList<PlayListTrack *> tracks;
+
+ for(const QModelIndex &index : indexes)
+ {
+ if(index.isValid())
+ {
+ tracks << getTracks(index);
+ }
+ }
+
+ DetailsDialog *dialog = new DetailsDialog(tracks, parent);
+ dialog->setAttribute(Qt::WA_DeleteOnClose, true);
+ dialog->show();
+ connect(dialog, &QObject::destroyed, [=]() { qDeleteAll(tracks); });
+}
+
QList<PlayListTrack *> LibraryModel::getTracks(const QModelIndex &index) const
{
QSqlDatabase db = QSqlDatabase::database(CONNECTION_NAME);