diff --git a/src/musredit/PAdmin.cpp b/src/musredit/PAdmin.cpp index 95fe9992..50b57da0 100644 --- a/src/musredit/PAdmin.cpp +++ b/src/musredit/PAdmin.cpp @@ -418,9 +418,9 @@ bool PAdminXMLParser::endDocument() //-------------------------------------------------------------------------- /** - *

+ *

Report XML warnings. * - * \param exception + * \param exception holds the information of the XML warning */ bool PAdminXMLParser::warning( const QXmlParseException & exception ) { @@ -438,9 +438,9 @@ bool PAdminXMLParser::warning( const QXmlParseException & exception ) //-------------------------------------------------------------------------- /** - *

+ *

Report recoverable XML errors. * - * \param exception + * \param exception holds the information of the XML recoverable errors. */ bool PAdminXMLParser::error( const QXmlParseException & exception ) { @@ -458,9 +458,9 @@ bool PAdminXMLParser::error( const QXmlParseException & exception ) //-------------------------------------------------------------------------- /** - *

+ *

Report fatal XML errors. * - * \param exception + * \param exception holds the information of the XML fatal errors. */ bool PAdminXMLParser::fatalError( const QXmlParseException & exception ) { diff --git a/src/musredit/PTextEdit.cpp b/src/musredit/PTextEdit.cpp index e25d74e0..7f7c0b46 100644 --- a/src/musredit/PTextEdit.cpp +++ b/src/musredit/PTextEdit.cpp @@ -1705,11 +1705,12 @@ void PTextEdit::musrMsr2Data() if (fMsr2DataParam == 0) { fMsr2DataParam = new PMsr2DataParam(); *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")); if (dlg == 0) { @@ -1726,6 +1727,8 @@ void PTextEdit::musrMsr2Data() int i, end; fMsr2DataParam = dlg->getMsr2DataParam(); + fKeepMinuit2Output = fMsr2DataParam->keepMinuit2Output; + fTitleFromDataFile = fMsr2DataParam->titleFromDataFile; // analyze parameters switch (dlg->getRunTag()) { diff --git a/src/musredit/musredit_startup.xml b/src/musredit/musredit_startup.xml index 0c05a8ff..8970e5d1 100644 --- a/src/musredit/musredit_startup.xml +++ b/src/musredit/musredit_startup.xml @@ -42,7 +42,6 @@ n n y - y n n n diff --git a/src/musrgui/PAdmin.cpp b/src/musrgui/PAdmin.cpp index ebb71ed6..d91aaa08 100644 --- a/src/musrgui/PAdmin.cpp +++ b/src/musrgui/PAdmin.cpp @@ -93,6 +93,26 @@ bool PAdminXMLParser::startElement( const QString&, const QString&, fKeyWord = eMsrDefaultFilePath; } else if (qName == "help_main") { 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") { fKeyWord = eTheoFuncPixmapPath; } else if (qName == "func") { @@ -202,6 +222,76 @@ bool PAdminXMLParser::characters(const QString& str) help.replace("<", "<"); fAdmin->setHelpMain(help); 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: fAdmin->setTheoFuncPixmapPath(QString(str.ascii()).stripWhiteSpace()); break; @@ -273,6 +363,66 @@ bool PAdminXMLParser::endDocument() return true; } +//-------------------------------------------------------------------------- +/** + *

+ * + * \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; +} + +//-------------------------------------------------------------------------- +/** + *

+ * + * \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; +} + +//-------------------------------------------------------------------------- +/** + *

+ * + * \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; +} + //-------------------------------------------------------------------------- /** *

