mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#970 Auto-Axis title now using vector name and unit.
This commit is contained in:
parent
3d1bad978f
commit
fd572b5c87
@ -71,15 +71,15 @@ void RicSummaryCurveSwitchAxisFeature::onActionTriggered(bool isChecked)
|
|||||||
|
|
||||||
for (RimSummaryCurve* summaryCurve : selectedSoloCurves)
|
for (RimSummaryCurve* summaryCurve : selectedSoloCurves)
|
||||||
{
|
{
|
||||||
RimDefines::PlotAxis plotAxis = summaryCurve->associatedPlotAxis();
|
RimDefines::PlotAxis plotAxis = summaryCurve->yAxis();
|
||||||
|
|
||||||
if ( plotAxis == RimDefines::PLOT_AXIS_LEFT )
|
if ( plotAxis == RimDefines::PLOT_AXIS_LEFT )
|
||||||
{
|
{
|
||||||
summaryCurve->setPlotAxis(RimDefines::PLOT_AXIS_RIGHT);
|
summaryCurve->setYAxis(RimDefines::PLOT_AXIS_RIGHT);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summaryCurve->setPlotAxis(RimDefines::PLOT_AXIS_LEFT);
|
summaryCurve->setYAxis(RimDefines::PLOT_AXIS_LEFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
summaryCurve->updateQwtPlotAxis();
|
summaryCurve->updateQwtPlotAxis();
|
||||||
|
@ -259,7 +259,7 @@ std::vector<double> RimSummaryCurve::yPlotValues() const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimSummaryCurve::setPlotAxis(RimDefines::PlotAxis plotAxis)
|
void RimSummaryCurve::setYAxis(RimDefines::PlotAxis plotAxis)
|
||||||
{
|
{
|
||||||
m_plotAxis = plotAxis;
|
m_plotAxis = plotAxis;
|
||||||
}
|
}
|
||||||
@ -267,7 +267,7 @@ void RimSummaryCurve::setPlotAxis(RimDefines::PlotAxis plotAxis)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimDefines::PlotAxis RimSummaryCurve::associatedPlotAxis() const
|
RimDefines::PlotAxis RimSummaryCurve::yAxis() const
|
||||||
{
|
{
|
||||||
return m_plotAxis();
|
return m_plotAxis();
|
||||||
}
|
}
|
||||||
@ -384,7 +384,7 @@ void RimSummaryCurve::onLoadDataAndUpdate()
|
|||||||
|
|
||||||
RimSummaryPlot* plot = nullptr;
|
RimSummaryPlot* plot = nullptr;
|
||||||
firstAncestorOrThisOfType(plot);
|
firstAncestorOrThisOfType(plot);
|
||||||
bool isLogCurve = plot->isLogarithmicScaleEnabled(this->associatedPlotAxis());
|
bool isLogCurve = plot->isLogarithmicScaleEnabled(this->yAxis());
|
||||||
|
|
||||||
if(this->curveData(&dateTimes, &values))
|
if(this->curveData(&dateTimes, &values))
|
||||||
{
|
{
|
||||||
@ -444,7 +444,7 @@ void RimSummaryCurve::updateQwtPlotAxis()
|
|||||||
{
|
{
|
||||||
if (m_qwtPlotCurve)
|
if (m_qwtPlotCurve)
|
||||||
{
|
{
|
||||||
if (this->associatedPlotAxis() == RimDefines::PLOT_AXIS_LEFT)
|
if (this->yAxis() == RimDefines::PLOT_AXIS_LEFT)
|
||||||
{
|
{
|
||||||
m_qwtPlotCurve->setYAxis(QwtPlot::yLeft);
|
m_qwtPlotCurve->setYAxis(QwtPlot::yLeft);
|
||||||
}
|
}
|
||||||
|
@ -88,8 +88,8 @@ public:
|
|||||||
|
|
||||||
std::vector<double> yPlotValues() const;
|
std::vector<double> yPlotValues() const;
|
||||||
|
|
||||||
void setPlotAxis(RimDefines::PlotAxis plotAxis);
|
void setYAxis(RimDefines::PlotAxis plotAxis);
|
||||||
RimDefines::PlotAxis associatedPlotAxis() const;
|
RimDefines::PlotAxis yAxis() const;
|
||||||
void updateQwtPlotAxis();
|
void updateQwtPlotAxis();
|
||||||
|
|
||||||
void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings);
|
void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings);
|
||||||
|
@ -255,7 +255,7 @@ void RimSummaryCurveFilter::fieldChangedByUi(const caf::PdmFieldHandle* changedF
|
|||||||
{
|
{
|
||||||
curve->updateCurveVisibility();
|
curve->updateCurveVisibility();
|
||||||
}
|
}
|
||||||
if (m_parentQwtPlot) m_parentQwtPlot->replot();
|
updatePlotAxisForCurves();
|
||||||
}
|
}
|
||||||
else if (changedField == &m_plotAxis)
|
else if (changedField == &m_plotAxis)
|
||||||
{
|
{
|
||||||
@ -431,7 +431,7 @@ void RimSummaryCurveFilter::updatePlotAxisForCurves()
|
|||||||
{
|
{
|
||||||
for (RimSummaryCurve* curve : m_curves)
|
for (RimSummaryCurve* curve : m_curves)
|
||||||
{
|
{
|
||||||
curve->setPlotAxis(m_plotAxis());
|
curve->setYAxis(m_plotAxis());
|
||||||
curve->updateQwtPlotAxis();
|
curve->updateQwtPlotAxis();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -466,6 +466,21 @@ std::set<std::string> RimSummaryCurveFilter::unitNames()
|
|||||||
return unitNames;
|
return unitNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::vector<RimSummaryCurve*> RimSummaryCurveFilter::curves()
|
||||||
|
{
|
||||||
|
std::vector<RimSummaryCurve*> myCurves;
|
||||||
|
for ( RimSummaryCurve* curve: m_curves)
|
||||||
|
{
|
||||||
|
myCurves.push_back(curve);
|
||||||
|
}
|
||||||
|
|
||||||
|
return myCurves;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -541,7 +556,7 @@ void RimSummaryCurveFilter::createCurvesFromCurveDefinitions(const std::set<std:
|
|||||||
curve->setParentQwtPlot(m_parentQwtPlot);
|
curve->setParentQwtPlot(m_parentQwtPlot);
|
||||||
curve->setSummaryCase(currentCase);
|
curve->setSummaryCase(currentCase);
|
||||||
curve->setSummaryAddress(caseAddrPair.second);
|
curve->setSummaryAddress(caseAddrPair.second);
|
||||||
curve->setPlotAxis(m_plotAxis());
|
curve->setYAxis(m_plotAxis());
|
||||||
curve->applyCurveAutoNameSettings(*m_curveNameConfig());
|
curve->applyCurveAutoNameSettings(*m_curveNameConfig());
|
||||||
|
|
||||||
m_curves.push_back(curve);
|
m_curves.push_back(curve);
|
||||||
|
@ -68,6 +68,7 @@ public:
|
|||||||
|
|
||||||
RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const;
|
RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const;
|
||||||
std::set<std::string> unitNames();
|
std::set<std::string> unitNames();
|
||||||
|
std::vector<RimSummaryCurve*> curves();
|
||||||
|
|
||||||
void updateCaseNameHasChanged();
|
void updateCaseNameHasChanged();
|
||||||
|
|
||||||
|
@ -191,24 +191,41 @@ void RimSummaryPlotYAxisFormater::applyYAxisPropertiesToPlot(RiuSummaryQwtPlot*
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QString RimSummaryPlotYAxisFormater::autoAxisTitle() const
|
QString RimSummaryPlotYAxisFormater::autoAxisTitle() const
|
||||||
{
|
{
|
||||||
std::set<std::string> unitNames;
|
std::map<std::string, std::set<std::string> > unitToQuantityNameMap;
|
||||||
|
|
||||||
for (RimSummaryCurve* rimCurve : m_singleCurves)
|
for ( RimSummaryCurve* rimCurve : m_singleCurves )
|
||||||
{
|
{
|
||||||
if (rimCurve->isCurveVisible()) unitNames.insert(rimCurve->unitName());
|
if ( rimCurve->isCurveVisible() && rimCurve->yAxis() == this->m_axisProperties->axis() )
|
||||||
|
{
|
||||||
|
unitToQuantityNameMap[rimCurve->unitName()].insert(rimCurve->summaryAddress().quantityName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RimSummaryCurveFilter* curveFilter : m_curveFilters)
|
for ( RimSummaryCurveFilter* curveFilter : m_curveFilters )
|
||||||
{
|
{
|
||||||
std::set<std::string> filterUnitNames = curveFilter->unitNames();
|
if ( curveFilter->isCurvesVisible() )
|
||||||
unitNames.insert(filterUnitNames.begin(), filterUnitNames.end());
|
{
|
||||||
|
std::vector<RimSummaryCurve*> curveFilterCurves = curveFilter->curves();
|
||||||
|
|
||||||
|
for ( RimSummaryCurve* rimCurve : curveFilterCurves )
|
||||||
|
{
|
||||||
|
if ( rimCurve->isCurveVisible() && rimCurve->yAxis() == this->m_axisProperties->axis() )
|
||||||
|
{
|
||||||
|
unitToQuantityNameMap[rimCurve->unitName()].insert(rimCurve->summaryAddress().quantityName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString assembledYAxisText;
|
QString assembledYAxisText;
|
||||||
|
|
||||||
for (const std::string& unitName : unitNames)
|
for ( auto unitIt : unitToQuantityNameMap )
|
||||||
{
|
{
|
||||||
assembledYAxisText += "[" + QString::fromStdString(unitName) + "] ";
|
for (const auto &quantIt: unitIt.second)
|
||||||
|
{
|
||||||
|
assembledYAxisText += QString::fromStdString(quantIt) + " ";
|
||||||
|
}
|
||||||
|
assembledYAxisText += "[" + QString::fromStdString(unitIt.first) + "] ";
|
||||||
}
|
}
|
||||||
|
|
||||||
return assembledYAxisText;
|
return assembledYAxisText;
|
||||||
|
@ -197,22 +197,17 @@ void RimSummaryPlot::updateAxis(RimDefines::PlotAxis plotAxis)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::vector<RimSummaryCurve*> curves = curvesForAxis(plotAxis);
|
if (hasVisibleCurvesForAxis(plotAxis))
|
||||||
|
|
||||||
std::vector<RimSummaryCurveFilter*> curveFiltersForAxis;
|
|
||||||
for (RimSummaryCurveFilter* cs : m_curveFilters)
|
|
||||||
{
|
{
|
||||||
if (cs->associatedPlotAxis() == plotAxis)
|
std::vector<RimSummaryCurve*> curves;
|
||||||
{
|
curves.insert(curves.begin(), m_curves.begin(), m_curves.end());
|
||||||
curveFiltersForAxis.push_back(cs);
|
|
||||||
}
|
std::vector<RimSummaryCurveFilter*> curveFilters;
|
||||||
}
|
curveFilters.insert(curveFilters.begin(), m_curveFilters.begin(), m_curveFilters.end());
|
||||||
|
|
||||||
if (curves.size() > 0)
|
|
||||||
{
|
|
||||||
m_qwtPlot->enableAxis(qwtAxis, true);
|
m_qwtPlot->enableAxis(qwtAxis, true);
|
||||||
|
|
||||||
RimSummaryPlotYAxisFormater calc(yAxisProperties, curves, curveFiltersForAxis);
|
RimSummaryPlotYAxisFormater calc(yAxisProperties, curves, curveFilters);
|
||||||
calc.applyYAxisPropertiesToPlot(m_qwtPlot);
|
calc.applyYAxisPropertiesToPlot(m_qwtPlot);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -234,7 +229,7 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::curvesForAxis(RimDefines::PlotAxis
|
|||||||
|
|
||||||
for (RimSummaryCurve* curve : childCurves)
|
for (RimSummaryCurve* curve : childCurves)
|
||||||
{
|
{
|
||||||
if (curve->associatedPlotAxis() == plotAxis)
|
if (curve->yAxis() == plotAxis)
|
||||||
{
|
{
|
||||||
curves.push_back(curve);
|
curves.push_back(curve);
|
||||||
}
|
}
|
||||||
@ -243,6 +238,30 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::curvesForAxis(RimDefines::PlotAxis
|
|||||||
return curves;
|
return curves;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RimSummaryPlot::hasVisibleCurvesForAxis(RimDefines::PlotAxis plotAxis) const
|
||||||
|
{
|
||||||
|
for (RimSummaryCurve* curve : m_curves)
|
||||||
|
{
|
||||||
|
if (curve->isCurveVisible() && curve->yAxis() == plotAxis) return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (RimSummaryCurveFilter * curveFilter : m_curveFilters)
|
||||||
|
{
|
||||||
|
if (curveFilter->isCurvesVisible())
|
||||||
|
{
|
||||||
|
for ( RimSummaryCurve* curve : curveFilter->curves() )
|
||||||
|
{
|
||||||
|
if ( curve->isCurveVisible() && curve->yAxis() == plotAxis ) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -101,6 +101,7 @@ private:
|
|||||||
|
|
||||||
void updateAxis(RimDefines::PlotAxis plotAxis);
|
void updateAxis(RimDefines::PlotAxis plotAxis);
|
||||||
std::vector<RimSummaryCurve*> curvesForAxis(RimDefines::PlotAxis plotAxis) const;
|
std::vector<RimSummaryCurve*> curvesForAxis(RimDefines::PlotAxis plotAxis) const;
|
||||||
|
bool hasVisibleCurvesForAxis(RimDefines::PlotAxis plotAxis) const;
|
||||||
|
|
||||||
void updateTimeAxis();
|
void updateTimeAxis();
|
||||||
void setZoomIntervalsInQwtPlot();
|
void setZoomIntervalsInQwtPlot();
|
||||||
|
Loading…
Reference in New Issue
Block a user