diff options
author | am <am@f440f766-f032-0410-8965-dc7d17de2ca0> | 2009-10-24 15:25:10 +0000 |
---|---|---|
committer | am <am@f440f766-f032-0410-8965-dc7d17de2ca0> | 2009-10-24 15:25:10 +0000 |
commit | c9497f0e16ad13493f59b835016d46d919378f6d (patch) | |
tree | b89c9108a756ec9571b361dc929370b3aa5d90aa | |
parent | 3eab0ef961ff64e11ebfac655a4606e1b84b1083 (diff) | |
download | SheMov-c9497f0e16ad13493f59b835016d46d919378f6d.tar.gz SheMov-c9497f0e16ad13493f59b835016d46d919378f6d.tar.bz2 SheMov-c9497f0e16ad13493f59b835016d46d919378f6d.zip |
-implemented play selected files
git-svn-id: file:///var/svn/repos2/shemov/trunk@420 f440f766-f032-0410-8965-dc7d17de2ca0
-rw-r--r-- | filesystemwidget.cpp | 27 | ||||
-rw-r--r-- | filesystemwidget.h | 2 | ||||
-rw-r--r-- | shemov.cpp | 5 | ||||
-rw-r--r-- | shemov.h | 1 |
4 files changed, 35 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()){ diff --git a/filesystemwidget.h b/filesystemwidget.h index c41f878..0191065 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -53,6 +53,7 @@ class FilesystemWidget : public QWidget { void extract(const QString &destDir); void archiveFiles(); void refreshDir(const QString &dir); + void playSelected(); private slots: void doRenameFile(); @@ -62,6 +63,7 @@ class FilesystemWidget : public QWidget { void deleteRecursive(const QFileInfo &start); void copyRecursive(const QFileInfo &start, const QString &destdir); void expandParents(const QModelIndex &idx); + QStringList selectedFiles(); QAction *action(QWidget *widget, const QVariant &data) const; QDirModel *mModel; QTreeView *mDirView; @@ -251,6 +251,9 @@ void SheMov::createStatusbar(){ void SheMov::createActions(){ //File menu + mPlaySelectedA = new QAction(tr("Play selected movies..."), this); + connect(mPlaySelectedA, SIGNAL(triggered()), mFSWidget, SLOT(playSelected())); + mFSWidget->fileView()->addAction(mPlaySelectedA); mQuitA = new QAction(tr("Quit"), this); mQuitA->setShortcut(tr("CTRL+q")); @@ -370,6 +373,8 @@ void SheMov::createActions(){ void SheMov::createMenus(){ QMenu *fileMenu = new QMenu(tr("&File"), this); + fileMenu->addAction(mPlaySelectedA); + fileMenu->addSeparator(); fileMenu->addAction(mQuitA); mEditFSMenu = new QMenu(tr("&Edit"), this); mEditFSMenu->addAction(mCdupA); @@ -82,6 +82,7 @@ class SheMov : public QMainWindow { QAction *mAboutShemovA; QAction *mAboutQtA; QAction *mStatisticsA; + QAction *mPlaySelectedA; QList<QAction*> mExtractToA; //EndActions |