summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-10-20 05:48:38 +0200
committerArno <am@disconnect.de>2012-10-20 05:48:38 +0200
commitad179bc4eb6845b605c9e4d10171735b90e9cc11 (patch)
treebd40fed9e8aec90e026e5e61652e2777cbc4d725
parent613dbbd9cb9efc2d227fc69491b4fb1ed6693f85 (diff)
downloadSheMov-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.cpp31
-rw-r--r--shemov.h2
2 files changed, 20 insertions, 13 deletions
diff --git a/shemov.cpp b/shemov.cpp
index e282de9..7a380d5 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -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);
diff --git a/shemov.h b/shemov.h
index dab1c84..3063eae 100644
--- a/shemov.h
+++ b/shemov.h
@@ -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();