diff --git a/src/core/identification_sources/identificationdatasource.cpp b/src/core/identification_sources/identificationdatasource.cpp index 188c58c9a5426dae7373318f4c9a4f5cd9ef6ff0..49df2dfb711bcc69af392c6e8d4368dd0336e124 100644 --- a/src/core/identification_sources/identificationdatasource.cpp +++ b/src/core/identification_sources/identificationdatasource.cpp @@ -222,13 +222,15 @@ IdentificationDataSource::getMassSpectrumCstSPtr(unsigned int scan_number) const if(msrun_reader_sp == nullptr) { - if(_ms_run_sp.get()->findMsRunFile() == false) + msrun_reader_sp = _ms_run_sp.get()->findMsRunFile(); + if(msrun_reader_sp == nullptr) { throw pappso::ExceptionNotFound( QObject::tr("mz data \"%1\" file not found") .arg(_ms_run_sp.get()->getFileName())); } } + qDebug(); msrun_reader_sp = _ms_run_sp.get()->getMsRunReaderSPtr(); if(msrun_reader_sp == nullptr) { diff --git a/src/core/msrun.cpp b/src/core/msrun.cpp index c7bb96aca846835bbdafdff35ff6deb0f1ef2d3c..6bb3f262aad6ca86345d6b2dcea4d1165d216e90 100644 --- a/src/core/msrun.cpp +++ b/src/core/msrun.cpp @@ -132,6 +132,10 @@ MsRun::getMsRunReaderSPtr() } } } + else + { + qDebug(); + } return _msrun_reader_sp; } @@ -167,23 +171,29 @@ MsRun::getMsRunStatistics(MsRunStatistics param) const } } -bool +pappso::MsRunReaderSPtr MsRun::findMsRunFile() { // first look at the file path :) - _msrun_reader_sp = getMsRunReaderSPtr(); - if(_msrun_reader_sp != nullptr) + qDebug(); + pappso::MsRunReaderSPtr msrun_reader_sp = getMsRunReaderSPtr(); + if(msrun_reader_sp != nullptr) { QFileInfo real_file(this->getFileName()); if(real_file.exists()) { - return true; + + qDebug(); + freeMsRunReaderSp(); + qDebug(); + return msrun_reader_sp; } else { - _msrun_reader_sp = nullptr; + msrun_reader_sp = nullptr; } } + qDebug(); QFileInfo file_original(this->getFileName()); QString basename = file_original.baseName(); QString onlyfilename = file_original.fileName(); @@ -207,7 +217,7 @@ MsRun::findMsRunFile() this->setFileName(file.absoluteFilePath()); try { - if(_msrun_reader_sp == nullptr) + if(msrun_reader_sp == nullptr) { pappso::MsFileAccessor accessor(getFileName(), ""); @@ -217,14 +227,15 @@ MsRun::findMsRunFile() qDebug() << " runid=" << getRunId() << " xmlid=" << getXmlId(); - _msrun_reader_sp = accessor.getMsRunReaderSPtrByRunId( + msrun_reader_sp = accessor.getMsRunReaderSPtrByRunId( getRunId(), getXmlId()); - return true; + + freeMsRunReaderSp(); + return msrun_reader_sp; } } catch(pappso::PappsoException &error) { - _msrun_reader_sp = nullptr; } } if((file.fileName().contains(onlyfilename)) || @@ -235,7 +246,7 @@ MsRun::findMsRunFile() { this->setFileName(file.absoluteFilePath()); - if(_msrun_reader_sp == nullptr) + if(msrun_reader_sp == nullptr) { pappso::MsFileAccessor accessor(getFileName(), ""); @@ -245,21 +256,24 @@ MsRun::findMsRunFile() pappso::FileReaderType::tims_ms2); qDebug() << " runid=" << getRunId() << " xmlid=" << getXmlId(); - _msrun_reader_sp = accessor.getMsRunReaderSPtrByRunId( + msrun_reader_sp = accessor.getMsRunReaderSPtrByRunId( getRunId(), getXmlId()); - return true; + + freeMsRunReaderSp(); + return msrun_reader_sp; } } catch(pappso::PappsoException &error) { - _msrun_reader_sp = nullptr; + msrun_reader_sp = nullptr; } } } } this->setFileName(file_original.absoluteFilePath()); freeMsRunReaderSp(); - return false; + qDebug(); + return msrun_reader_sp; } void @@ -388,9 +402,12 @@ MsRun::getMsRunXicExtractorInterfaceSp() { return _xic_extractor_sp; } - if(this->findMsRunFile()) + qDebug(); + _msrun_reader_sp = this->findMsRunFile(); + if(_msrun_reader_sp != nullptr) { + qDebug(); pappso::MsRunXicExtractorFactory::getInstance().setTmpDir( QDir::tempPath()); @@ -410,7 +427,10 @@ MsRun::getMsRunXicExtractorInterfaceSp() } //_xic_extractor_sp = pappso::MsRunXicExtractorFactory::getInstance() // .buildMsRunXicExtractorDiskBufferSp(*this); + + qDebug(); } + freeMsRunReaderSp(); return _xic_extractor_sp; } diff --git a/src/core/msrun.h b/src/core/msrun.h index 031c1e28c6dd56e48f03c0cffda2c7b8294bcc57..b42820b4832f0b0701ecf0971d3c163bdb9f2e63 100644 --- a/src/core/msrun.h +++ b/src/core/msrun.h @@ -73,7 +73,9 @@ class MsRun : public pappso::MsRunId virtual const std::map<MsRunStatistics, QVariant> & getMsRunStatisticsMap() const; - bool findMsRunFile(); + /** \brief find the msRun file and return an msrunreader shared pointer on it + */ + pappso::MsRunReaderSPtr findMsRunFile(); pappso::MsRunReaderSPtr &getMsRunReaderSPtr(); @@ -113,3 +115,4 @@ class MsRun : public pappso::MsRunId Q_DECLARE_METATYPE(MsRunSp) + diff --git a/src/gui/workerthread.cpp b/src/gui/workerthread.cpp index 18174637661af34a6838c6f6d60117e9b10dbc77..35c9638f0523d30feedd7f1cb2564daead9a6ac5 100644 --- a/src/gui/workerthread.cpp +++ b/src/gui/workerthread.cpp @@ -909,6 +909,7 @@ WorkerThread::doCheckMsrunFilePath(ProjectSp msp_project) // is_ok = false; break; } + msrun_sp->freeMsRunReaderSp(); i++; } } diff --git a/src/gui/xic_view/xicwindow.cpp b/src/gui/xic_view/xicwindow.cpp index 6db88772235a0c1beb4f5638c5037af5d0c7a7e3..06373f04de793098823cf43517c9c017f371156e 100644 --- a/src/gui/xic_view/xicwindow.cpp +++ b/src/gui/xic_view/xicwindow.cpp @@ -140,10 +140,9 @@ XicWindow::getXicExtractionMethod() const void XicWindow::xicPrecisionChanged(pappso::PrecisionPtr precision [[maybe_unused]]) { - qDebug() << "XicWindow::xicPrecisionChanged begin"; - qDebug() << "XicWindow::xicPrecisionChanged emit"; + qDebug(); emit reExtractXicNeeded(); - qDebug() << "XicWindow::xicPrecisionChanged end"; + qDebug(); } void