added default settings for msr2data. Automatic opening of global fit files still missing

This commit is contained in:
nemu
2010-06-24 06:25:33 +00:00
parent 3b0bff23c5
commit bc7ba9f297
7 changed files with 218 additions and 36 deletions

View File

@ -418,9 +418,9 @@ bool PAdminXMLParser::endDocument()
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
/** /**
* <p> * <p>Report XML warnings.
* *
* \param exception * \param exception holds the information of the XML warning
*/ */
bool PAdminXMLParser::warning( const QXmlParseException & exception ) bool PAdminXMLParser::warning( const QXmlParseException & exception )
{ {
@ -438,9 +438,9 @@ bool PAdminXMLParser::warning( const QXmlParseException & exception )
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
/** /**
* <p> * <p>Report recoverable XML errors.
* *
* \param exception * \param exception holds the information of the XML recoverable errors.
*/ */
bool PAdminXMLParser::error( const QXmlParseException & exception ) bool PAdminXMLParser::error( const QXmlParseException & exception )
{ {
@ -458,9 +458,9 @@ bool PAdminXMLParser::error( const QXmlParseException & exception )
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
/** /**
* <p> * <p>Report fatal XML errors.
* *
* \param exception * \param exception holds the information of the XML fatal errors.
*/ */
bool PAdminXMLParser::fatalError( const QXmlParseException & exception ) bool PAdminXMLParser::fatalError( const QXmlParseException & exception )
{ {

View File

@ -1705,11 +1705,12 @@ void PTextEdit::musrMsr2Data()
if (fMsr2DataParam == 0) { if (fMsr2DataParam == 0) {
fMsr2DataParam = new PMsr2DataParam(); fMsr2DataParam = new PMsr2DataParam();
*fMsr2DataParam = fAdmin->getMsr2DataParam(); *fMsr2DataParam = fAdmin->getMsr2DataParam();
// init fMsr2DataParam
fMsr2DataParam->keepMinuit2Output = fKeepMinuit2Output;
fMsr2DataParam->titleFromDataFile = fTitleFromDataFile;
} }
// init fMsr2DataParam
fMsr2DataParam->keepMinuit2Output = fKeepMinuit2Output;
fMsr2DataParam->titleFromDataFile = fTitleFromDataFile;
PMsr2DataDialog *dlg = new PMsr2DataDialog(fMsr2DataParam, fAdmin->getHelpUrl("msr2data")); PMsr2DataDialog *dlg = new PMsr2DataDialog(fMsr2DataParam, fAdmin->getHelpUrl("msr2data"));
if (dlg == 0) { if (dlg == 0) {
@ -1726,6 +1727,8 @@ void PTextEdit::musrMsr2Data()
int i, end; int i, end;
fMsr2DataParam = dlg->getMsr2DataParam(); fMsr2DataParam = dlg->getMsr2DataParam();
fKeepMinuit2Output = fMsr2DataParam->keepMinuit2Output;
fTitleFromDataFile = fMsr2DataParam->titleFromDataFile;
// analyze parameters // analyze parameters
switch (dlg->getRunTag()) { switch (dlg->getRunTag()) {

View File

@ -42,7 +42,6 @@
<write_column_data>n</write_column_data> <write_column_data>n</write_column_data>
<recreate_data_file>n</recreate_data_file> <recreate_data_file>n</recreate_data_file>
<open_file_after_fitting>y</open_file_after_fitting> <open_file_after_fitting>y</open_file_after_fitting>
<take_data_file_title>y</take_data_file_title>
<create_msr_file_only>n</create_msr_file_only> <create_msr_file_only>n</create_msr_file_only>
<fit_only>n</fit_only> <fit_only>n</fit_only>
<global>n</global> <global>n</global>

View File

@ -93,6 +93,26 @@ bool PAdminXMLParser::startElement( const QString&, const QString&,
fKeyWord = eMsrDefaultFilePath; fKeyWord = eMsrDefaultFilePath;
} else if (qName == "help_main") { } else if (qName == "help_main") {
fKeyWord = eHelpMain; fKeyWord = eHelpMain;
} else if (qName == "chain_fit") {
fKeyWord = eChainFit;
} else if (qName == "write_data_header") {
fKeyWord = eWriteDataHeader;
} else if (qName == "summary_files_present") {
fKeyWord = eSummaryFilesPresent;
} else if (qName == "keep_minuit2_output") {
fKeyWord = eKeepMinuit2Output;
} else if (qName == "write_column_data") {
fKeyWord = eWriteColumnData;
} else if (qName == "recreate_data_file") {
fKeyWord = eRecreateDataFile;
} else if (qName == "open_file_after_fitting") {
fKeyWord = eOpenFileAfterFitting;
} else if (qName == "create_msr_file_only") {
fKeyWord = eCreateMsrFileOnly;
} else if (qName == "fit_only") {
fKeyWord = eFitOnly;
} else if (qName == "global") {
fKeyWord = eGlobal;
} else if (qName == "func_pixmap_path") { } else if (qName == "func_pixmap_path") {
fKeyWord = eTheoFuncPixmapPath; fKeyWord = eTheoFuncPixmapPath;
} else if (qName == "func") { } else if (qName == "func") {
@ -202,6 +222,76 @@ bool PAdminXMLParser::characters(const QString& str)
help.replace("&lt;", "<"); help.replace("&lt;", "<");
fAdmin->setHelpMain(help); fAdmin->setHelpMain(help);
break; break;
case eChainFit:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.chainFit = flag;
break;
case eWriteDataHeader:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.writeDbHeader = flag;
break;
case eSummaryFilesPresent:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.summaryFilePresent = flag;
break;
case eKeepMinuit2Output:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.keepMinuit2Output = flag;
break;
case eWriteColumnData:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.writeColumnData = flag;
break;
case eRecreateDataFile:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.recreateDbFile = flag;
break;
case eOpenFileAfterFitting:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.openFilesAfterFitting = flag;
break;
case eCreateMsrFileOnly:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.createMsrFileOnly = flag;
break;
case eFitOnly:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.fitOnly = flag;
break;
case eGlobal:
if (str == "y")
flag = true;
else
flag = false;
fAdmin->fMsr2DataParam.global = flag;
break;
case eTheoFuncPixmapPath: case eTheoFuncPixmapPath:
fAdmin->setTheoFuncPixmapPath(QString(str.ascii()).stripWhiteSpace()); fAdmin->setTheoFuncPixmapPath(QString(str.ascii()).stripWhiteSpace());
break; break;
@ -273,6 +363,66 @@ bool PAdminXMLParser::endDocument()
return true; return true;
} }
//--------------------------------------------------------------------------
/**
* <p>
*
* \param exception
*/
bool PAdminXMLParser::warning( const QXmlParseException & exception )
{
QString msg;
msg = QString("**WARNING** while parsing musredit_startup.xml in line no %1\n").arg(exception.lineNumber());
msg += QString("**WARNING MESSAGE** ") + exception.message() + QString("\n");
qWarning( msg.latin1() );
QMessageBox::warning(0, "WARNING", msg, QMessageBox::Ok, QMessageBox::NoButton);
return true;
}
//--------------------------------------------------------------------------
/**
* <p>
*
* \param exception
*/
bool PAdminXMLParser::error( const QXmlParseException & exception )
{
QString msg;
msg = QString("**ERROR** while parsing musredit_startup.xml in line no %1\n").arg(exception.lineNumber());
msg += QString("**ERROR MESSAGE** ") + exception.message() + QString("\n");
qWarning( msg.latin1() );
QMessageBox::critical(0, "ERROR", msg, QMessageBox::Ok, QMessageBox::NoButton);
return true;
}
//--------------------------------------------------------------------------
/**
* <p>
*
* \param exception
*/
bool PAdminXMLParser::fatalError( const QXmlParseException & exception )
{
QString msg;
msg = QString("**FATAL ERROR** while parsing musredit_startup.xml in line no %1\n").arg(exception.lineNumber());
msg += QString("**FATAL ERROR MESSAGE** ") + exception.message() + QString("\n");
qWarning( msg.latin1() );
QMessageBox::critical(0, "FATAL ERROR", msg, QMessageBox::Ok, QMessageBox::NoButton);
return true;
}
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
/** /**
* <p>Called at the end of the XML parse process. * <p>Called at the end of the XML parse process.
@ -332,6 +482,25 @@ PAdmin::PAdmin()
fEnableMusrT0 = false; fEnableMusrT0 = false;
fLifetimeCorrection = true; fLifetimeCorrection = true;
fMsr2DataParam.firstRun = -1;
fMsr2DataParam.lastRun = -1;
fMsr2DataParam.runList = QString("");
fMsr2DataParam.runListFileName = QString("");
fMsr2DataParam.msrFileExtension = QString("");
fMsr2DataParam.templateRunNo = -1;
fMsr2DataParam.dbOutputFileName = QString("");
fMsr2DataParam.writeDbHeader = true;
fMsr2DataParam.summaryFilePresent = true;
fMsr2DataParam.keepMinuit2Output = false;
fMsr2DataParam.writeColumnData = false;
fMsr2DataParam.recreateDbFile = false;
fMsr2DataParam.chainFit = true;
fMsr2DataParam.openFilesAfterFitting = true;
fMsr2DataParam.titleFromDataFile = true;
fMsr2DataParam.createMsrFileOnly = false;
fMsr2DataParam.fitOnly = false;
fMsr2DataParam.global = false;
// XML Parser part // XML Parser part
QString fln = "./musrgui_startup.xml"; QString fln = "./musrgui_startup.xml";
if (!QFile::exists(fln)) { if (!QFile::exists(fln)) {
@ -347,7 +516,12 @@ PAdmin::PAdmin()
QXmlInputSource source( &xmlFile ); QXmlInputSource source( &xmlFile );
QXmlSimpleReader reader; QXmlSimpleReader reader;
reader.setContentHandler( &handler ); reader.setContentHandler( &handler );
reader.parse( source ); reader.setErrorHandler( &handler );
if (!reader.parse( source )) {
QMessageBox::critical(0, "ERROR",
"Error parsing musredit_startup.xml settings file.\nProbably a few things will not work porperly.\nPlease fix this first.",
QMessageBox::Ok, QMessageBox::NoButton);
}
} else { } else {
QMessageBox::critical(0, "ERROR", QMessageBox::critical(0, "ERROR",
"Couldn't find the musrgui_startup.xml settings file.\nProbably a few things will not work porperly.\nPlease fix this first.", "Couldn't find the musrgui_startup.xml settings file.\nProbably a few things will not work porperly.\nPlease fix this first.",

View File

@ -37,6 +37,8 @@
#include <qpixmap.h> #include <qpixmap.h>
#include <qxml.h> #include <qxml.h>
#include "musrgui.h"
class PAdmin; class PAdmin;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -60,7 +62,9 @@ class PAdminXMLParser : public QXmlDefaultHandler
enum EAdminKeyWords {eEmpty, eFontName, eFontSize, eExecPath, eDefaultSavePath, eTitleFromDataFile, eEnableMusrT0, enum EAdminKeyWords {eEmpty, eFontName, eFontSize, eExecPath, eDefaultSavePath, eTitleFromDataFile, eEnableMusrT0,
eBeamline, eInstitute, eFileFormat, eLifetimeCorrection, eMsrDefaultFilePath, eBeamline, eInstitute, eFileFormat, eLifetimeCorrection, eMsrDefaultFilePath,
eHelpMain, eTheoFuncPixmapPath, eFunc, eFuncName, eFuncComment, eFuncLabel, eHelpMain, eTheoFuncPixmapPath, eFunc, eFuncName, eFuncComment, eFuncLabel,
eFuncPixmap, eFuncParams}; eFuncPixmap, eFuncParams,
eChainFit, eWriteDataHeader, eSummaryFilesPresent, eKeepMinuit2Output, eWriteColumnData,
eRecreateDataFile, eOpenFileAfterFitting, eCreateMsrFileOnly, eFitOnly, eGlobal};
bool startDocument(); bool startDocument();
bool startElement( const QString&, const QString&, const QString& , bool startElement( const QString&, const QString&, const QString& ,
@ -70,6 +74,10 @@ class PAdminXMLParser : public QXmlDefaultHandler
bool characters(const QString&); bool characters(const QString&);
bool endDocument(); bool endDocument();
bool warning( const QXmlParseException & exception );
bool error( const QXmlParseException & exception );
bool fatalError( const QXmlParseException & exception );
QString expandPath(const QString&); QString expandPath(const QString&);
EAdminKeyWords fKeyWord; EAdminKeyWords fKeyWord;
@ -100,6 +108,7 @@ class PAdmin
QString getTheoFuncPixmapPath() { return fTheoFuncPixmapPath; } QString getTheoFuncPixmapPath() { return fTheoFuncPixmapPath; }
unsigned int getTheoryCounts() { return fTheory.size(); } unsigned int getTheoryCounts() { return fTheory.size(); }
PTheory* getTheoryItem(const unsigned int idx); PTheory* getTheoryItem(const unsigned int idx);
PMsr2DataParam getMsr2DataParam() { return fMsr2DataParam; }
void setFontName(const QString str) { fFontName = str; } void setFontName(const QString str) { fFontName = str; }
void setFontSize(const int ival) { fFontSize = ival; } void setFontSize(const int ival) { fFontSize = ival; }
@ -137,6 +146,8 @@ class PAdmin
QString fFileFormat; QString fFileFormat;
bool fLifetimeCorrection; bool fLifetimeCorrection;
mutable PMsr2DataParam fMsr2DataParam; ///< keeps msr2data default parameter flags
QString fHelpMain; QString fHelpMain;
QValueVector<PTheory> fTheory; QValueVector<PTheory> fTheory;

View File

@ -1443,34 +1443,15 @@ void PTextEdit::musrFit()
*/ */
void PTextEdit::musrMsr2Data() void PTextEdit::musrMsr2Data()
{ {
/*
if ( !currentEditor() )
return;
*/
if (fMsr2DataParam == 0) { if (fMsr2DataParam == 0) {
fMsr2DataParam = new PMsr2DataParam(); fMsr2DataParam = new PMsr2DataParam();
// init fMsr2DataParam *fMsr2DataParam = fAdmin->getMsr2DataParam();
fMsr2DataParam->firstRun = -1;
fMsr2DataParam->lastRun = -1;
fMsr2DataParam->runList = QString("");
fMsr2DataParam->runListFileName = QString("");
fMsr2DataParam->msrFileExtension = QString("");
fMsr2DataParam->templateRunNo = -1;
fMsr2DataParam->dbOutputFileName = QString("");
fMsr2DataParam->writeDbHeader = false;
fMsr2DataParam->summaryFilePresent = false;
fMsr2DataParam->keepMinuit2Output = fKeepMinuit2Output;
fMsr2DataParam->writeColumnData = false;
fMsr2DataParam->recreateDbFile = false;
fMsr2DataParam->chainFit = true;
fMsr2DataParam->openFilesAfterFitting = false;
fMsr2DataParam->titleFromDataFile = fTitleFromDataFile;
fMsr2DataParam->createMsrFileOnly = false;
fMsr2DataParam->fitOnly = false;
fMsr2DataParam->global = false;
} }
// init fMsr2DataParam
fMsr2DataParam->keepMinuit2Output = fKeepMinuit2Output;
fMsr2DataParam->titleFromDataFile = fTitleFromDataFile;
PMsr2DataDialog *dlg = new PMsr2DataDialog(fMsr2DataParam); PMsr2DataDialog *dlg = new PMsr2DataDialog(fMsr2DataParam);
if (dlg->exec() == QDialog::Accepted) { if (dlg->exec() == QDialog::Accepted) {
@ -1482,6 +1463,8 @@ void PTextEdit::musrMsr2Data()
int i, end; int i, end;
fMsr2DataParam = dlg->getMsr2DataParam(); fMsr2DataParam = dlg->getMsr2DataParam();
fKeepMinuit2Output = fMsr2DataParam->keepMinuit2Output;
fTitleFromDataFile = fMsr2DataParam->titleFromDataFile;
// analyze parameters // analyze parameters
switch (dlg->getRunTag()) { switch (dlg->getRunTag()) {

View File

@ -27,6 +27,18 @@
Starting with &gt;= Qt4.2 this will be linked automatically but until then ...; sorry ;-) Starting with &gt;= Qt4.2 this will be linked automatically but until then ...; sorry ;-)
</help_main> </help_main>
</help_section> </help_section>
<msr2data_defaults>
<chain_fit>y</chain_fit>
<write_data_header>y</write_data_header>
<summary_files_present>y</summary_files_present>
<keep_minuit2_output>n</keep_minuit2_output>
<write_column_data>n</write_column_data>
<recreate_data_file>n</recreate_data_file>
<open_file_after_fitting>y</open_file_after_fitting>
<create_msr_file_only>n</create_msr_file_only>
<fit_only>n</fit_only>
<global>n</global>
</msr2data_defaults>
<func_pixmap_path>$HOME/analysis/musrfit/src/musrgui/latex_images</func_pixmap_path> <func_pixmap_path>$HOME/analysis/musrfit/src/musrgui/latex_images</func_pixmap_path>
<theory_functions> <theory_functions>
<func> <func>