diff options
-rw-r--r-- | shemov.cpp | 19 | ||||
-rw-r--r-- | shemov.h | 3 |
2 files changed, 8 insertions, 14 deletions
@@ -344,19 +344,16 @@ QAction *SheMov::createSeparator(){ return tmp; } -QSignalMapper *SheMov::createHeaderMapper(SmTreeModel *model, QActionGroup *group){ +void SheMov::createHeaderMapper(SmTreeModel *model, SmTreeView *view, QActionGroup *group){ QHash<QString, int> headerData = model->headerData(); - QSignalMapper *retval = new QSignalMapper(this); group->setExclusive(false); for(QHash<QString, int>::const_iterator it = headerData.constBegin(); it != headerData.constEnd(); ++it){ QAction *a = new QAction(it.key(), this); a->setCheckable(true); a->setData(it.value()); group->addAction(a); - retval->setMapping(a, a); - connect(a, SIGNAL(triggered()), retval, SLOT(map())); + connect(a, &QAction::triggered, [=] {view->toggleHeader(a); }); } - return retval; } void SheMov::createStatusbar(){ @@ -488,24 +485,20 @@ void SheMov::createActions(){ //headers mFileSysHeaderGroup = new QActionGroup(this); - QSignalMapper *fileSysHeaderMapper = createHeaderMapper(qobject_cast<SmTreeModel*>(mFSWidget->fileModel()), mFileSysHeaderGroup); - connect(fileSysHeaderMapper, SIGNAL(mapped(QObject*)), mFSWidget->fileView(), SLOT(toggleHeader(QObject*))); + createHeaderMapper(qobject_cast<SmTreeModel*>(mFSWidget->fileModel()), mFSWidget->fileView(), mFileSysHeaderGroup); mFSWidget->fileView()->setHeaderGroup(mFileSysHeaderGroup); mPicsTreeHeaderGroup = new QActionGroup(this); SmTreeModel *picFilesModel = static_cast<SmTreeModel*>(SmGlobals::instance()->model("PicFiles")); - QSignalMapper *picsTreeHeaderMapper = createHeaderMapper(picFilesModel, mPicsTreeHeaderGroup); - connect(picsTreeHeaderMapper, SIGNAL(mapped(QObject*)), mPicWidget->picView(), SLOT(toggleHeader(QObject*))); + createHeaderMapper(picFilesModel, mPicWidget->picView(), mPicsTreeHeaderGroup); mPicWidget->picView()->setHeaderGroup(mPicsTreeHeaderGroup); mArchiveFilesAG = new QActionGroup(this); ArchiveController *controller = SmGlobals::instance()->archiveController(); SmTreeModel *afilesmodel = controller->archiveFilesModel(); - QSignalMapper *aFilesMapper = createHeaderMapper(afilesmodel, mArchiveFilesAG); - connect(aFilesMapper, SIGNAL(mapped(QObject*)), controller->archiveFiles(), SLOT(toggleHeader(QObject*))); + createHeaderMapper(afilesmodel, controller->archiveFiles(), mArchiveFilesAG); controller->archiveFiles()->setHeaderGroup(mArchiveFilesAG); SmTreeModel *abrowsermodel = static_cast<SmTreeModel*>(SmGlobals::instance()->model("BrowserModel")); mArchiveBrowserAG = new QActionGroup(this); - QSignalMapper *archiveBrowserHeaderMapper = createHeaderMapper(abrowsermodel, mArchiveBrowserAG); - connect(archiveBrowserHeaderMapper, SIGNAL(mapped(QObject*)), mArchiveBrowser->archiveTree(), SLOT(toggleHeader(QObject*))); + createHeaderMapper(abrowsermodel, mArchiveBrowser->archiveTree(), mArchiveBrowserAG); mArchiveBrowser->archiveTree()->setHeaderGroup(mArchiveBrowserAG); /* very unfortunate naming of variables: @@ -19,6 +19,7 @@ class QActionGroup; class NewMovieWizard; class PicturesWidget; class SmTreeModel; +class SmTreeView; class NewPicsDialog; class ArchiveView; class ArchiveBrowser; @@ -65,7 +66,7 @@ class SheMov : public QMainWindow { private: QAction *createSeparator(); - QSignalMapper* createHeaderMapper(SmTreeModel *model, QActionGroup *group); + void createHeaderMapper(SmTreeModel *model, SmTreeView *view, QActionGroup *group); void createStatusbar(); void createActions(); void createMenus(); |