diff options
Diffstat (limited to 'shemov.cpp')
-rw-r--r-- | shemov.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
@@ -71,6 +71,7 @@ void SheMov::setTemplate(const QString &newTemplate){ void SheMov::configure(){ ConfigurationDialog dlg(this); dlg.exec(); + createExtractMenu(); } void SheMov::createStatusbar(){ @@ -162,6 +163,7 @@ void SheMov::createActions(){ //Edit menu extract submenu mExtractMapper = new QSignalMapper(this); + connect(mExtractMapper, SIGNAL(mapped(const QString &)), mFSWidget, SLOT(extract(const QString &))); mExtractMenu = new QMenu(tr("E&xtract to..."), this); createExtractMenu(); } @@ -188,6 +190,8 @@ void SheMov::createMenus(){ renameMenu->addAction(mRenameCoverCA); editMenu->addMenu(renameMenu); editMenu->addSeparator(); + editMenu->addMenu(mExtractMenu); + editMenu->addSeparator(); editMenu->addAction(mRefreshA); editMenu->addSeparator(); editMenu->addAction(mConfigA); @@ -197,5 +201,22 @@ void SheMov::createMenus(){ } void SheMov::createExtractMenu(){ - + foreach(QAction *a, mExtractToA){ + mFSWidget->fileView()->removeAction(a); + delete a; + } + mExtractToA.clear(); + mExtractMenu->clear(); + QSettings s; + QStringList locations = s.value("paths/extractpaths").toStringList(); + foreach(QString p, locations){ + QAction *a = new QAction(p, this); + a->setData("ExtractMenu"); + mFSWidget->fileView()->addAction(a); + mExtractMenu->addAction(a); + mExtractMapper->setMapping(a, p); + connect(a, SIGNAL(triggered()), mExtractMapper, SLOT(map())); + mExtractToA << a; + } } + |