summaryrefslogtreecommitdiffstats
path: root/fswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fswidget.cpp')
-rw-r--r--fswidget.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/fswidget.cpp b/fswidget.cpp
index f11c93d..53df90f 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -71,6 +71,17 @@ void FSWidget::setupWidget(){
QAction *previewA = new QAction(QIcon(":/snapshot.png"), tr("Preview..."), this);
connect(previewA, &QAction::triggered, this, &FSWidget::preview);
toolbar->addAction(previewA);
+ QAction *playSelectedA = new QAction(QIcon(":/spreadingpants.png"), tr("Play selected"), this);
+ connect(playSelectedA, &QAction::triggered, [=] { playSelected(1); });
+ QMenu *repeatMenu = new QMenu;
+ for(int i = 2; i < 6; ++i){
+ QString actionStr = QString(tr("Play %1 times")).arg(QString::number(i));
+ QAction *a = new QAction(actionStr, this);
+ repeatMenu->addAction(a);
+ connect(a, &QAction::triggered, [=] { playSelected(i); });
+ }
+ QAction *playRepeatMA = new QAction(tr("Play repeat"), this);
+ playRepeatMA->setMenu(repeatMenu);
QIcon plusIcon = Helper::icon(QColor(255,85,255), '+');
QIcon minusIcon = Helper::icon(QColor(255,85,255), '-');
@@ -135,7 +146,7 @@ void FSWidget::setupWidget(){
mFileView->setModel(mProxy);
mFileView->sortByColumn(0, Qt::AscendingOrder);
- addActions(QList<QAction*>() << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA << archivePicsA << unpackA << previewA);
+ addActions(QList<QAction*>() << playSelectedA << playRepeatMA << Helper::createSeparator(this) << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA << archivePicsA << unpackA << previewA);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(topWL);
@@ -494,3 +505,20 @@ void FSWidget::preview(){
mViewer->showMaximized();
}
}
+
+void FSWidget::playSelected(int count){
+ QModelIndexList selected = mFileView->selectionModel()->selectedRows();
+ if(selected.isEmpty()){
+ return;
+ }
+ QStringList paths;
+ for(const QModelIndex &idx : selected){
+ paths << idx.data(FullPathRole).toString();
+ }
+ QPair<QString, QStringList> playerData = Helper::programData("movieviewer");
+ QStringList args = playerData.second;
+ for(int i = 0; i < count; ++i){
+ args << paths;
+ }
+ QProcess::startDetached(playerData.first, args);
+}