summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-11-11 06:27:40 +0100
committerArno <arno@disconnect.de>2016-11-11 06:27:40 +0100
commitd44cada7cd8eee4a0967da2649a8332bdb12346f (patch)
tree1c6aca450199f3d902c70c677594fe32b60dcf58
parentbed21d975fd36338d9d84be1306dd4720ef8c632 (diff)
downloadSheMov-d44cada7cd8eee4a0967da2649a8332bdb12346f.tar.gz
SheMov-d44cada7cd8eee4a0967da2649a8332bdb12346f.tar.bz2
SheMov-d44cada7cd8eee4a0967da2649a8332bdb12346f.zip
Actually play movies!
Finally do something with the random selection! Implement playAll and playSelected.
-rw-r--r--randomtab.cpp28
-rw-r--r--randomtab.h2
2 files changed, 29 insertions, 1 deletions
diff --git a/randomtab.cpp b/randomtab.cpp
index 5f0245f..835a750 100644
--- a/randomtab.cpp
+++ b/randomtab.cpp
@@ -26,6 +26,7 @@
#include <QStringList>
#include <QSettings>
#include <QDirIterator>
+#include <QProcess>
#include <algorithm>
#include <random>
@@ -392,11 +393,36 @@ void RandomTab::select(){
}
void RandomTab::playAll(){
-
+ logMessage(tr("Playing All"));
+ QStringList files;
+ QStandardItem *root = mFileModel->invisibleRootItem();
+ for(int i = 0; i < root->rowCount(); ++i){
+ QStandardItem *c = root->child(i, FullPath);
+ logMessage(QString(tr("Adding %1")).arg(c->text()));
+ files << c->text();
+ }
+ play(files);
}
void RandomTab::playSelected(){
+ logMessage(tr("Playing Selected"));
+ QStringList files;
+ QModelIndexList idxs = mFileView->selectionModel()->selectedRows(FullPath);
+ foreach(QModelIndex i, idxs){
+ QString fp = i.data().toString();
+ logMessage(QString(tr("Adding %1")).arg(fp));
+ files << fp;
+ }
+ play(files);
+}
+void RandomTab::play(const QStringList &files){
+ QPair<QString, QStringList> pgdata = Helper::programData("movieviewer");
+ QString program = pgdata.first;
+ QStringList args = pgdata.second;
+ args.append(files);
+ logMessage(QString(tr("Cmd: %1 %2")).arg(program).arg(args.join(" ")));
+ QProcess::startDetached(program, args);
}
void RandomTab::logMessage(const QString &msg){
diff --git a/randomtab.h b/randomtab.h
index a66ee10..3f400e8 100644
--- a/randomtab.h
+++ b/randomtab.h
@@ -24,6 +24,7 @@ class RandomTab : public QWidget {
Q_OBJECT
public:
enum CustomRoles { IdRole = Qt::UserRole + 1, SizeRole = Qt::UserRole + 2, DurationRole = Qt::UserRole + 3, DvdNoRole = Qt::UserRole + 4 };
+ enum Columns { FileName = 0, Size = 1, Duration = 2, Md5 = 3, Location = 4, FullPath = 5 };
enum { ColumnCount = 6 };
explicit RandomTab(QWidget *parent = 0);
virtual ~RandomTab();
@@ -35,6 +36,7 @@ class RandomTab : public QWidget {
void select();
void playAll();
void playSelected();
+ void play(const QStringList &files);
void logMessage(const QString &msg);
private: