summaryrefslogtreecommitdiffstats
path: root/shemov.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2015-02-14 17:58:29 +0100
committerArno <am@disconnect.de>2015-02-14 17:58:29 +0100
commitd4708602ac2ec4f23161ae154eb86e3f6a2740fb (patch)
treea365d3516801e18bc7f6c0d21c7a74c7f1732423 /shemov.cpp
parentafdb93e180808af02995053eb973d593a3545d55 (diff)
downloadSheMov-d4708602ac2ec4f23161ae154eb86e3f6a2740fb.tar.gz
SheMov-d4708602ac2ec4f23161ae154eb86e3f6a2740fb.tar.bz2
SheMov-d4708602ac2ec4f23161ae154eb86e3f6a2740fb.zip
Implement gotoArchive
New context menu item for Filesystemwidget: select the seriespart when goto archive is triggered... Selecting the partId from ArchiveModel was deceptibly simple. Doom impending?
Diffstat (limited to 'shemov.cpp')
-rw-r--r--shemov.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/shemov.cpp b/shemov.cpp
index 74352b0..9158106 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -21,6 +21,7 @@
#include "shemov.h"
#include "filesystemwidget.h"
+#include "filesystemfileproxy.h"
#include "fileview.h"
#include "configurationdialog.h"
#include "statisticsdialog.h"
@@ -435,6 +436,8 @@ void SheMov::createActions(){
connect(mCdupA, SIGNAL(triggered()), mFSWidget, SLOT(parentDir()));
mBackDirA = new QAction(QIcon(":/back_dick.png"), tr("Go back"), this);
connect(mBackDirA, SIGNAL(triggered()), mFSWidget, SLOT(goBack()));
+ mGotoArchiveA = new QAction(tr("Goto archive..."), this);
+ connect(mGotoArchiveA, SIGNAL(triggered()), this, SLOT(gotoArchive()));
mMarkFilesA = new QAction(tr("Select files..."), this);
mMarkFilesA->setShortcut(tr("CTRL++"));
mMarkFilesA->setShortcut(QKeySequence(Qt::CTRL + Qt::KeypadModifier + Qt::Key_Plus));
@@ -762,6 +765,7 @@ void SheMov::createMenus(){
mEditFSMenu = new QMenu(tr("&Edit"), this);
mEditFSMenu->addAction(mCdupA);
mEditFSMenu->addAction(mBackDirA);
+ mEditFSMenu->addAction(mGotoArchiveA);
mEditFSMenu->addSeparator();
mEditFSMenu->addAction(mMarkFilesA);
mEditFSMenu->addAction(mUnmarkFilesA);
@@ -870,6 +874,7 @@ void SheMov::createMenus(){
mFSWidget->fileView()->addAction(mCdupA);
mFSWidget->fileView()->addAction(mBackDirA);
+ mFSWidget->fileView()->addAction(mGotoArchiveA);
mFSWidget->fileView()->addAction(createSeparator());
mFSWidget->fileView()->addAction(mMarkFilesA); //Menu text: Select files...
@@ -1140,3 +1145,21 @@ void SheMov::searchResult(int seriesPartId){
c->archiveTree()->setFocus();
c->setSeriesPart(seriesPartId);
}
+
+void SheMov::gotoArchive(){
+ const QModelIndexList idxs = mFSWidget->fileView()->selectionModel()->selectedRows(SmDirModel::Md5sum);
+ if(idxs.isEmpty()){
+ return;
+ }
+ QModelIndex first = idxs.first();
+ if(first.data(SmDirModel::PresentRole).toInt() == SmDirModel::InNone){
+ return;
+ }
+ QString md5Sum = first.data(SmDirModel::Md5sumRole).toString();
+ ArchiveController *c = SmGlobals::instance()->archiveController();
+ int seriesPartId = c->archiveTreeModel()->seriesPartIdFromMd5(md5Sum);
+ if(seriesPartId != -1){
+ c->setSeriesPart(seriesPartId);
+ mTab->setCurrentIndex(Movies);
+ }
+}