diff --git a/ChangeLog b/ChangeLog index 3899ebf3..0e66dac3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ changes since 0.16.0 =================================== NEW 2016-01-22 update of the docu which now describes the RRF option. +CHANGED 2016-02-17 start to move the startup XML-files to $HOME/.musrfit + rather than having it within $prefix/bin. CHANGED 2016-02-16 if the LEM file is created 2012 or later and the data-file-format tag is still ROOT-NPP or ROOT-PPC, it will automatically switched to MUSR-ROOT. This way red/green diff --git a/src/musredit/PAdmin.cpp b/src/musredit/PAdmin.cpp index ac360c58..0d6af6da 100644 --- a/src/musredit/PAdmin.cpp +++ b/src/musredit/PAdmin.cpp @@ -603,6 +603,7 @@ PAdmin::PAdmin() : QObject() fFontName = QString("Courier"); // default font fFontSize = 11; // default font size + fPrefPathName = QString(""); fExecPath = QString(""); fDefaultSavePath = QString(""); fMsrDefaultFilePath = QString(""); @@ -641,25 +642,28 @@ PAdmin::PAdmin() : QObject() fMsr2DataParam.globalPlus = false; // XML Parser part - QString fln = "musredit_startup.xml"; - // check if it is a MacOSX -#ifdef Q_WS_MAC - fln = "./musredit_startup.xml"; - if (!QFile::exists(fln)) { - fln = "/Applications/musredit.app/Contents/Resources/musredit_startup.xml"; + // 1st: check local directory + QString path = QString("./"); + QString fln = QString("musredit_startup.xml"); + QString pathFln = path + fln; + if (!QFile::exists(pathFln)) { + // 2nd: check $HOME/.musrfit/musredit/musredit_startup.xml + path = std::getenv("HOME"); + pathFln = path + "/.musrfit/musredit/" + fln; + if (!QFile::exists(pathFln)) { + // 3rd: check $MUSRFITPATH/musredit_startup.xml + path = std::getenv("MUSRFITPATH"); + pathFln = path + "/" + fln; + if (!QFile::exists(pathFln)) { + // 4th: check $ROOTSYS/bin/musredit_startup.xml + path = std::getenv("ROOTSYS"); + pathFln = path + "/bin/" + fln; + } + } } -#else - fln = "./musredit_startup.xml"; - if (!QFile::exists(fln)) { - QString path = std::getenv("MUSRFITPATH"); - QString rootsys = std::getenv("ROOTSYS"); - if (path.isEmpty()) - path = rootsys + "/bin"; - fln = path + "/musredit_startup.xml"; - } -#endif + fPrefPathName = pathFln; - loadPrefs(fln); + loadPrefs(fPrefPathName); } //-------------------------------------------------------------------------- @@ -769,25 +773,10 @@ int PAdmin::savePrefs(QString pref_fln) { // check if musredit_startup.xml is present in the current directory, and if yes, use this file to // save the recent file names otherwise use the "master" musredit_startup.xml + QString fln = QString("./musredit_startup.xml"); + if (!QFile::exists(fln)) + fln = fPrefPathName; - QString str; - QString fln = "musredit_startup.xml"; - // check if it is a MacOSX -#ifdef Q_WS_MAC - fln = "./musredit_startup.xml"; - if (!QFile::exists(fln)) { - fln = "/Applications/musredit.app/Contents/Resources/musredit_startup.xml"; - } -#else - fln = "./musredit_startup.xml"; - if (!QFile::exists(fln)) { - QString path = std::getenv("MUSRFITPATH"); - QString rootsys = std::getenv("ROOTSYS"); - if (path.isEmpty()) - path = rootsys + "/bin"; - fln = path + "/musredit_startup.xml"; - } -#endif if (QFile::exists(fln)) { // administration file present QVector data; QFile file(fln); @@ -842,6 +831,12 @@ int PAdmin::savePrefs(QString pref_fln) else data[i] = " n"; } + if (data[i].contains("") && data[i].contains("")) { + if (fMusrviewShowFourier) + data[i] = " y"; + else + data[i] = " n"; + } if (data[i].contains("") && data[i].contains("")) { if (fEnableMusrT0) data[i] = " y"; @@ -853,13 +848,16 @@ int PAdmin::savePrefs(QString pref_fln) // write prefs file.setFileName(pref_fln); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { - cerr << endl << ">> PAdmin::savePrefs: **ERROR** Cannot open " << fln.toLatin1().data() << " for writing." << endl; + cerr << endl << ">> PAdmin::savePrefs: **ERROR** Cannot open " << pref_fln.toLatin1().data() << " for writing." << endl; return 0; } fin.setDevice(&file); for (int i=0; i data; QFile file(fln); @@ -959,6 +943,9 @@ void PAdmin::saveRecentFiles() for (int i=0; igetDefaultSavePath(); } @@ -903,12 +903,31 @@ void PTextEdit::fileReload() */ void PTextEdit::fileOpenPrefs() { - QString fln = QFileDialog::getOpenFileName( this, tr("Open Prefs"), + QString fln(""); + QString msg(""); + QMessageBox msgBox; + msgBox.setText("Which Preferences do you want to open?"); + msgBox.addButton("Default", QMessageBox::AcceptRole); + msgBox.addButton("Custom", QMessageBox::AcceptRole); + msgBox.setStandardButtons(QMessageBox::Cancel); + int result = msgBox.exec(); + if (result == QMessageBox::Cancel) { + return; + } else if (result == 0) { // default dir + fln = fAdmin->getDefaultPrefPathName(); + msg = QString("Current Default Preferences Path-Name:\n") + fln; + if (QMessageBox::information(this, "Info", msg, QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Cancel) + return; + } else if (result == 1) { // custom dir + fln = QFileDialog::getOpenFileName( this, tr("Open Prefs"), fLastDirInUse, tr( "xml-Files (*.xml);; All Files (*)" )); + } - if (fAdmin->loadPrefs(fln)) - QMessageBox::information(0, "Prefs", "Prefs Loaded."); + if (fAdmin->loadPrefs(fln)) { + msg = QString("Prefs from '") + fln + QString("' loaded."); + QMessageBox::information(0, "Info", msg); + } } //---------------------------------------------------------------------------------------------------- @@ -970,12 +989,31 @@ void PTextEdit::fileSaveAs() */ void PTextEdit::fileSavePrefs() { - QString fn = QFileDialog::getSaveFileName( this, + QString fln(""); + QString msg(""); + QMessageBox msgBox; + msgBox.setText("Which Preferences do you want to open?"); + msgBox.addButton("Default", QMessageBox::AcceptRole); + msgBox.addButton("Custom", QMessageBox::AcceptRole); + msgBox.setStandardButtons(QMessageBox::Cancel); + int result = msgBox.exec(); + if (result == QMessageBox::Cancel) { + return; + } else if (result == 0) { // default dir + fln = fAdmin->getDefaultPrefPathName(); + msg = QString("Current Default Preferences Path-Name:\n") + fln; + if (QMessageBox::information(this, "Info", msg, QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Cancel) + return; + } else if (result == 1) { // custom dir + fln = QFileDialog::getSaveFileName( this, tr( "Save Prefs As" ), "musredit_startup.xml", tr( "xml-Files (*.xml);;All Files (*)" ) ); + } - if ( !fn.isEmpty() ) { - fAdmin->savePrefs(fn); + if ( !fln.isEmpty() ) { + fAdmin->savePrefs(fln); + msg = QString("Prefs to '") + fln + QString("' saved."); + QMessageBox::information(0, "Info", msg); } } @@ -2508,7 +2546,7 @@ void PTextEdit::replaceAll() /** *

SLOT: updates the fonts if the textedit tab has changed. */ -void PTextEdit::applyFontSettings(QWidget*) +void PTextEdit::applyFontSettings(int) { QFont font(fAdmin->getFontName(), fAdmin->getFontSize()); fontChanged(font); diff --git a/src/musredit/PTextEdit.h b/src/musredit/PTextEdit.h index 46a6e282..a4e3a4e5 100644 --- a/src/musredit/PTextEdit.h +++ b/src/musredit/PTextEdit.h @@ -147,7 +147,7 @@ private slots: void replaceAndClose(); void replaceAll(); - void applyFontSettings(QWidget*); + void applyFontSettings(int); void fileChanged(const QString &fileName); void setFileSystemWatcherActive(); diff --git a/src/musredit/musredit.pro b/src/musredit/musredit.pro index 9c846bb0..7f400819 100644 --- a/src/musredit/musredit.pro +++ b/src/musredit/musredit.pro @@ -58,8 +58,8 @@ QMAKE_CXX = $${CXX} QMAKE_LINK = $${CXX} # install path for the XML configuration file -unix:xml.path = $${MUSREDIT_INSTALL_PATH} -macx:xml.path = /Applications/musredit.app/Contents/Resources +unix:xml.path = $$(HOME)/.musrfit/musredit +macx:xml.path = $$(HOME)/.musrfit/musredit win32:xml.path = c:/musrfit/bin xml.files = musredit_startup.xml INSTALLS += xml diff --git a/src/musredit/musredit_startup.xml.in b/src/musredit/musredit_startup.xml.in index bdcf0b4e..4493befe 100644 --- a/src/musredit/musredit_startup.xml.in +++ b/src/musredit/musredit_startup.xml.in @@ -14,6 +14,7 @@ y n y + n y diff --git a/src/musredit_qt5/PAdmin.cpp b/src/musredit_qt5/PAdmin.cpp index d4d67ae7..581b0757 100644 --- a/src/musredit_qt5/PAdmin.cpp +++ b/src/musredit_qt5/PAdmin.cpp @@ -603,6 +603,7 @@ PAdmin::PAdmin() : QObject() fFontName = QString("Courier"); // default font fFontSize = 11; // default font size + fPrefPathName = QString(""); fExecPath = QString(""); fDefaultSavePath = QString(""); fMsrDefaultFilePath = QString(""); @@ -641,25 +642,28 @@ PAdmin::PAdmin() : QObject() fMsr2DataParam.globalPlus = false; // XML Parser part - QString fln = "musredit_startup.xml"; - // check if it is a MacOSX -#ifdef Q_OS_OSX - fln = "./musredit_startup.xml"; - if (!QFile::exists(fln)) { - fln = "/Applications/musredit.app/Contents/Resources/musredit_startup.xml"; + // 1st: check local directory + QString path = QString("./"); + QString fln = QString("musredit_startup.xml"); + QString pathFln = path + fln; + if (!QFile::exists(pathFln)) { + // 2nd: check $HOME/.musrfit/musredit/musredit_startup.xml + path = std::getenv("HOME"); + pathFln = path + "/.musrfit/musredit/" + fln; + if (!QFile::exists(pathFln)) { + // 3rd: check $MUSRFITPATH/musredit_startup.xml + path = std::getenv("MUSRFITPATH"); + pathFln = path + "/" + fln; + if (!QFile::exists(pathFln)) { + // 4th: check $ROOTSYS/bin/musredit_startup.xml + path = std::getenv("ROOTSYS"); + pathFln = path + "/bin/" + fln; + } + } } -#else - fln = "./musredit_startup.xml"; - if (!QFile::exists(fln)) { - QString path = std::getenv("MUSRFITPATH"); - QString rootsys = std::getenv("ROOTSYS"); - if (path.isEmpty()) - path = rootsys + "/bin"; - fln = path + "/musredit_startup.xml"; - } -#endif + fPrefPathName = pathFln; - loadPrefs(fln); + loadPrefs(fPrefPathName); } //-------------------------------------------------------------------------- @@ -769,25 +773,10 @@ int PAdmin::savePrefs(QString pref_fln) { // check if musredit_startup.xml is present in the current directory, and if yes, use this file to // save the recent file names otherwise use the "master" musredit_startup.xml + QString fln = QString("./musredit_startup.xml"); + if (!QFile::exists(fln)) + fln = fPrefPathName; - QString str; - QString fln = "musredit_startup.xml"; - // check if it is a MacOSX -#ifdef Q_OS_OSX - fln = "./musredit_startup.xml"; - if (!QFile::exists(fln)) { - fln = "/Applications/musredit.app/Contents/Resources/musredit_startup.xml"; - } -#else - fln = "./musredit_startup.xml"; - if (!QFile::exists(fln)) { - QString path = std::getenv("MUSRFITPATH"); - QString rootsys = std::getenv("ROOTSYS"); - if (path.isEmpty()) - path = rootsys + "/bin"; - fln = path + "/musredit_startup.xml"; - } -#endif if (QFile::exists(fln)) { // administration file present QVector data; QFile file(fln); @@ -842,6 +831,12 @@ int PAdmin::savePrefs(QString pref_fln) else data[i] = " n"; } + if (data[i].contains("") && data[i].contains("")) { + if (fMusrviewShowFourier) + data[i] = " y"; + else + data[i] = " n"; + } if (data[i].contains("") && data[i].contains("")) { if (fEnableMusrT0) data[i] = " y"; @@ -853,13 +848,16 @@ int PAdmin::savePrefs(QString pref_fln) // write prefs file.setFileName(pref_fln); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { - cerr << endl << ">> PAdmin::savePrefs: **ERROR** Cannot open " << fln.toLatin1().data() << " for writing." << endl; + cerr << endl << ">> PAdmin::savePrefs: **ERROR** Cannot open " << pref_fln.toLatin1().data() << " for writing." << endl; return 0; } fin.setDevice(&file); for (int i=0; i data; QFile file(fln); @@ -959,6 +944,9 @@ void PAdmin::saveRecentFiles() for (int i=0; igetDefaultSavePath(); } @@ -901,12 +901,31 @@ void PTextEdit::fileReload() */ void PTextEdit::fileOpenPrefs() { - QString fln = QFileDialog::getOpenFileName( this, tr("Open Prefs"), + QString fln(""); + QString msg(""); + QMessageBox msgBox; + msgBox.setText("Which Preferences do you want to open?"); + msgBox.addButton("Default", QMessageBox::AcceptRole); + msgBox.addButton("Custom", QMessageBox::AcceptRole); + msgBox.setStandardButtons(QMessageBox::Cancel); + int result = msgBox.exec(); + if (result == QMessageBox::Cancel) { + return; + } else if (result == 0) { // default dir + fln = fAdmin->getDefaultPrefPathName(); + msg = QString("Current Default Preferences Path-Name:\n") + fln; + if (QMessageBox::information(this, "Info", msg, QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Cancel) + return; + } else if (result == 1) { // custom dir + fln = QFileDialog::getOpenFileName( this, tr("Open Prefs"), fLastDirInUse, tr( "xml-Files (*.xml);; All Files (*)" )); + } - if (fAdmin->loadPrefs(fln)) - QMessageBox::information(0, "Prefs", "Prefs Loaded."); + if (fAdmin->loadPrefs(fln)) { + msg = QString("Prefs from '") + fln + QString("' loaded."); + QMessageBox::information(0, "Info", msg); + } } //---------------------------------------------------------------------------------------------------- @@ -968,12 +987,31 @@ void PTextEdit::fileSaveAs() */ void PTextEdit::fileSavePrefs() { - QString fn = QFileDialog::getSaveFileName( this, + QString fln(""); + QString msg(""); + QMessageBox msgBox; + msgBox.setText("Which Preferences do you want to open?"); + msgBox.addButton("Default", QMessageBox::AcceptRole); + msgBox.addButton("Custom", QMessageBox::AcceptRole); + msgBox.setStandardButtons(QMessageBox::Cancel); + int result = msgBox.exec(); + if (result == QMessageBox::Cancel) { + return; + } else if (result == 0) { // default dir + fln = fAdmin->getDefaultPrefPathName(); + msg = QString("Current Default Preferences Path-Name:\n") + fln; + if (QMessageBox::information(this, "Info", msg, QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Cancel) + return; + } else if (result == 1) { // custom dir + fln = QFileDialog::getSaveFileName( this, tr( "Save Prefs As" ), "musredit_startup.xml", tr( "xml-Files (*.xml);;All Files (*)" ) ); + } - if ( !fn.isEmpty() ) { - fAdmin->savePrefs(fn); + if ( !fln.isEmpty() ) { + fAdmin->savePrefs(fln); + msg = QString("Prefs to '") + fln + QString("' saved."); + QMessageBox::information(0, "Info", msg); } } @@ -2506,7 +2544,7 @@ void PTextEdit::replaceAll() /** *

SLOT: updates the fonts if the textedit tab has changed. */ -void PTextEdit::applyFontSettings(QWidget*) +void PTextEdit::applyFontSettings(int) { QFont font(fAdmin->getFontName(), fAdmin->getFontSize()); fontChanged(font); diff --git a/src/musredit_qt5/PTextEdit.h b/src/musredit_qt5/PTextEdit.h index 46a6e282..a4e3a4e5 100644 --- a/src/musredit_qt5/PTextEdit.h +++ b/src/musredit_qt5/PTextEdit.h @@ -147,7 +147,7 @@ private slots: void replaceAndClose(); void replaceAll(); - void applyFontSettings(QWidget*); + void applyFontSettings(int); void fileChanged(const QString &fileName); void setFileSystemWatcherActive(); diff --git a/src/musredit_qt5/musredit.pro b/src/musredit_qt5/musredit.pro index 82eec492..a236dc25 100644 --- a/src/musredit_qt5/musredit.pro +++ b/src/musredit_qt5/musredit.pro @@ -31,8 +31,8 @@ unix { unix:target.path = $${MUSREDIT_INSTALL_PATH} macx:target.path = /Applications - win32:target.path = c:/musrfit/bin + INSTALLS += target # This is only needed for SL5.1 @@ -58,8 +58,8 @@ QMAKE_CXX = $${CXX} QMAKE_LINK = $${CXX} # install path for the XML configuration file -unix:xml.path = $${MUSREDIT_INSTALL_PATH} -macx:xml.path = /Applications/musredit.app/Contents/Resources +unix:xml.path = $$(HOME)/.musrfit/musredit +macx:xml.path = $$(HOME)/.musrfit/musredit win32:xml.path = c:/musrfit/bin xml.files = musredit_startup.xml INSTALLS += xml diff --git a/src/musredit_qt5/musredit_startup.xml.in b/src/musredit_qt5/musredit_startup.xml.in index 34374e56..d51cc3d5 100644 --- a/src/musredit_qt5/musredit_startup.xml.in +++ b/src/musredit_qt5/musredit_startup.xml.in @@ -14,6 +14,7 @@ y n y + n y