open after fitting feature implemented

This commit is contained in:
nemu
2009-06-10 05:56:44 +00:00
parent be274888dd
commit d97cf92333
3 changed files with 72 additions and 0 deletions

View File

@ -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;
}

View File

@ -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; i<end; i++) {
fln = runList.section(' ', i, i);
if (fMsr2DataParam->msrFileExtension.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;
}
}
}
}

View File

@ -48,6 +48,7 @@ typedef struct {
bool writeColumnData;
bool recreateDbFile;
bool chainFit;
bool openFilesAfterFitting;
} PMsr2DataParam;
typedef struct {