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)
|
||||
{
|
||||
RimDefines::PlotAxis plotAxis = summaryCurve->associatedPlotAxis();
|
||||
RimDefines::PlotAxis plotAxis = summaryCurve->yAxis();
|
||||
|
||||
if ( plotAxis == RimDefines::PLOT_AXIS_LEFT )
|
||||
{
|
||||
summaryCurve->setPlotAxis(RimDefines::PLOT_AXIS_RIGHT);
|
||||
summaryCurve->setYAxis(RimDefines::PLOT_AXIS_RIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
summaryCurve->setPlotAxis(RimDefines::PLOT_AXIS_LEFT);
|
||||
summaryCurve->setYAxis(RimDefines::PLOT_AXIS_LEFT);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
@ -267,7 +267,7 @@ void RimSummaryCurve::setPlotAxis(RimDefines::PlotAxis plotAxis)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimDefines::PlotAxis RimSummaryCurve::associatedPlotAxis() const
|
||||
RimDefines::PlotAxis RimSummaryCurve::yAxis() const
|
||||
{
|
||||
return m_plotAxis();
|
||||
}
|
||||
@ -384,7 +384,7 @@ void RimSummaryCurve::onLoadDataAndUpdate()
|
||||
|
||||
RimSummaryPlot* plot = nullptr;
|
||||
firstAncestorOrThisOfType(plot);
|
||||
bool isLogCurve = plot->isLogarithmicScaleEnabled(this->associatedPlotAxis());
|
||||
bool isLogCurve = plot->isLogarithmicScaleEnabled(this->yAxis());
|
||||
|
||||
if(this->curveData(&dateTimes, &values))
|
||||
{
|
||||
@ -444,7 +444,7 @@ void RimSummaryCurve::updateQwtPlotAxis()
|
||||
{
|
||||
if (m_qwtPlotCurve)
|
||||
{
|
||||
if (this->associatedPlotAxis() == RimDefines::PLOT_AXIS_LEFT)
|
||||
if (this->yAxis() == RimDefines::PLOT_AXIS_LEFT)
|
||||
{
|
||||
m_qwtPlotCurve->setYAxis(QwtPlot::yLeft);
|
||||
}
|
||||
|
@ -88,8 +88,8 @@ public:
|
||||
|
||||
std::vector<double> yPlotValues() const;
|
||||
|
||||
void setPlotAxis(RimDefines::PlotAxis plotAxis);
|
||||
RimDefines::PlotAxis associatedPlotAxis() const;
|
||||
void setYAxis(RimDefines::PlotAxis plotAxis);
|
||||
RimDefines::PlotAxis yAxis() const;
|
||||
void updateQwtPlotAxis();
|
||||
|
||||
void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings);
|
||||
|
@ -255,7 +255,7 @@ void RimSummaryCurveFilter::fieldChangedByUi(const caf::PdmFieldHandle* changedF
|
||||
{
|
||||
curve->updateCurveVisibility();
|
||||
}
|
||||
if (m_parentQwtPlot) m_parentQwtPlot->replot();
|
||||
updatePlotAxisForCurves();
|
||||
}
|
||||
else if (changedField == &m_plotAxis)
|
||||
{
|
||||
@ -431,7 +431,7 @@ void RimSummaryCurveFilter::updatePlotAxisForCurves()
|
||||
{
|
||||
for (RimSummaryCurve* curve : m_curves)
|
||||
{
|
||||
curve->setPlotAxis(m_plotAxis());
|
||||
curve->setYAxis(m_plotAxis());
|
||||
curve->updateQwtPlotAxis();
|
||||
}
|
||||
|
||||
@ -466,6 +466,21 @@ std::set<std::string> RimSummaryCurveFilter::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->setSummaryCase(currentCase);
|
||||
curve->setSummaryAddress(caseAddrPair.second);
|
||||
curve->setPlotAxis(m_plotAxis());
|
||||
curve->setYAxis(m_plotAxis());
|
||||
curve->applyCurveAutoNameSettings(*m_curveNameConfig());
|
||||
|
||||
m_curves.push_back(curve);
|
||||
|
@ -68,6 +68,7 @@ public:
|
||||
|
||||
RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const;
|
||||
std::set<std::string> unitNames();
|
||||
std::vector<RimSummaryCurve*> curves();
|
||||
|
||||
void updateCaseNameHasChanged();
|
||||
|
||||
|
@ -191,24 +191,41 @@ void RimSummaryPlotYAxisFormater::applyYAxisPropertiesToPlot(RiuSummaryQwtPlot*
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
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();
|
||||
unitNames.insert(filterUnitNames.begin(), filterUnitNames.end());
|
||||
if ( curveFilter->isCurvesVisible() )
|
||||
{
|
||||
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;
|
||||
|
||||
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;
|
||||
|
@ -197,22 +197,17 @@ void RimSummaryPlot::updateAxis(RimDefines::PlotAxis plotAxis)
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<RimSummaryCurve*> curves = curvesForAxis(plotAxis);
|
||||
|
||||
std::vector<RimSummaryCurveFilter*> curveFiltersForAxis;
|
||||
for (RimSummaryCurveFilter* cs : m_curveFilters)
|
||||
if (hasVisibleCurvesForAxis(plotAxis))
|
||||
{
|
||||
if (cs->associatedPlotAxis() == plotAxis)
|
||||
{
|
||||
curveFiltersForAxis.push_back(cs);
|
||||
}
|
||||
}
|
||||
std::vector<RimSummaryCurve*> curves;
|
||||
curves.insert(curves.begin(), m_curves.begin(), m_curves.end());
|
||||
|
||||
std::vector<RimSummaryCurveFilter*> curveFilters;
|
||||
curveFilters.insert(curveFilters.begin(), m_curveFilters.begin(), m_curveFilters.end());
|
||||
|
||||
if (curves.size() > 0)
|
||||
{
|
||||
m_qwtPlot->enableAxis(qwtAxis, true);
|
||||
|
||||
RimSummaryPlotYAxisFormater calc(yAxisProperties, curves, curveFiltersForAxis);
|
||||
RimSummaryPlotYAxisFormater calc(yAxisProperties, curves, curveFilters);
|
||||
calc.applyYAxisPropertiesToPlot(m_qwtPlot);
|
||||
}
|
||||
else
|
||||
@ -234,7 +229,7 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::curvesForAxis(RimDefines::PlotAxis
|
||||
|
||||
for (RimSummaryCurve* curve : childCurves)
|
||||
{
|
||||
if (curve->associatedPlotAxis() == plotAxis)
|
||||
if (curve->yAxis() == plotAxis)
|
||||
{
|
||||
curves.push_back(curve);
|
||||
}
|
||||
@ -243,6 +238,30 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::curvesForAxis(RimDefines::PlotAxis
|
||||
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);
|
||||
std::vector<RimSummaryCurve*> curvesForAxis(RimDefines::PlotAxis plotAxis) const;
|
||||
bool hasVisibleCurvesForAxis(RimDefines::PlotAxis plotAxis) const;
|
||||
|
||||
void updateTimeAxis();
|
||||
void setZoomIntervalsInQwtPlot();
|
||||
|
Loading…
Reference in New Issue
Block a user