diff options
Diffstat (limited to 'filesystemwidget.cpp')
-rw-r--r-- | filesystemwidget.cpp | 27 |
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()){ |