summaryrefslogtreecommitdiffstats
path: root/archivebrowser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivebrowser.cpp')
-rw-r--r--archivebrowser.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/archivebrowser.cpp b/archivebrowser.cpp
index d0c06be..5c919e2 100644
--- a/archivebrowser.cpp
+++ b/archivebrowser.cpp
@@ -15,12 +15,14 @@
#include <QDir>
#include <QFileInfo>
#include <QSortFilterProxyModel>
+#include <QProcess>
#include "archivebrowser.h"
#include "archivebrowsermodel.h"
#include "smtreeview.h"
#include "smglobals.h"
#include "delegates.h"
+#include "helper.h"
ArchiveBrowser::ArchiveBrowser(QWidget *parent) : QWidget(parent), mSelectedSize(0), mSelectedItems(0){
//prep
@@ -139,6 +141,28 @@ void ArchiveBrowser::refresh() {
mModel->refresh();
}
+void ArchiveBrowser::playCurrent(){
+ QPair<QString, QStringList> pgdata = Helper::programData("movieviewer");
+ QModelIndexList sel = mTree->selectionModel()->selectedRows();
+ QStringList movieFiles;
+ foreach(QModelIndex idx, sel){
+ QModelIndex real = mProxy->mapToSource(idx);
+ QModelIndexList children = mModel->children(real);
+ foreach(QModelIndex ci, children){
+ if(ci.data(ArchiveBrowserModel::FileTypeRole).toInt() == 1){
+ movieFiles << ci.data(ArchiveBrowserModel::FullPathRole).toString();
+ }
+ }
+ }
+ if(movieFiles.isEmpty()){
+ return;
+ }
+ QString prg = pgdata.first;
+ QStringList args = pgdata.second;
+ args.append(movieFiles);
+ QProcess::startDetached(prg, args);
+}
+
void ArchiveBrowser::setupQualityFilter(){
mQualityFilter->clear();
QList<int> qualities = mModel->availableQualities();