summaryrefslogtreecommitdiffstats
path: root/archivetreeview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivetreeview.cpp')
-rw-r--r--archivetreeview.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp
index d77f8e3..ec58fb4 100644
--- a/archivetreeview.cpp
+++ b/archivetreeview.cpp
@@ -12,6 +12,10 @@
#include <QItemSelectionModel>
#include <QAbstractItemModel>
#include <QItemSelection>
+#include <QFileInfoList>
+#include <QSettings>
+#include <QHash>
+#include <QProcess>
#include "archivetreeview.h"
#include "smmodelsingleton.h"
@@ -22,6 +26,7 @@
#include "seriestreemodel.h"
#include "mappingtablewidget.h"
#include "mappingtablemodel.h"
+#include "helper.h"
ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){
// models
@@ -32,6 +37,7 @@ ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){
mSeriesWidget = new SeriesTreeWidget;
QItemSelectionModel *selModel = mSeriesWidget->seriesTree()->selectionModel();
connect(selModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(currentChanged(QItemSelection,QItemSelection)));
+ connect(mSeriesWidget->seriesTree(), SIGNAL(doubleClicked(QModelIndex)), this, SLOT(playSelected()));
mSeriesModel = static_cast<SeriesTreeModel*>(SmModelSingleton::instance()->model("SeriesModel"));
// files view
@@ -130,3 +136,25 @@ void ArchiveTreeView::setMappingItems(QList<int>seriesPartIds, MappingTableModel
widget->setCurrentId(-1);
}
}
+
+void ArchiveTreeView::playSelected(){
+ QModelIndexList selected = mSeriesWidget->seriesTree()->selectionModel()->selectedRows();
+ if(selected.isEmpty()){
+ return;
+ }
+ QStringList files;
+ foreach(QModelIndex idx, selected){
+ QModelIndex real = mSeriesWidget->mapToSource(idx);
+ QFileInfoList movies = mSeriesModel->findSortedMovies(real);
+ foreach(QFileInfo fi, movies){
+ if(!files.contains(fi.absoluteFilePath())){
+ files << fi.absoluteFilePath();
+ }
+ }
+ }
+ QPair<QString, QStringList> progData = Helper::programData("movieviewer");
+ QString program = progData.first;
+ QStringList args = progData.second;
+ args << files;
+ QProcess::startDetached(program, args);
+}