summaryrefslogtreecommitdiffstats
path: root/newpicsdialog.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-02-25 16:52:48 +0100
committerArno <am@disconnect.de>2012-02-25 16:52:48 +0100
commit67ddb23a59cb56bd917db2d9c3c7bc62c96e53b4 (patch)
tree50282f53691db30c8fd2999c299d24ef859b11f3 /newpicsdialog.cpp
parentdce686c895fce27cce1d8bf0247c692bd790f93a (diff)
downloadSheMov-67ddb23a59cb56bd917db2d9c3c7bc62c96e53b4.tar.gz
SheMov-67ddb23a59cb56bd917db2d9c3c7bc62c96e53b4.tar.bz2
SheMov-67ddb23a59cb56bd917db2d9c3c7bc62c96e53b4.zip
Implemented mapping widget for NewPicsDialog
Make it possible to add mappings to new pictures. This actually was a tough one. Maybe I shouldn't drink and code. Next: make NewPicsDialog actually do something.
Diffstat (limited to 'newpicsdialog.cpp')
-rw-r--r--newpicsdialog.cpp47
1 files changed, 46 insertions, 1 deletions
diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp
index 673865b..4395399 100644
--- a/newpicsdialog.cpp
+++ b/newpicsdialog.cpp
@@ -21,6 +21,8 @@
#include "newpicsdialog.h"
#include "smtreeitem.h"
#include "helper.h"
+#include "mappingtreewidget.h"
+#include "mappingtreemodel.h"
NewPicsDialog::NewPicsDialog(QWidget *parent) : QWidget(parent) {
//files widget
@@ -46,11 +48,34 @@ NewPicsDialog::NewPicsDialog(QWidget *parent) : QWidget(parent) {
filesLayout->addLayout(fileButtonLayout);
mFilesWidget->setLayout(filesLayout);
+ //mapping widget
+ mMappingWidget = new QWidget;
+ mMappingTreeWidget = new MappingTreeWidget;
+ mResultView = new MappingTreeResultView;
+ mResultModel = new MappingTreeResultModel(QStringList() << tr("Name"), this);
+ mResultView->setModel(mResultModel);
+ mResultView->setAlternatingRowColors(true);
+ mAddMapping = new QPushButton(tr(">>"));
+ connect(mAddMapping, SIGNAL(clicked()), this, SLOT(addMapping()));
+ mRemoveMapping = new QPushButton(tr("<<"));
+ connect(mRemoveMapping, SIGNAL(clicked()), this, SLOT(removeMapping()));
+ QVBoxLayout *buttonLayout = new QVBoxLayout;
+ buttonLayout->addStretch();
+ buttonLayout->addWidget(mAddMapping);
+ buttonLayout->addWidget(mRemoveMapping);
+ buttonLayout->addStretch();
+ QHBoxLayout *mappingLayout = new QHBoxLayout;
+ mappingLayout->addWidget(mMappingTreeWidget);
+ mappingLayout->addLayout(buttonLayout);
+ mappingLayout->addWidget(mResultView);
+ mMappingWidget->setLayout(mappingLayout);
+
//put it together
setMinimumWidth(600);
setMinimumHeight(400);
mTab = new QTabWidget;
mTab->addTab(mFilesWidget, tr("Files"));
+ mTab->addTab(mMappingWidget, tr("Mappings"));
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(mTab);
setLayout(mainLayout);
@@ -91,8 +116,28 @@ 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());
+}
+
+MappingTreeResultView::MappingTreeResultView(QWidget *parent) : QTreeView(parent) { }
+
NewPicFilesModel::NewPicFilesModel(const QStringList &header, QObject *parent) : SmTreeModel(header, parent){
- mDb = QSqlDatabase::database("mDb");
+ mDb = QSqlDatabase::database("treedb");
mMd5Query = new QSqlQuery(mDb);
mMd5Query->prepare("SELECT COUNT(*) FROM pics WHERE cmd5sum = :md5");
}