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