summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-02-26 09:31:49 +0100
committerArno <am@disconnect.de>2012-02-26 09:31:49 +0100
commitff4a70f50e42152c5c391fd7801b916e64b181a4 (patch)
treef0dd031ac41558df1589c3de8ac69a7abecf7263
parent7b373a2a860d1e779664fffe98db769be34d5591 (diff)
downloadSheMov-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.cpp52
-rw-r--r--mappingtreewidget.h25
-rw-r--r--newpicsdialog.cpp46
-rw-r--r--newpicsdialog.h17
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: