From 4cdc4dbf1d84c3a2cf2e25f451b302dc778dedb8 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Tue, 2 Aug 2016 13:15:55 +0200 Subject: [PATCH] musredit: run lists are now properly loaded if containing nS-nE elements. --- ChangeLog | 1 + src/musredit/PTextEdit.cpp | 65 ++++++++++++++++++++++++++++--- src/musredit/PTextEdit.h | 3 ++ src/musredit_qt5/PTextEdit.cpp | 70 ++++++++++++++++++++++++++++++---- src/musredit_qt5/PTextEdit.h | 3 ++ 5 files changed, 128 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 267c0dd2..2225cab9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,6 +13,7 @@ NEW 2016-04-22 Added the theory function muMinusExpTF for mu minus fits NEW 2016-02-23 It is now possible to export the averaged data/Fourier CHANGED 2016-04-26 start-/endTimeBin are now class members. This reduces the number of recalculations. +FIXED 2016-08-02 run lists are now properly loaded if containing nS-nE elements. changes since 0.16.0 =================================== diff --git a/src/musredit/PTextEdit.cpp b/src/musredit/PTextEdit.cpp index b5ab871d..5774fa8b 100644 --- a/src/musredit/PTextEdit.cpp +++ b/src/musredit/PTextEdit.cpp @@ -1870,6 +1870,8 @@ void PTextEdit::musrMsr2Data() QFileInfo fi; QString str; int i, end; + QStringList list; + bool ok; fMsr2DataParam = dlg->getMsr2DataParam(); fAdmin->setKeepMinuit2OutputFlag(fMsr2DataParam->keepMinuit2Output); @@ -2069,12 +2071,11 @@ void PTextEdit::musrMsr2Data() } break; case 1: // run list - end = 0; - while (!runList.section(' ', end, end, QString::SectionSkipEmpty).isEmpty()) { - end++; - } - for (int i=0; imsrFileExtension.isEmpty()) fln += ".msr"; else @@ -2644,6 +2645,58 @@ void PTextEdit::fillRecentFiles() } } +//---------------------------------------------------------------------------------------------------- +/** + *

run list is split (space separated) and expanded (start-end -> start, start+1, ..., end) to a list + * + * \param runListStr list to be split and expanded + * \param ok true if everything is fine; false if an error has been encountered + * + * \return fully expanded run list + */ +QStringList PTextEdit::getRunList(QString runListStr, bool &ok) +{ + QStringList result; + bool isInt; + QString str; + + ok = true; + + // first split space separated parts + QStringList tok = runListStr.split(' ', QString::SkipEmptyParts); + for (int i=0; i +#include +#include #include #include #include @@ -175,6 +177,7 @@ private: QAction *fRecentFilesAction[MAX_RECENT_FILES]; ///< array of the recent file actions void fillRecentFiles(); + QStringList getRunList(QString runListStr, bool &ok); }; diff --git a/src/musredit_qt5/PTextEdit.cpp b/src/musredit_qt5/PTextEdit.cpp index cf98f1f6..9888fa02 100644 --- a/src/musredit_qt5/PTextEdit.cpp +++ b/src/musredit_qt5/PTextEdit.cpp @@ -30,6 +30,8 @@ #include using namespace std; +#include +#include #include #include #include @@ -1867,7 +1869,9 @@ void PTextEdit::musrMsr2Data() QString runListFileName; QFileInfo fi; QString str; - int i, end; + int i, end; + QStringList list; + bool ok; fMsr2DataParam = dlg->getMsr2DataParam(); fAdmin->setKeepMinuit2OutputFlag(fMsr2DataParam->keepMinuit2Output); @@ -2052,7 +2056,6 @@ void PTextEdit::musrMsr2Data() QTextStream *stream; if (!fMsr2DataParam->global) { // standard fits - switch(dlg->getRunTag()) { case 0: // first run / last run list if (fMsr2DataParam->firstRun != -1) { @@ -2067,12 +2070,11 @@ void PTextEdit::musrMsr2Data() } break; case 1: // run list - end = 0; - while (!runList.section(' ', end, end, QString::SectionSkipEmpty).isEmpty()) { - end++; - } - for (int i=0; imsrFileExtension.isEmpty()) fln += ".msr"; else @@ -2642,6 +2644,58 @@ void PTextEdit::fillRecentFiles() } } +//---------------------------------------------------------------------------------------------------- +/** + *

run list is split (space separated) and expanded (start-end -> start, start+1, ..., end) to a list + * + * \param runListStr list to be split and expanded + * \param ok true if everything is fine; false if an error has been encountered + * + * \return fully expanded run list + */ +QStringList PTextEdit::getRunList(QString runListStr, bool &ok) +{ + QStringList result; + bool isInt; + QString str; + + ok = true; + + // first split space separated parts + QStringList tok = runListStr.split(' ', QString::SkipEmptyParts); + for (int i=0; i +#include +#include #include #include #include @@ -175,6 +177,7 @@ private: QAction *fRecentFilesAction[MAX_RECENT_FILES]; ///< array of the recent file actions void fillRecentFiles(); + QStringList getRunList(QString runListStr, bool &ok); };