Called at the end of the XML parse process. @@ -332,6 +482,25 @@ PAdmin::PAdmin() fEnableMusrT0 = false; 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 QString fln = "./musrgui_startup.xml"; if (!QFile::exists(fln)) { @@ -347,7 +516,12 @@ PAdmin::PAdmin() QXmlInputSource source( &xmlFile ); QXmlSimpleReader reader; 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 { 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.", diff --git a/src/musrgui/PAdmin.h b/src/musrgui/PAdmin.h index 3e025b8e..54022999 100644 --- a/src/musrgui/PAdmin.h +++ b/src/musrgui/PAdmin.h @@ -37,6 +37,8 @@ #include #include +#include "musrgui.h" + class PAdmin; //--------------------------------------------------------------------------- @@ -60,7 +62,9 @@ class PAdminXMLParser : public QXmlDefaultHandler enum EAdminKeyWords {eEmpty, eFontName, eFontSize, eExecPath, eDefaultSavePath, eTitleFromDataFile, eEnableMusrT0, eBeamline, eInstitute, eFileFormat, eLifetimeCorrection, eMsrDefaultFilePath, eHelpMain, eTheoFuncPixmapPath, eFunc, eFuncName, eFuncComment, eFuncLabel, - eFuncPixmap, eFuncParams}; + eFuncPixmap, eFuncParams, + eChainFit, eWriteDataHeader, eSummaryFilesPresent, eKeepMinuit2Output, eWriteColumnData, + eRecreateDataFile, eOpenFileAfterFitting, eCreateMsrFileOnly, eFitOnly, eGlobal}; bool startDocument(); bool startElement( const QString&, const QString&, const QString& , @@ -70,6 +74,10 @@ class PAdminXMLParser : public QXmlDefaultHandler bool characters(const QString&); bool endDocument(); + bool warning( const QXmlParseException & exception ); + bool error( const QXmlParseException & exception ); + bool fatalError( const QXmlParseException & exception ); + QString expandPath(const QString&); EAdminKeyWords fKeyWord; @@ -100,6 +108,7 @@ class PAdmin QString getTheoFuncPixmapPath() { return fTheoFuncPixmapPath; } unsigned int getTheoryCounts() { return fTheory.size(); } PTheory* getTheoryItem(const unsigned int idx); + PMsr2DataParam getMsr2DataParam() { return fMsr2DataParam; } void setFontName(const QString str) { fFontName = str; } void setFontSize(const int ival) { fFontSize = ival; } @@ -137,6 +146,8 @@ class PAdmin QString fFileFormat; bool fLifetimeCorrection; + mutable PMsr2DataParam fMsr2DataParam; ///< keeps msr2data default parameter flags + QString fHelpMain; QValueVector fTheory; diff --git a/src/musrgui/PTextEdit.cpp b/src/musrgui/PTextEdit.cpp index 810a6f7e..1ecfce8c 100644 --- a/src/musrgui/PTextEdit.cpp +++ b/src/musrgui/PTextEdit.cpp @@ -1443,34 +1443,15 @@ void PTextEdit::musrFit() */ void PTextEdit::musrMsr2Data() { -/* - if ( !currentEditor() ) - return; -*/ - if (fMsr2DataParam == 0) { fMsr2DataParam = new PMsr2DataParam(); - // init fMsr2DataParam - 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; + *fMsr2DataParam = fAdmin->getMsr2DataParam(); } + // init fMsr2DataParam + fMsr2DataParam->keepMinuit2Output = fKeepMinuit2Output; + fMsr2DataParam->titleFromDataFile = fTitleFromDataFile; + PMsr2DataDialog *dlg = new PMsr2DataDialog(fMsr2DataParam); if (dlg->exec() == QDialog::Accepted) { @@ -1482,6 +1463,8 @@ void PTextEdit::musrMsr2Data() int i, end; fMsr2DataParam = dlg->getMsr2DataParam(); + fKeepMinuit2Output = fMsr2DataParam->keepMinuit2Output; + fTitleFromDataFile = fMsr2DataParam->titleFromDataFile; // analyze parameters switch (dlg->getRunTag()) { diff --git a/src/musrgui/musrgui_startup.xml b/src/musrgui/musrgui_startup.xml index eb6047a4..ab86ffa9 100644 --- a/src/musrgui/musrgui_startup.xml +++ b/src/musrgui/musrgui_startup.xml @@ -27,6 +27,18 @@ Starting with >= Qt4.2 this will be linked automatically but until then ...; sorry ;-) + + y + y + y + n + n + n + y + n + n + n + $HOME/analysis/musrfit/src/musrgui/latex_images