summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2014-02-07 14:21:17 +0100
committerArno <am@disconnect.de>2014-02-07 14:21:17 +0100
commit31f2960e3b50f08c9d4cad552f7c6e636b99a39f (patch)
tree86b86930499fd119d82d4ee392d72ccd422c0f33
parentfc403bc4fda509bc1c3e3893b0b5c865cba97316 (diff)
downloadSheMov-31f2960e3b50f08c9d4cad552f7c6e636b99a39f.tar.gz
SheMov-31f2960e3b50f08c9d4cad552f7c6e636b99a39f.tar.bz2
SheMov-31f2960e3b50f08c9d4cad552f7c6e636b99a39f.zip
Play movies from browser
-rw-r--r--archivebrowser.cpp24
-rw-r--r--archivebrowser.h1
-rw-r--r--shemov.cpp6
-rw-r--r--shemov.h1
4 files changed, 32 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();
diff --git a/archivebrowser.h b/archivebrowser.h
index ae606c3..41f624c 100644
--- a/archivebrowser.h
+++ b/archivebrowser.h
@@ -33,6 +33,7 @@ class ArchiveBrowser : public QWidget {
void writeSettings();
void moveToBurn();
void refresh();
+ void playCurrent();
private slots:
void setupQualityFilter();
diff --git a/shemov.cpp b/shemov.cpp
index a67f230..81a18c9 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -658,6 +658,8 @@ void SheMov::createActions(){
connect(mArchiveBrowserMoveToBurnA, SIGNAL(triggered()), mArchiveBrowser, SLOT(moveToBurn()));
mArchiveBrowserRefreshA = new QAction(QIcon(":/refresh.png"), tr("Refresh"), this);
connect(mArchiveBrowserRefreshA, SIGNAL(triggered()), mArchiveBrowser, SLOT(refresh()));
+ mArchiveBrowserPlaySelectedA = new QAction(QIcon(":/dildo.png"), tr("Play selected..."), this);
+ connect(mArchiveBrowserPlaySelectedA, SIGNAL(triggered()), mArchiveBrowser, SLOT(playCurrent()));
// db analyzer dialogs
// analyze actors
@@ -771,6 +773,8 @@ void SheMov::createMenus(){
mArchiveBrowserViewMenu->addMenu(abHeaderMenu);
mArchiveBrowserViewMenuA = menuBar()->addMenu(mArchiveBrowserViewMenu);
mArchiveBrowserViewMenu->addSeparator();
+ mArchiveBrowserViewMenu->addAction(mArchiveBrowserPlaySelectedA);
+ mArchiveBrowserViewMenu->addSeparator();
mArchiveBrowserViewMenu->addAction(mArchiveBrowserMoveToBurnA);
mArchiveBrowserViewMenu->addAction(mArchiveBrowserRefreshA);
@@ -862,6 +866,8 @@ void SheMov::createMenus(){
archiveFilesM->addActions(c->archiveFiles()->actions());
// ArchiveBrowser context menu
+ mArchiveBrowser->archiveTree()->addAction(mArchiveBrowserPlaySelectedA);
+ mArchiveBrowser->archiveTree()->addAction(createSeparator());
mArchiveBrowser->archiveTree()->addAction(mArchiveBrowserMoveToBurnA);
mArchiveBrowser->archiveTree()->addAction(mArchiveBrowserRefreshA);
diff --git a/shemov.h b/shemov.h
index 0b820bc..dc71c47 100644
--- a/shemov.h
+++ b/shemov.h
@@ -153,6 +153,7 @@ class SheMov : public QMainWindow {
QAction *mArchiveBrowserViewMenuA;
QAction *mArchiveBrowserMoveToBurnA;
QAction *mArchiveBrowserRefreshA;
+ QAction *mArchiveBrowserPlaySelectedA;
QActionGroup *mArchiveBrowserAG;
//ArchiveFiles actions