summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2017-12-26 19:01:42 +0100
committerArno <arno@disconnect.de>2017-12-26 19:01:42 +0100
commit9833de356989d06c2fdc9c0d407712e07048be61 (patch)
treec071985e6d7b57ab0f31e9ef9f9790b6cb14550e
parent20f9863c1d15fa4ea6d9ff5a6991a140c6a735d1 (diff)
downloadSheMov-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.
-rw-r--r--shemov.cpp19
-rw-r--r--shemov.h3
2 files changed, 8 insertions, 14 deletions
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<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:
diff --git a/shemov.h b/shemov.h
index e8126ac..4f59379 100644
--- a/shemov.h
+++ b/shemov.h
@@ -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();