diff options
Diffstat (limited to 'shemov.cpp')
-rw-r--r-- | shemov.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -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); + } +} |