summaryrefslogtreecommitdiffstats
path: root/newpicsdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'newpicsdialog.cpp')
-rw-r--r--newpicsdialog.cpp47
1 files changed, 16 insertions, 31 deletions
diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp
index 31e14c4..5f4009b 100644
--- a/newpicsdialog.cpp
+++ b/newpicsdialog.cpp
@@ -24,14 +24,7 @@ NewPicsDialog::NewPicsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(paren
}
void NewPicsDialog::setupDlg(){
- //setup database
mDb = QSqlDatabase::database("treedb");
- mAddFileQ = new QSqlQuery(mDb);
- mAddFileQ->prepare("INSERT INTO pics (tfilename, cmd5sum, isize, tformat) VALUES(:fn, :md5, :size, :format)");
- mAddMappingQ = new QSqlQuery(mDb);
- mAddMappingQ->prepare("INSERT INTO pics_mappings(ipics_id, imappings_parents_id) VALUES(:picid, :mapid)");
-
- //files widget
mFilesWidget = new QWidget;
mFilesV = new SmTreeView;
mFilesProxy = new QSortFilterProxyModel(this);
@@ -134,36 +127,28 @@ void NewPicsDialog::accept(){
if(files.isEmpty()){
return QDialog::accept();
}
- QList<QVariant> parentIds = mMappingEditWidget->model()->columnValues(MappingTreeResultModel::MappingId);
- mDb.transaction();
+ QList<QVariant> mappingParentsIds = mMappingEditWidget->model()->columnValues(MappingTreeResultModel::MappingId);
+ QSqlQuery addFileQ(mDb);
+ addFileQ.prepare("INSERT INTO pics (tfilename, cmd5sum, isize, tformat) VALUES(:fn, :md5, :size, :format)");
+ QSqlQuery addMappingQ(mDb);
+ addMappingQ.prepare("INSERT INTO pics_mappings(ipics_id, imappings_parents_id) VALUES((SELECT ipicsid FROM pics where cmd5sum = :md5), :mapid)");
foreach(FileData d, files){
- mAddFileQ->bindValue(":fn", d.fileName);
- mAddFileQ->bindValue(":md5", d.md5sum);
- mAddFileQ->bindValue(":size", d.size);
- mAddFileQ->bindValue(":format", d.mimeType);
- if(mAddFileQ->exec()){
- QSqlQuery curPicIdQ("SELECT currval('pics_ipicsid__seq')", mDb);
- QVariant picId;
- while(curPicIdQ.next()){
- picId = curPicIdQ.value(0);
- }
- if(!picId.isValid()){
- mDb.rollback();
- return;
- }
- foreach(QVariant myId, parentIds){
- mAddMappingQ->bindValue(":picid", picId);
- mAddMappingQ->bindValue(":mapid", myId);
- if(!mAddMappingQ->exec()){
- mDb.rollback();
+ addFileQ.bindValue(":fn", d.fileName);
+ addFileQ.bindValue(":md5", d.md5sum);
+ addFileQ.bindValue(":size", d.size);
+ addFileQ.bindValue(":format", d.mimeType);
+ if(addFileQ.exec()){
+ foreach(QVariant mpid, mappingParentsIds){
+ addMappingQ.bindValue(":mapid", mpid);
+ addMappingQ.bindValue(":md5", d.md5sum);
+ if(!addMappingQ.exec()){
return;
}
}
+ Helper::moveToArchive(d.fullPath, d.md5sum);
+ mFilesModel->clear();
}
- Helper::moveToArchive(d.fullPath, d.md5sum);
}
- mDb.commit();
- mFilesModel->clear();
return QDialog::accept();
}