From 9833de356989d06c2fdc9c0d407712e07048be61 Mon Sep 17 00:00:00 2001 From: Arno Date: Tue, 26 Dec 2017 19:01:42 +0100 Subject: Get rid of the headerMapper QSignalMapper This one was a bit harder, because I made a function return the QSignalMapper, but I could reuse it with a signature change. Just provide the view, too, so we can make the connection inside the function, which now returns void. --- shemov.cpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'shemov.cpp') diff --git a/shemov.cpp b/shemov.cpp index fde5a0f..11882c6 100644 --- a/shemov.cpp +++ b/shemov.cpp @@ -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 headerData = model->headerData(); - QSignalMapper *retval = new QSignalMapper(this); group->setExclusive(false); for(QHash::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(mFSWidget->fileModel()), mFileSysHeaderGroup); - connect(fileSysHeaderMapper, SIGNAL(mapped(QObject*)), mFSWidget->fileView(), SLOT(toggleHeader(QObject*))); + createHeaderMapper(qobject_cast(mFSWidget->fileModel()), mFSWidget->fileView(), mFileSysHeaderGroup); mFSWidget->fileView()->setHeaderGroup(mFileSysHeaderGroup); mPicsTreeHeaderGroup = new QActionGroup(this); SmTreeModel *picFilesModel = static_cast(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(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: -- cgit v1.2.3-70-g09d2