diff options
-rw-r--r-- | moviewidget.cpp | 19 | ||||
-rw-r--r-- | moviewidget.h | 1 |
2 files changed, 20 insertions, 0 deletions
diff --git a/moviewidget.cpp b/moviewidget.cpp index 27489e7..b689809 100644 --- a/moviewidget.cpp +++ b/moviewidget.cpp @@ -93,6 +93,10 @@ void MovieWidget::setupWidget(){ mBottomProxy->setSourceModel(mBottomModel); mBottomView->setModel(mBottomProxy); connect(mBottomView, &SmView::doubleClicked, this, &MovieWidget::bottomDoubleClicked); + QAction *playSelectedA = new QAction(QIcon(":/spreadingpants.png"), tr("Play selected"), this); + connect(playSelectedA, &QAction::triggered, this, &MovieWidget::playSelected); + + mBottomView->addActions(QList<QAction*>() << playSelectedA); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(topWL); @@ -390,3 +394,18 @@ void MovieWidget::bottomDoubleClicked(const QModelIndex &idx){ QProcess::startDetached(playerData.first, args); } } + +void MovieWidget::playSelected(){ + QModelIndexList selected = mBottomView->selectionModel()->selectedRows(); + if(selected.isEmpty()){ + return; + } + QStringList files; + for(QModelIndex &idx : selected){ + files << idx.data(FullPathRole).toString(); + } + QPair<QString, QStringList> playerData = Helper::programData("movieviewer"); + QStringList args = playerData.second; + args << files; + QProcess::startDetached(playerData.first, args); +} diff --git a/moviewidget.h b/moviewidget.h index 8c8fc84..956830d 100644 --- a/moviewidget.h +++ b/moviewidget.h @@ -28,6 +28,7 @@ class MovieWidget : public QWidget { void populateByGenres(); void topSelectionChanged(); void bottomDoubleClicked(const QModelIndex &idx); + void playSelected(); private: void setupWidget(); |