Newer
Older
m_previewCurve->attach(m_plot);
}
setupScaleEngine(curveData);
m_previewCurve->setVisible(true);
m_plot->replot();
m_plot->setTitle("Preview Plot");
m_plot->setAxisTitle(QwtPlot::xBottom, curveData.getXAxisLabel());
m_plot->setAxisTitle(QwtPlot::yLeft, curveData.getYAxisLabel());
/**
Gets the dimension index corresponding to the lineviewers preview plot x axis.
@return the index.
*/
int LineViewer::getXAxisDimensionIndex() const {
MantidQwtIMDWorkspaceData curveData(m_ws, isLogScaledY(), m_start, m_end,
m_lineOptions->getNormalization());
curveData.setPreviewMode(true);
curveData.setPlotAxisChoice(m_lineOptions->getPlotAxis());
return curveData.currentPlotXAxis();
}
/**
* Getter for the log scaled status.
* @return True if and only if the y-axis is log scaled.
*/
bool LineViewer::isLogScaledY() const { return m_lineOptions->isLogScaledY(); }
//-----------------------------------------------------------------------------
/** Calculate and show the full (integrated) line, using the latest
* integrated workspace. The apply() method must have been called
* before calling this. */
void LineViewer::showFull() {
if (!m_sliceWS)
return;
MatrixWorkspace_sptr sliceMatrix =
boost::dynamic_pointer_cast<MatrixWorkspace>(m_sliceWS);
if (sliceMatrix) {
const bool distribution(false);
QwtWorkspaceSpectrumData curveData(*sliceMatrix, 0, isLogScaledY(),
distribution);
m_fullCurve->setData(curveData);
m_plot->setAxisTitle(QwtPlot::xBottom, curveData.getXAxisLabel());
m_plot->setAxisTitle(QwtPlot::yLeft, curveData.getYAxisLabel());
} else {
MantidQwtIMDWorkspaceData curveData(m_sliceWS, isLogScaledY(), VMD(), VMD(),
m_lineOptions->getNormalization());
curveData.setPreviewMode(false);
curveData.setPlotAxisChoice(m_lineOptions->getPlotAxis());
m_fullCurve->setData(curveData);
m_plot->setAxisTitle(QwtPlot::xBottom, curveData.getXAxisLabel());
m_plot->setAxisTitle(QwtPlot::yLeft, curveData.getYAxisLabel());
m_previewCurve->setVisible(false);
m_previewCurve->detach();
m_fullCurve->attach(m_plot);
}
m_fullCurve->setVisible(true);
m_plot->replot();
m_plot->setTitle("Integrated Line Plot");
//-----------------------------------------------------------------------------
/** Slot called when the options of the plot display change (normalization
* or plot axis.
* Refreshes the preview or full plot, whichever is visible.
*/
if (m_previewCurve->isVisible())
showPreview();
else
showFull();
}
/**
* Handler for the log10 toggle axis event.
*/
void LineViewer::onToggleLogYAxis() { refreshPlot(); }