diff --git a/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp b/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp index 6c4729b2249ea35ffdaf4b4ac0871446e13418c5..7694532546bc060e37a36bc4dbdb5dcd688403f9 100644 --- a/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp +++ b/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp @@ -1989,36 +1989,32 @@ void MuonAnalysis::plotSpectrum(const QString& wsName, bool logScale) hideAllPlotWindows(); } + QStringList& s = acquireWindowScript; // To keep short + s << "ws = mtd['%WSNAME%']"; + s << "altName = ws.name() + '-1'"; + if ( policy == MuonAnalysisOptionTab::PreviousWindow ) { - QStringList& s = acquireWindowScript; // To keep short - - s << "ew = graph('%WSNAME%-1')"; + s << "ew = graph(altName)"; s << "if '%WSNAME%' != '%PREV%' and ew != None:"; s << " ew.close()"; s << "pw = graph('%PREV%-1')"; s << "if pw == None:"; - s << " pw = newGraph('%WSNAME%-1', 0)"; - - s << "w = plotSpectrum('%WSNAME%', 0, %ERRORS%, %CONNECT%, window = pw, clearWindow = True)"; - s << "w.setName('%WSNAME%-1')"; - s << "w.setObjectName('%WSNAME%')"; - s << "w.show()"; - s << "w.setFocus()"; + s << " pw = newGraph(altName, 0)"; } else if ( policy == MuonAnalysisOptionTab::NewWindow ) { - QStringList& s = acquireWindowScript; // To keep short - - s << "pw = newGraph('%WSNAME%-1', 0)"; - s << "w = plotSpectrum('%WSNAME%', 0, %ERRORS%, %CONNECT%, window = pw, clearWindow = True)"; - s << "w.setName('%WSNAME%-1')"; - s << "w.setObjectName('%WSNAME%')"; - s << "w.show()"; - s << "w.setFocus()"; + s << "pw = newGraph(altName, 0)"; } + s << "w = plotSpectrum(ws.name(), 0, %ERRORS%, %CONNECT%, window = pw, " + "clearWindow = True)"; + s << "w.setName(altName)"; + s << "w.setObjectName(ws.name())"; + s << "w.show()"; + s << "w.setFocus()"; + QString pyS; // Add line separators @@ -2028,17 +2024,17 @@ void MuonAnalysis::plotSpectrum(const QString& wsName, bool logScale) const QMap<QString, QString>& params = getPlotStyleParams(wsName); // Insert real values - pyS.replace("%WSNAME%", wsName); + QString safeWSName(wsName); + safeWSName.replace("'", "\'"); + pyS.replace("%WSNAME%", safeWSName); pyS.replace("%PREV%", m_currentDataName); pyS.replace("%ERRORS%", params["ShowErrors"]); pyS.replace("%CONNECT%", params["ConnectType"]); // Update titles pyS += "l = w.activeLayer()\n" - "l.setCurveTitle(0, '%1')\n" - "l.setTitle('%2')\n"; - - pyS = pyS.arg(wsName).arg(m_title.c_str()); + "l.setCurveTitle(0, ws.name())\n" + "l.setTitle(ws.getTitle())\n"; // Set logarithmic scale if required if ( logScale )