diff options
author | Arno <am@disconnect.de> | 2012-02-26 09:31:49 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-02-26 09:31:49 +0100 |
commit | ff4a70f50e42152c5c391fd7801b916e64b181a4 (patch) | |
tree | f0dd031ac41558df1589c3de8ac69a7abecf7263 | |
parent | 7b373a2a860d1e779664fffe98db769be34d5591 (diff) | |
download | SheMov-ff4a70f50e42152c5c391fd7801b916e64b181a4.tar.gz SheMov-ff4a70f50e42152c5c391fd7801b916e64b181a4.tar.bz2 SheMov-ff4a70f50e42152c5c391fd7801b916e64b181a4.zip |
Move some code from NewPicsDialog around
Put mapping editor into a seperate class to make it easier using it for
changing mappings later.
-rw-r--r-- | mappingtreewidget.cpp | 52 | ||||
-rw-r--r-- | mappingtreewidget.h | 25 | ||||
-rw-r--r-- | newpicsdialog.cpp | 46 | ||||
-rw-r--r-- | newpicsdialog.h | 17 |
4 files changed, 82 insertions, 58 deletions
diff --git a/mappingtreewidget.cpp b/mappingtreewidget.cpp index d9ea7da..6108ebe 100644 --- a/mappingtreewidget.cpp +++ b/mappingtreewidget.cpp @@ -232,3 +232,55 @@ void MappingTreeView::contextMenuEvent(QContextMenuEvent *e){ ctxMenu.addActions(actions()); ctxMenu.exec(e->globalPos()); } + +MappingTreeResultView::MappingTreeResultView(QWidget *parent) : QTreeView(parent) {} + +MappingEditWidget::MappingEditWidget(QWidget *parent) : QWidget(parent){ + //the views + mMappingTree = new MappingTreeWidget; + mMappingResult = new MappingTreeResultView; + mResultModel = new MappingTreeResultModel(QStringList() << tr("Name") << tr("Id"), this); + mMappingResult->setModel(mResultModel); + mMappingResult->setAlternatingRowColors(true); + mMappingResult->setColumnHidden(1, true); + + //buttons + mAddMapping = new QPushButton(tr(">>")); + connect(mAddMapping, SIGNAL(clicked()), this, SLOT(addMapping())); + mRemoveMapping = new QPushButton(tr("<<")); + connect(mRemoveMapping, SIGNAL(clicked()), this, SLOT(removeMapping())); + + //layout + QHBoxLayout *mainLayout = new QHBoxLayout; + mainLayout->addWidget(mMappingTree); + QVBoxLayout *buttonLayout = new QVBoxLayout; + buttonLayout->addStretch(); + buttonLayout->addWidget(mAddMapping); + buttonLayout->addWidget(mRemoveMapping); + buttonLayout->addStretch(); + mainLayout->addLayout(buttonLayout); + mainLayout->addWidget(mMappingResult); + setLayout(mainLayout); +} + +QList<int> MappingEditWidget::mappingIds() const { + return mResultModel->mappingsIds(); +} + +void MappingEditWidget::addMapping(){ + MappingData selected = mMappingTree->selectedItem(); + if(selected.id == -1){ + return; + } + mResultModel->addItem(selected); + mMappingResult->expandAll(); +} + +void MappingEditWidget::removeMapping(){ + QModelIndexList sel = mMappingResult->selectionModel()->selectedRows(); + if(sel.isEmpty()){ + return; + } + QModelIndex firstIdx = sel.first(); + mResultModel->removeRows(firstIdx.row(), 1, firstIdx.parent()); +} diff --git a/mappingtreewidget.h b/mappingtreewidget.h index 734d943..7050743 100644 --- a/mappingtreewidget.h +++ b/mappingtreewidget.h @@ -18,6 +18,7 @@ class QPushButton; class QSortFilterProxyModel; class QStringListModel; class QAction; +class MappingTreeResultModel; struct MappingData; @@ -69,4 +70,28 @@ class MappingTreeView : public QTreeView { virtual void contextMenuEvent(QContextMenuEvent *e); }; +class MappingTreeResultView : public QTreeView { + Q_OBJECT + public: + explicit MappingTreeResultView(QWidget *parent = 0); +}; + +class MappingEditWidget : public QWidget { + Q_OBJECT + public: + explicit MappingEditWidget(QWidget *parent = 0); + QList<int> mappingIds() const; + + public slots: + void addMapping(); + void removeMapping(); + + private: + MappingTreeWidget *mMappingTree; + MappingTreeResultView *mMappingResult; + MappingTreeResultModel *mResultModel; + QPushButton *mAddMapping; + QPushButton *mRemoveMapping; +}; + #endif // MAPPINGTREEWIDGET_H diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp index cc85a1b..6bb83df 100644 --- a/newpicsdialog.cpp +++ b/newpicsdialog.cpp @@ -57,27 +57,7 @@ NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(paren mFilesWidget->setLayout(filesLayout); //mapping widget - mMappingWidget = new QWidget; - mMappingTreeWidget = new MappingTreeWidget; - mResultView = new MappingTreeResultView; - mResultModel = new MappingTreeResultModel(QStringList() << tr("Name") << tr("Id"), this); - mResultView->setModel(mResultModel); - mResultView->setAlternatingRowColors(true); - mResultView->setColumnHidden(1, true); - mAddMapping = new QPushButton(tr(">>")); - connect(mAddMapping, SIGNAL(clicked()), this, SLOT(addMapping())); - mRemoveMapping = new QPushButton(tr("<<")); - connect(mRemoveMapping, SIGNAL(clicked()), this, SLOT(removeMapping())); - QVBoxLayout *mappingButtonLayout = new QVBoxLayout; - mappingButtonLayout->addStretch(); - mappingButtonLayout->addWidget(mAddMapping); - mappingButtonLayout->addWidget(mRemoveMapping); - mappingButtonLayout->addStretch(); - QHBoxLayout *mappingLayout = new QHBoxLayout; - mappingLayout->addWidget(mMappingTreeWidget); - mappingLayout->addLayout(mappingButtonLayout); - mappingLayout->addWidget(mResultView); - mMappingWidget->setLayout(mappingLayout); + mMappingEditWidget = new MappingEditWidget; //dialog buttons mOk = new QPushButton(tr("Ok")); @@ -94,7 +74,7 @@ NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(paren setMinimumHeight(400); mTab = new QTabWidget; mTab->addTab(mFilesWidget, tr("Files")); - mTab->addTab(mMappingWidget, tr("Mappings")); + mTab->addTab(mMappingEditWidget, tr("Mappings")); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(mTab); mainLayout->addLayout(dlgButtonLayout); @@ -136,30 +116,12 @@ void NewPicsDialog::removeFiles(){ } } -void NewPicsDialog::addMapping(){ - MappingData selected = mMappingTreeWidget->selectedItem(); - if(selected.id == -1){ - return; - } - mResultModel->addItem(selected); - mResultView->expandAll(); -} - -void NewPicsDialog::removeMapping(){ - QModelIndexList sel = mResultView->selectionModel()->selectedRows(); - if(sel.isEmpty()){ - return; - } - QModelIndex firstIdx = sel.first(); - mResultModel->removeRows(firstIdx.row(), 1, firstIdx.parent()); -} - void NewPicsDialog::accept(){ QList<FileData> files = mFilesModel->validFiles(); if(files.isEmpty()){ return QDialog::accept(); } - QList<int> mappingIds = mResultModel->mappingsIds(); + QList<int> mappingIds = mMappingEditWidget->mappingIds(); mDb.transaction(); foreach(FileData d, files){ mAddFileQ->bindValue(":fn", d.fileName); @@ -191,8 +153,6 @@ void NewPicsDialog::accept(){ return QDialog::accept(); } -MappingTreeResultView::MappingTreeResultView(QWidget *parent) : QTreeView(parent) { } - NewPicFilesModel::NewPicFilesModel(const QStringList &header, QObject *parent) : SmTreeModel(header, parent){ mDb = QSqlDatabase::database("treedb"); mMd5Query = new QSqlQuery(mDb); diff --git a/newpicsdialog.h b/newpicsdialog.h index ea9a0bc..4401650 100644 --- a/newpicsdialog.h +++ b/newpicsdialog.h @@ -22,8 +22,7 @@ class NewPicFilesModel; class QSortFilterProxyModel; class QPushButton; class MappingTreeWidget; -class MappingTreeResultView; -class MappingTreeResultModel; +class MappingEditWidget; struct FileData; @@ -35,24 +34,18 @@ class NewPicsDialog : public QDialog { public slots: void addFiles(); void removeFiles(); - void addMapping(); - void removeMapping(); void accept(); private: QTabWidget *mTab; QWidget *mFilesWidget; - QWidget *mMappingWidget; + MappingEditWidget *mMappingEditWidget; QTreeView *mFilesV; NewPicFilesModel *mFilesModel; QSortFilterProxyModel *mFilesProxy; QPushButton *mAddFiles; QPushButton *mRemoveFiles; MappingTreeWidget *mMappingTreeWidget; - QPushButton *mAddMapping; - QPushButton *mRemoveMapping; - MappingTreeResultView *mResultView; - MappingTreeResultModel *mResultModel; QPushButton *mOk; QPushButton *mCancel; QSqlDatabase mDb; @@ -60,12 +53,6 @@ class NewPicsDialog : public QDialog { QSqlQuery *mAddMappingQ; }; -class MappingTreeResultView : public QTreeView { - Q_OBJECT - public: - explicit MappingTreeResultView(QWidget *parent = 0); -}; - class NewPicFilesModel : public SmTreeModel { Q_OBJECT public: |