diff options
author | Arno <arno@disconnect.de> | 2017-12-26 19:01:42 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-12-26 19:01:42 +0100 |
commit | 9833de356989d06c2fdc9c0d407712e07048be61 (patch) | |
tree | c071985e6d7b57ab0f31e9ef9f9790b6cb14550e /shemov.cpp | |
parent | 20f9863c1d15fa4ea6d9ff5a6991a140c6a735d1 (diff) | |
download | SheMov-9833de356989d06c2fdc9c0d407712e07048be61.tar.gz SheMov-9833de356989d06c2fdc9c0d407712e07048be61.tar.bz2 SheMov-9833de356989d06c2fdc9c0d407712e07048be61.zip |
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.
Diffstat (limited to 'shemov.cpp')
-rw-r--r-- | shemov.cpp | 19 |
1 files changed, 6 insertions, 13 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: |