Skip to content

Commit

Permalink
Add normalization options to graph context menu.
Browse files Browse the repository at this point in the history
Refs #10639
  • Loading branch information
martyngigg committed Nov 28, 2014
1 parent 5fa1580 commit ea5a9a1
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 2 deletions.
5 changes: 5 additions & 0 deletions Code/Mantid/MantidPlot/src/ApplicationWindow.cpp
Expand Up @@ -10054,6 +10054,7 @@ void ApplicationWindow::showGraphContextMenu()

QMenu axes(this);
QMenu colour(this);
QMenu normalization(this);
QMenu exports(this);
QMenu copy(this);
QMenu prints(this);
Expand Down Expand Up @@ -10097,6 +10098,10 @@ void ApplicationWindow::showGraphContextMenu()
colour.insertItem(tr("&Linear"), ag, SLOT(linColor()));
cm.insertItem(tr("&Color Bar"), &colour);

normalization.insertItem(tr("N&one"), ag,SLOT(noNormalization()));
normalization.insertItem(tr("&Bin Width"), ag, SLOT(binWidthNormalization()));
cm.insertItem(tr("&Normalization"), &normalization);

cm.insertSeparator();
copy.insertItem(tr("&Layer"), this, SLOT(copyActiveLayer()));
copy.insertItem(tr("&Window"), plot, SLOT(copyAllLayers()));
Expand Down
32 changes: 31 additions & 1 deletion Code/Mantid/MantidPlot/src/Graph.cpp
Expand Up @@ -5978,7 +5978,33 @@ void Graph::enableFixedAspectRatio(bool on)
}
#else
UNUSED_ARG(on)
#endif
#endif
}

/**
* Turn off any normalization
*/
void Graph::noNormalization()
{
if(!m_isDistribution) return; // Nothing to do

m_isDistribution = false;
updateDataCurves();
d_plot->updateAxes();
notifyChanges();
}

/**
* Turn on normalization by bin width if it is appropriate
*/
void Graph::binWidthNormalization()
{
if(m_isDistribution) return; // Nothing to do

m_isDistribution = true;
updateDataCurves();
d_plot->updateAxes();
notifyChanges();
}

void Graph::setWaterfallXOffset(int offset)
Expand Down Expand Up @@ -6089,7 +6115,11 @@ void Graph::updateDataCurves()
if (DataCurve *c = dynamic_cast<DataCurve*>(pc))
c->loadData();
else if (MantidMatrixCurve *mc = dynamic_cast<MantidMatrixCurve*>(pc))
{
mc->setDrawAsDistribution(m_isDistribution);
mc->invalidateBoundingRect();
mc->loadData();
}
}
QApplication::restoreOverrideCursor();
}
Expand Down
6 changes: 5 additions & 1 deletion Code/Mantid/MantidPlot/src/Graph.h
Expand Up @@ -198,9 +198,13 @@ public slots:
void enablePanningMagnifier(bool on = true);
bool isFixedAspectRatioEnabled();
void enableFixedAspectRatio(bool on);

void noNormalization();
void binWidthNormalization();

// Are MantidCurves plotted as distributions in this Graph
bool isDistribution()const{return m_isDistribution;}


//! Accessor method for #d_plot.
Plot* plotWidget(){return d_plot;};
Expand Down

0 comments on commit ea5a9a1

Please sign in to comment.