summaryrefslogtreecommitdiffstats
path: root/filesystemwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r--filesystemwidget.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index a944c13..e18528c 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -396,6 +396,19 @@ void FilesystemWidget::refreshDir(const QString &dir){
mModel->refresh(idx);
}
+void FilesystemWidget::playSelected(){
+ QStringList files = selectedFiles();
+ if(files.isEmpty()){
+ statusbarMessage(tr("Nothing selected."));
+ return;
+ }
+ QSettings s;
+ QString program = s.value("paths/movieviewer").toString();
+ QStringList programArgs = s.value("paths/movieviewerargs").toStringList();
+ programArgs << files;
+ QProcess::startDetached(program, programArgs);
+}
+
void FilesystemWidget::setWindowTitle(const QString &dir){
mWindowTitle = QString("%1 - %2").arg(qApp->applicationName()).arg(dir);
emit windowTitle(mWindowTitle);
@@ -466,6 +479,20 @@ void FilesystemWidget::expandParents(const QModelIndex &idx){
}
}
+QStringList FilesystemWidget::selectedFiles(){
+ QStringList retval;
+ QModelIndexList selected = fileView()->selectionModel()->selectedRows();
+ if(selected.isEmpty()){
+ return QStringList();
+ }
+ QSortFilterProxyModel *proxy = static_cast<QSortFilterProxyModel*>(fileView()->model());
+ foreach(QModelIndex idx, selected){
+ QModelIndex src = proxy->mapToSource(idx);
+ retval << mModel->filePath(src);
+ }
+ return retval;
+}
+
QAction * FilesystemWidget::action(QWidget *widget, const QVariant &data) const{
QAction *retval = 0;
foreach(QAction *a, widget->actions()){