diff options
author | Arno <am@disconnect.de> | 2010-12-06 19:10:19 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-12-06 19:10:19 +0100 |
commit | a87e4d8c3c2102e9728dd5df303acca7ae08b343 (patch) | |
tree | 29b2b7d2c5f532da2ea18152e7cf34ad51b1016f /shemov.cpp | |
parent | cb4d80e6a642ef0cd3180aed2155d86144c83395 (diff) | |
download | SheMov-a87e4d8c3c2102e9728dd5df303acca7ae08b343.tar.gz SheMov-a87e4d8c3c2102e9728dd5df303acca7ae08b343.tar.bz2 SheMov-a87e4d8c3c2102e9728dd5df303acca7ae08b343.zip |
Edit values in archive
This commit introduces QInputDialogs for all values editable in the
archive. Inline editing in the view doesn't seem the right choice
regarding usability.
Fixed a long standing bug in nextDvdNo(). That was off by one. Return
one more than max(value). Also got rid of DvdNoDialog, replaced by a
QInputDialog.
Diffstat (limited to 'shemov.cpp')
-rw-r--r-- | shemov.cpp | 34 |
1 files changed, 24 insertions, 10 deletions
@@ -161,6 +161,7 @@ void SheMov::configure(){ void SheMov::tabChanged(int newTab){ mEditFSMenuA->setVisible(newTab == 0); + mEditAVMenuA->setVisible(newTab == 1); if(newTab == 0){ setWindowTitle(mFSWidget->windowTitle()); mCdupA->setEnabled(true); @@ -353,6 +354,20 @@ void SheMov::createActions(){ mConfigA = new QAction(QIcon(":/chastity_belt.png"), tr("Configure..."), this); connect(mConfigA, SIGNAL(triggered()), this, SLOT(configure())); + //Edit menu (AV) + QSignalMapper *editMapper = new QSignalMapper(this); + FilesTreeModel *filesModel = qobject_cast<FilesTreeModel*>(SmGlobals::instance()->model("FilesModel")); + const QHash<QString, int> editableColumns = filesModel->editableColumns(); + mEditGroup = new QActionGroup(this); + for(QHash<QString, int>::const_iterator it = editableColumns.constBegin(); it != editableColumns.constEnd(); ++it){ + QAction *a = new QAction(it.key(), this); + connect(a, SIGNAL(triggered()), editMapper, SLOT(map())); + a->setData(it.key()); + mEditGroup->addAction(a); + editMapper->setMapping(a, it.value()); + } + connect(editMapper, SIGNAL(mapped(int)), mATree->filesWidget(), SLOT(edit(int))); + //Edit menu rename submenu mTemplateA = new QAction(tr("Set as template"), this); mTemplateA->setShortcut(tr("CTRL+t")); @@ -426,7 +441,6 @@ void SheMov::createActions(){ connect(mShowNoCoverDialogA, SIGNAL(triggered()), mATree, SLOT(showNoCoverDialog())); //Tree view headers - FilesTreeModel *filesModel = static_cast<FilesTreeModel*>(SmGlobals::instance()->model("FilesModel")); QHash<QString, int> headerData = filesModel->headerData(); QSignalMapper *headerMapper = new QSignalMapper(this); mFilesTreeHeadersGroup = new QActionGroup(this); @@ -446,12 +460,6 @@ void SheMov::createActions(){ connect(mMoveToBurnA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(moveToBurn())); mMoveFilesA = new QAction(tr("Move to directory..."), this); connect(mMoveFilesA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(moveToDirectory())); - mSetDvdNoA = new QAction(tr("Set dvd number"), this); - connect(mSetDvdNoA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(setDvdNo())); - mSetQualityA = new QAction(tr("Set quality"), this); - connect(mSetQualityA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(editQuality())); - mSetPartNoA = new QAction(tr("Set Part no"), this); - connect(mSetPartNoA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(editPart())); mDeleteFilesFromTreeA = new QAction(tr("Delete file(s)..."), this); connect(mDeleteFilesFromTreeA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(removeFiles())); mFilePropertiesA = new QAction(tr("Properties..."), this); @@ -546,6 +554,14 @@ void SheMov::createMenus(){ } mTreeViewMenu->addMenu(mTreeHeaderMenu); + //TreeView edit menu + mEditAVMenu = new QMenu(tr("Edit"), this); + foreach(QAction *a, mEditGroup->actions()){ + mEditAVMenu->addAction(a); + } + mEditAVMenuA = menuBar()->addMenu(mEditAVMenu); + + QMenu *helpMenu = new QMenu(tr("&Help"), this); helpMenu->addAction(mAboutShemovA); helpMenu->addAction(mAboutQtA); @@ -618,9 +634,7 @@ void SheMov::createMenus(){ QAction *sep7 = new QAction(this); sep7->setSeparator(true); mATree->filesWidget()->filesTree()->addAction(sep7); - mATree->filesWidget()->filesTree()->addAction(mSetDvdNoA); - mATree->filesWidget()->filesTree()->addAction(mSetQualityA); - mATree->filesWidget()->filesTree()->addAction(mSetPartNoA); + mATree->filesWidget()->filesTree()->addActions(mEditGroup->actions()); QAction *sep8 = new QAction(this); sep8->setSeparator(true); mATree->filesWidget()->filesTree()->addAction(sep8); |