diff --git a/src/musrgui/PMsr2DataDialog.cpp b/src/musrgui/PMsr2DataDialog.cpp index 22d8dc77..2281398d 100644 --- a/src/musrgui/PMsr2DataDialog.cpp +++ b/src/musrgui/PMsr2DataDialog.cpp @@ -87,6 +87,7 @@ PMsr2DataDialog::PMsr2DataDialog(PMsr2DataParam *msr2DataParam) : fMsr2DataParam fWriteColumnData_checkBox->setChecked(fMsr2DataParam->writeColumnData); fRecreateDbFile_checkBox->setChecked(fMsr2DataParam->recreateDbFile); fChainFit_checkBox->setChecked(fMsr2DataParam->chainFit); + fOpenAfterFitting_checkBox->setChecked(fMsr2DataParam->openFilesAfterFitting); } //---------------------------------------------------------------------------------------------------- @@ -120,6 +121,7 @@ PMsr2DataParam* PMsr2DataDialog::getMsr2DataParam() fMsr2DataParam->writeColumnData = fWriteColumnData_checkBox->isChecked(); fMsr2DataParam->recreateDbFile = fRecreateDbFile_checkBox->isChecked(); fMsr2DataParam->chainFit = fChainFit_checkBox->isChecked(); + fMsr2DataParam->openFilesAfterFitting = fOpenAfterFitting_checkBox->isChecked(); return fMsr2DataParam; } diff --git a/src/musrgui/PTextEdit.cpp b/src/musrgui/PTextEdit.cpp index e91dc310..a44f067c 100644 --- a/src/musrgui/PTextEdit.cpp +++ b/src/musrgui/PTextEdit.cpp @@ -1373,6 +1373,7 @@ void PTextEdit::musrMsr2Data() fMsr2DataParam->writeColumnData = false; fMsr2DataParam->recreateDbFile = false; fMsr2DataParam->chainFit = true; + fMsr2DataParam->openFilesAfterFitting = false; } PMsr2DataDialog *dlg = new PMsr2DataDialog(fMsr2DataParam); @@ -1535,6 +1536,74 @@ cout << endl; PFitOutputHandler fitOutputHandler(QFileInfo(fFilenames[currentEditor()]).dirPath(), cmd); fitOutputHandler.setModal(true); fitOutputHandler.exec(); + + // check if it is necessary to load msr-files + if (fMsr2DataParam->openFilesAfterFitting) { + QString fln; + QFile *file; + QTextStream *stream; + + switch(dlg->getRunTag()) { + case 0: // first run / last run list + if (fMsr2DataParam->firstRun != -1) { + for (int i=fMsr2DataParam->firstRun; i<=fMsr2DataParam->lastRun; i++) { + if (fMsr2DataParam->msrFileExtension.isEmpty()) + fln = QString("%1").arg(i) + ".msr"; + else + fln = QString("%1").arg(i) + fMsr2DataParam->msrFileExtension + ".msr"; + + load(fln); + } + } + break; + case 1: // run list + end = 0; + while (!runList.section(' ', end, end).isEmpty()) { + end++; + } + for (int i=0; imsrFileExtension.isEmpty()) + fln += ".msr"; + else + fln += fMsr2DataParam->msrFileExtension + ".msr"; + + load(fln); + } + break; + case 2: // run list file + file = new QFile(fMsr2DataParam->runListFileName); + if (!file->open(IO_ReadOnly)) { + str = QString("Couldn't open run list file %1, sorry.").arg(fMsr2DataParam->runListFileName); + QMessageBox::critical(this, "**ERROR**", str.latin1(), QMessageBox::Ok, QMessageBox::NoButton); + return; + } + + stream = new QTextStream(file); + while ( !stream->atEnd() ) { + str = stream->readLine(); // line of text excluding '\n' + str.stripWhiteSpace(); + if (!str.isEmpty() && !str.startsWith("#")) { + fln = str.section(' ', 0, 0); + if (fMsr2DataParam->msrFileExtension.isEmpty()) + fln += ".msr"; + else + fln += fMsr2DataParam->msrFileExtension + ".msr"; + + load(fln); + } + } + + file->close(); + + // clean up + delete stream; + delete file; + break; + default: + break; + } + } } } diff --git a/src/musrgui/musrgui.h b/src/musrgui/musrgui.h index 4c6fa7e2..be8092d4 100644 --- a/src/musrgui/musrgui.h +++ b/src/musrgui/musrgui.h @@ -48,6 +48,7 @@ typedef struct { bool writeColumnData; bool recreateDbFile; bool chainFit; + bool openFilesAfterFitting; } PMsr2DataParam; typedef struct {