summaryrefslogtreecommitdiffstats
path: root/shemov.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shemov.cpp')
-rw-r--r--shemov.cpp101
1 files changed, 67 insertions, 34 deletions
diff --git a/shemov.cpp b/shemov.cpp
index ceacdbb..503a2bc 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -43,7 +43,7 @@
#include "statisticsdialog.h"
#include "filesystemfileproxy.h"
-SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) {
+SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags), mOpenWithGroupFS(0), mOpenWithGroupAV(0) {
qApp->setWindowIcon(QIcon(":/shemov.png"));
QSettings s;
@@ -161,6 +161,8 @@ void SheMov::configure(){
ConfigurationDialog dlg(this);
dlg.exec();
createExtractMenu();
+ createOpenWithMenuFS();
+ createOpenWithMenuAV();
}
void SheMov::tabChanged(int newTab){
@@ -258,8 +260,8 @@ void SheMov::createStatusbar(){
void SheMov::createActions(){
//File menu
- mPlaySelectedA = new QAction(tr("Play selected movies..."), this);
- connect(mPlaySelectedA, SIGNAL(triggered()), mFSWidget, SLOT(playSelected()));
+ mPlaySelectedFSA = new QAction(tr("Play selected movies..."), this);
+ connect(mPlaySelectedFSA, SIGNAL(triggered()), mFSWidget, SLOT(playSelected()));
mQuitA = new QAction(tr("Quit"), this);
mQuitA->setShortcut(tr("CTRL+q"));
@@ -324,6 +326,8 @@ void SheMov::createActions(){
createExtractMenu();
//Edit menu (archive)
+ mPlaySelectedAVA = new QAction(tr("Play selected movies..."), this);
+ connect(mPlaySelectedAVA, SIGNAL(triggered()), mAVWidget, SLOT(playSelected()));
mEditArchiveFileA = new QAction(tr("Edit file..."), this);
mEditArchiveFileA->setShortcut(tr("CTRL+e"));
connect(mEditArchiveFileA, SIGNAL(triggered()), mAVWidget, SLOT(editFile()));
@@ -350,16 +354,17 @@ void SheMov::createActions(){
connect(mStatisticsA, SIGNAL(triggered()), this, SLOT(showStatistics()));
// misc
- mOpenWithGroup = new QActionGroup(this);
- mOpenWithMapper = new QSignalMapper(this);
- connect(mOpenWithMapper, SIGNAL(mapped(QString)), mFSWidget, SLOT(playSelected(QString)));
+ mOpenWithMapperFS = new QSignalMapper(this);
+ mOpenWithMapperAV = new QSignalMapper(this);
+ connect(mOpenWithMapperFS, SIGNAL(mapped(QString)), mFSWidget, SLOT(playSelected(QString)));
+ connect(mOpenWithMapperAV, SIGNAL(mapped(QString)), mAVWidget, SLOT(playSelected(QString)));
connect(mFSWidget->dirModel(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(setFsFree()));
connect(mFSWidget->dirModel(), SIGNAL(layoutChanged()), this, SLOT(setFsFree()));
}
void SheMov::createMenus(){
QMenu *fileMenu = new QMenu(tr("&File"), this);
- fileMenu->addAction(mPlaySelectedA);
+ fileMenu->addAction(mPlaySelectedFSA);
fileMenu->addSeparator();
fileMenu->addAction(mQuitA);
mEditFSMenu = new QMenu(tr("&Edit"), this);
@@ -412,12 +417,12 @@ void SheMov::createMenus(){
menuBar()->addMenu(helpMenu);
// FilesystemWidget context menu
- mOpenWithMenu = new QMenu(tr("Open with"), this);
- mFSWidget->fileView()->addAction(mPlaySelectedA);
- createOpenWithMenu();
- mOpenWithMenuA = new QAction(tr("Open with"), this);
- mOpenWithMenuA->setMenu(mOpenWithMenu);
- mFSWidget->fileView()->addAction(mOpenWithMenuA);
+ mOpenWithMenuFS = new QMenu(tr("Open with"), this);
+ mFSWidget->fileView()->addAction(mPlaySelectedFSA);
+ createOpenWithMenuFS();
+ mOpenWithMenuFSA = new QAction(tr("Open with"), this);
+ mOpenWithMenuFSA->setMenu(mOpenWithMenuFS);
+ mFSWidget->fileView()->addAction(mOpenWithMenuFSA);
QAction *sep1 = new QAction(this);
sep1->setSeparator(true);
mFSWidget->fileView()->addAction(sep1);
@@ -442,48 +447,76 @@ void SheMov::createMenus(){
mFSWidget->fileView()->addAction(mArchiveA);
//ArchiveViewWidget context menu
+ mOpenWithMenuAV = new QMenu(tr("Open with"), this);
+ mAVWidget->fileView()->addAction(mPlaySelectedAVA);
+ createOpenWithMenuAV();
+ mOpenWithMenuAVA = new QAction(tr("Open with"), this);
+ mOpenWithMenuAVA->setMenu(mOpenWithMenuAV);
+ mAVWidget->fileView()->addAction(mOpenWithMenuAVA);
+ QAction *sep5 = new QAction(this);
+ sep5->setSeparator(true);
+ mAVWidget->fileView()->addAction(sep5);
mAVWidget->fileView()->addAction(mEditArchiveFileA);
mAVWidget->fileView()->addAction(mEditArchiveCoverA);
mAVWidget->fileView()->addAction(mAddMovieManuallyA);
mAVWidget->fileView()->addAction(mDeleteFromArchiveA);
mAVWidget->fileView()->addAction(mSetDvdA);
- QAction *sep5 = new QAction(this);
- sep5->setSeparator(true);
- mAVWidget->fileView()->addAction(sep5);
- mAVWidget->fileView()->addAction(mMoveBurnA);
QAction *sep6 = new QAction(this);
sep6->setSeparator(true);
mAVWidget->fileView()->addAction(sep6);
+ mAVWidget->fileView()->addAction(mMoveBurnA);
+ QAction *sep7 = new QAction(this);
+ sep7->setSeparator(true);
+ mAVWidget->fileView()->addAction(sep7);
mAVWidget->fileView()->addAction(mPropertiesA);
}
-void SheMov::createOpenWithMenu(){
- foreach(QAction *a, mOpenWithGroup->actions()){
- mOpenWithMenu->removeAction(a);
- mOpenWithGroup->removeAction(a);
- delete a;
+void SheMov::createOpenWithMenuFS(){
+ if(mOpenWithGroupFS){
+ foreach(QAction *a, mOpenWithGroupFS->actions()){
+ mOpenWithMenuFS->removeAction(a);
+ }
}
+ mOpenWithGroupFS->deleteLater();
+ mOpenWithGroupFS = new QActionGroup(this);
QSettings s;
QStringList moviePlayers = s.value("programs_movieviewer/data").toHash().keys();
moviePlayers.sort();
foreach(QString p, moviePlayers){
- QAction *a = new QAction(p, this);
- mOpenWithGroup->addAction(a);
- mOpenWithMenu->addAction(a);
- mOpenWithMapper->setMapping(a, p);
- connect(a, SIGNAL(triggered()), mOpenWithMapper, SLOT(map()));
+ QAction *a = new QAction(p, mOpenWithGroupFS);
+ mOpenWithMenuFS->addAction(a);
+ mOpenWithMapperFS->setMapping(a, p);
+ connect(a, SIGNAL(triggered()), mOpenWithMapperFS, SLOT(map()));
}
- QAction *sep = new QAction(this);
+ QAction *sep = new QAction(mOpenWithGroupFS);
sep->setSeparator(true);
- mOpenWithMenu->addAction(sep);
+ mOpenWithMenuFS->addAction(sep);
QStringList picViewers = s.value("programs_pictureviewer/data").toHash().keys();
picViewers.sort();
foreach(QString p, picViewers){
- QAction *a = new QAction(p, this);
- mOpenWithGroup->addAction(a);
- mOpenWithMenu->addAction(a);
- mOpenWithMapper->setMapping(a, p);
- connect(a, SIGNAL(triggered()), mOpenWithMapper, SLOT(map()));
+ QAction *a = new QAction(p, mOpenWithGroupFS);
+ mOpenWithMenuFS->addAction(a);
+ mOpenWithMapperFS->setMapping(a, p);
+ connect(a, SIGNAL(triggered()), mOpenWithMapperFS, SLOT(map()));
+ }
+}
+
+void SheMov::createOpenWithMenuAV(){
+ if(mOpenWithGroupAV){
+ foreach(QAction *a, mOpenWithGroupAV->actions()){
+ mOpenWithMenuAV->removeAction(a);
+ }
+ }
+ //this deletes all actions in the group also!
+ mOpenWithGroupAV->deleteLater();
+ mOpenWithGroupAV = new QActionGroup(this);
+ QSettings s;
+ QStringList players = s.value("programs_movieviewer/data").toHash().keys();
+ foreach(QString p, players){
+ QAction *a = new QAction(p, mOpenWithGroupAV);
+ mOpenWithMenuAV->addAction(a);
+ mOpenWithMapperAV->setMapping(a, p);
+ connect(a, SIGNAL(triggered()), mOpenWithMapperAV, SLOT(map()));
}
}