diff options
author | Arno <am@disconnect.de> | 2012-10-20 05:48:38 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-10-20 05:48:38 +0200 |
commit | ad179bc4eb6845b605c9e4d10171735b90e9cc11 (patch) | |
tree | bd40fed9e8aec90e026e5e61652e2777cbc4d725 | |
parent | 613dbbd9cb9efc2d227fc69491b4fb1ed6693f85 (diff) | |
download | SheMov-ad179bc4eb6845b605c9e4d10171735b90e9cc11.tar.gz SheMov-ad179bc4eb6845b605c9e4d10171735b90e9cc11.tar.bz2 SheMov-ad179bc4eb6845b605c9e4d10171735b90e9cc11.zip |
Make header menu generation generic
Preparation for making PicturesWidget's tree headers configurable.
-rw-r--r-- | shemov.cpp | 31 | ||||
-rw-r--r-- | shemov.h | 2 |
2 files changed, 20 insertions, 13 deletions
@@ -310,6 +310,21 @@ QAction *SheMov::createSeparator(){ return tmp; } +QSignalMapper *SheMov::createHeaderMapper(SmTreeModel *model, 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())); + } + return retval; +} + void SheMov::createStatusbar(){ QLabel *selSizeL = new QLabel(tr("Sel. Size")); mSelectedSize = new QLabel(tr("nothing selected yet")); @@ -475,19 +490,9 @@ void SheMov::createActions(){ connect(mShowAllFilesA, SIGNAL(toggled(bool)), mATree, SLOT(showAllFiles(bool))); //Tree view headers - QHash<QString, int> headerData = filesModel->headerData(); - QSignalMapper *headerMapper = new QSignalMapper(this); - mFilesTreeHeadersGroup = new QActionGroup(this); - mFilesTreeHeadersGroup->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()); - mFilesTreeHeadersGroup->addAction(a); - headerMapper->setMapping(a, a); - connect(a, SIGNAL(triggered()), headerMapper, SLOT(map())); - } - connect(headerMapper, SIGNAL(mapped(QObject*)), mATree->filesWidget()->filesTree(), SLOT(toggleHeader(QObject*))); + mFilesTreeHeadersGroup = new QActionGroup(this); + QSignalMapper *fileTreeHeaderMapper = createHeaderMapper(filesModel, mFilesTreeHeadersGroup); + connect(fileTreeHeaderMapper, SIGNAL(mapped(QObject*)), mATree->filesWidget()->filesTree(), SLOT(toggleHeader(QObject*))); //Tree view hover mHoverTreeGroup = new QActionGroup(this); @@ -25,6 +25,7 @@ class NewMovieWizard; class DbAnalyzerDialog; class MappingTreeWidget; class PicturesWidget; +class SmTreeModel; class SheMov : public QMainWindow { Q_OBJECT @@ -63,6 +64,7 @@ class SheMov : public QMainWindow { private: QAction *createSeparator(); + QSignalMapper* createHeaderMapper(SmTreeModel *model, QActionGroup *group); void createStatusbar(); void createActions(); void createMenus(); |