diff --git a/ApplicationCode/ProjectDataModel/Summary/RimAsciiDataCurve.cpp b/ApplicationCode/ProjectDataModel/Summary/RimAsciiDataCurve.cpp index 73ec288923..aa068a1d4d 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimAsciiDataCurve.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimAsciiDataCurve.cpp @@ -235,3 +235,24 @@ bool RimAsciiDataCurve::curveData(std::vector* timeSteps, std::vector return true; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimAsciiDataCurve::fieldChangedByUi(const caf::PdmFieldHandle * changedField, const QVariant & oldValue, const QVariant & newValue) +{ + RimPlotCurve::fieldChangedByUi(changedField, oldValue, newValue); + + RimSummaryPlot* plot = nullptr; + firstAncestorOrThisOfTypeAsserted(plot); + + if (changedField == &m_plotAxis) + { + updateQwtPlotAxis(); + plot->updateAxes(); + } + if (changedField == &m_showCurve) + { + plot->updateAxes(); + } +} + diff --git a/ApplicationCode/ProjectDataModel/Summary/RimAsciiDataCurve.h b/ApplicationCode/ProjectDataModel/Summary/RimAsciiDataCurve.h index e68d5c322c..9685582d34 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimAsciiDataCurve.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimAsciiDataCurve.h @@ -72,6 +72,8 @@ protected: private: bool curveData(std::vector* timeSteps, std::vector* values) const; + virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override; + private: // Fields caf::PdmField< caf::AppEnum< RiaDefines::PlotAxis > > m_plotAxis; diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurvesCalculator.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurvesCalculator.cpp index fab8dc33ec..046913a3f9 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurvesCalculator.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurvesCalculator.cpp @@ -24,6 +24,7 @@ #include "RimSummaryCurve.h" #include "RimSummaryCurveFilter.h" #include "RimSummaryYAxisProperties.h" +#include "RimAsciiDataCurve.h" #include "RiuSummaryQwtPlot.h" @@ -98,10 +99,12 @@ public: /// //-------------------------------------------------------------------------------------------------- RimSummaryPlotYAxisFormatter::RimSummaryPlotYAxisFormatter(RimSummaryYAxisProperties* axisProperties, - const std::vector& curves, + const std::vector& summaryCurves, + const std::vector& asciiCurves, const std::set& timeHistoryCurveQuantities) : m_axisProperties(axisProperties), - m_singleCurves(curves), + m_summaryCurves(summaryCurves), + m_asciiDataCurves(asciiCurves), m_timeHistoryCurveQuantities(timeHistoryCurveQuantities) { } @@ -193,7 +196,7 @@ QString RimSummaryPlotYAxisFormatter::autoAxisTitle() const { std::map > unitToQuantityNameMap; - for ( RimSummaryCurve* rimCurve : m_singleCurves ) + for ( RimSummaryCurve* rimCurve : m_summaryCurves ) { if ( rimCurve->yAxis() == this->m_axisProperties->plotAxisType() ) { diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurvesCalculator.h b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurvesCalculator.h index 9b013535fc..2f23e45b1a 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurvesCalculator.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurvesCalculator.h @@ -22,6 +22,7 @@ #include #include +class RimAsciiDataCurve; class RimSummaryCurve; class RimSummaryCurveFilter; class RimSummaryYAxisProperties; @@ -34,7 +35,8 @@ class RimSummaryPlotYAxisFormatter { public: RimSummaryPlotYAxisFormatter(RimSummaryYAxisProperties* axisProperties, - const std::vector& curves, + const std::vector& summaryCurves, + const std::vector& asciiCurves, const std::set& timeHistoryCurveQuantities); void applyYAxisPropertiesToPlot(RiuSummaryQwtPlot* qwtPlot); @@ -43,9 +45,10 @@ private: QString autoAxisTitle() const; private: - RimSummaryYAxisProperties* m_axisProperties; - const std::vector m_singleCurves; - const std::set m_timeHistoryCurveQuantities; + RimSummaryYAxisProperties* m_axisProperties; + const std::vector m_summaryCurves; + const std::vector m_asciiDataCurves; + const std::set m_timeHistoryCurveQuantities; }; diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp index 60c2af681a..39fc4b8fe9 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp @@ -457,7 +457,10 @@ void RimSummaryPlot::updateAxis(RiaDefines::PlotAxis plotAxis) timeHistoryQuantities.insert(c->quantityName()); } - RimSummaryPlotYAxisFormatter calc(yAxisProperties, visibleSummaryCurvesForAxis(plotAxis), timeHistoryQuantities); + RimSummaryPlotYAxisFormatter calc(yAxisProperties, + visibleSummaryCurvesForAxis(plotAxis), + visibleAsciiDataCurvesForAxis(plotAxis), + timeHistoryQuantities); calc.applyYAxisPropertiesToPlot(m_qwtPlot); } else @@ -492,6 +495,13 @@ void RimSummaryPlot::updateZoomForAxis(RiaDefines::PlotAxis plotAxis) plotCurves.push_back(c->qwtPlotCurve()); } + for (RimAsciiDataCurve* c : visibleAsciiDataCurvesForAxis(plotAxis)) + { + std::vector curveValues = c->yValues(); + yValues.insert(yValues.end(), curveValues.begin(), curveValues.end()); + plotCurves.push_back(c->qwtPlotCurve()); + } + double min, max; RimSummaryPlotYAxisRangeCalculator calc(plotCurves, yValues); calc.computeYRange(&min, &max); @@ -551,6 +561,11 @@ bool RimSummaryPlot::hasVisibleCurvesForAxis(RiaDefines::PlotAxis plotAxis) cons return true; } + if (visibleAsciiDataCurvesForAxis(plotAxis).size() > 0) + { + return true; + } + return false; } @@ -593,6 +608,24 @@ std::vector RimSummaryPlot::visibleTimeHistoryCurvesFo return curves; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +std::vector RimSummaryPlot::visibleAsciiDataCurvesForAxis(RiaDefines::PlotAxis plotAxis) const +{ + std::vector curves; + + for (auto c : m_asciiDataCurves) + { + if (c->isCurveVisible() && c->yAxis() == plotAxis) + { + curves.push_back(c); + } + } + + return curves; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.h b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.h index 2137efb8a1..29b5ef4df2 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.h @@ -105,6 +105,7 @@ protected: private: std::vector visibleSummaryCurvesForAxis(RiaDefines::PlotAxis plotAxis) const; std::vector visibleTimeHistoryCurvesForAxis(RiaDefines::PlotAxis plotAxis) const; + std::vector visibleAsciiDataCurvesForAxis(RiaDefines::PlotAxis plotAxis) const; bool hasVisibleCurvesForAxis(RiaDefines::PlotAxis plotAxis) const; RimSummaryYAxisProperties* yAxisPropertiesForAxis(RiaDefines::PlotAxis plotAxis) const;