From b9b8c8ee2ee6a58b3745f0567700dd8f967f094c Mon Sep 17 00:00:00 2001 From: Eugene Melamud Date: Tue, 6 Feb 2018 11:29:36 -0800 Subject: [PATCH] when saving project in maven scans table is preserved --- src/maven/database.cpp | 2 +- src/maven/projectDB.cpp | 29 ++++++++++++++++++++++------- src/maven/projectDB.h | 1 + src/maven/projectdockwidget.cpp | 5 ----- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/maven/database.cpp b/src/maven/database.cpp index fa93b498..6dd194ee 100644 --- a/src/maven/database.cpp +++ b/src/maven/database.cpp @@ -162,7 +162,7 @@ void Database::loadCompoundsSQL(QString databaseName) { } sort(compoundsDB.begin(),compoundsDB.end(), Compound::compMass); - qDebug() << "loadCompoundSQL : " << compoundsDB.size(); + qDebug() << "loadCompoundSQL : " << databaseName << compoundsDB.size(); if(loadcount > 0 and databaseName != "ALL") loadedDatabase[databaseName] = 1; } diff --git a/src/maven/projectDB.cpp b/src/maven/projectDB.cpp index 8ca3fc48..1d046b0b 100644 --- a/src/maven/projectDB.cpp +++ b/src/maven/projectDB.cpp @@ -11,10 +11,9 @@ void ProjectDB::saveGroups(vector& allgroups, QString setName) { void ProjectDB::deleteAll() { QSqlQuery query(sqlDB); - query.exec("drop table peakgroups"); query.exec("drop table samples"); + query.exec("drop table peakgroups"); query.exec("drop table peaks"); - query.exec("drop table scans"); query.exec("drop table rt_update_key"); } @@ -24,6 +23,18 @@ void ProjectDB::deleteGroups() { query.exec("drop table peaks"); } + +void ProjectDB::deleteSearchResults(QString searchTable) { + QSqlQuery query(sqlDB); + query.prepare("delete from peaks where groupId in (select groupId from peakgroups where searchTableName = ?"); + query.addBindValue(searchTable); + query.exec(); + + query.prepare("delete from peakgroups where searchTableName = ?"); + query.addBindValue(searchTable); + query.exec(); +} + void ProjectDB::assignSampleIds() { int maxSampleId = -1; for(mzSample* s: samples) if (s->getSampleId()>maxSampleId) maxSampleId=s->getSampleId(); @@ -59,7 +70,9 @@ void ProjectDB::saveScans(vector &sampleSet) { QSqlQuery query0(sqlDB); query0.exec("begin transaction"); - if(!query0.exec("CREATE TABLE IF NOT EXISTS scans(\ + query0.exec("drop table scans"); + + if(!query0.exec("CREATE TABLE IF NOT EXISTS scans(\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ sampleId int NOT NULL,\ scan int NOT NULL,\ @@ -532,7 +545,7 @@ void ProjectDB::loadGroupPeaks(PeakGroup* parent) { QSqlQuery query(sqlDB); query.prepare("select P.*, S.name as sampleName from peaks P, samples S where P.sampleId = S.sampleId and P.groupId = ?"); query.bindValue(0,parent->groupId); - qDebug() << "loadin peaks for group " << parent->groupId; + //qDebug() << "loadin peaks for group " << parent->groupId; query.exec(); while (query.next()) { @@ -641,13 +654,15 @@ void ProjectDB::loadSamples() { foreach(mzSample* loadedFile, samples) { if (loadedFile->sampleName == sname.toStdString()) checkLoaded=true; if (QString(loadedFile->fileName.c_str()) == fname) checkLoaded=true; - } - if(checkLoaded == true) continue; // skip files that have been loaded already + } + + if(checkLoaded == true) continue; // skip files that have been loaded already + mzSample* s = new mzSample(); s->loadSample(fname.toLatin1()); s->fileName = fname.toStdString(); - s->sampleId = sampleId; + s->setSampleId(sampleId); s->setSampleOrder(sampleOrder); s->isSelected = isSelected; s->color[0] = color_red; diff --git a/src/maven/projectDB.h b/src/maven/projectDB.h index 9213157c..fd56f2f3 100644 --- a/src/maven/projectDB.h +++ b/src/maven/projectDB.h @@ -30,6 +30,7 @@ class ProjectDB { void loadGroupPeaks(PeakGroup* group); void deleteAll(); void deleteGroups(); + void deleteSearchResults(QString searchTable); void deletePeakGroup(PeakGroup* g, QString tableName); void assignSampleIds(); void saveAlignment(); diff --git a/src/maven/projectdockwidget.cpp b/src/maven/projectdockwidget.cpp index 86a824c2..87f4bda5 100644 --- a/src/maven/projectdockwidget.cpp +++ b/src/maven/projectdockwidget.cpp @@ -508,8 +508,6 @@ void ProjectDockWidget::loadProjectSQLITE(QString fileName) { QString filepath = query.value("filename").toString(); QString sname = query.value("name").toString(); - qDebug() << "loadProjectSQLITE: " << sname << filepath; - //skip files that have been loaded already bool checkLoaded=false; foreach(mzSample* loadedFile, _mainwindow->getSamples()) { @@ -519,8 +517,6 @@ void ProjectDockWidget::loadProjectSQLITE(QString fileName) { if(checkLoaded == true) continue; // skip files that have been loaded already - qDebug() << "Looking for sample: " << sname ; - //locate file QString locatedpath = locateSample(filepath, pathlist); QFileInfo sampleFile(locatedpath); @@ -624,7 +620,6 @@ void ProjectDockWidget::loadAllPeakTables() { for(int i=0; i < currentProject->allgroups.size(); i++ ) { PeakGroup* g = &(currentProject->allgroups[i]); currentProject->allgroups[i].groupStatistics(); - qDebug() << "Loading peakgroup" << i; //put them in right place if(g->searchTableName.empty()) g->searchTableName="Bookmarks";