From 2fe290bbce485d33297482a7cb77cd6e0dd2be75 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Wed, 18 Oct 2023 16:53:31 +0200 Subject: [PATCH] Regression Curve: Clear and hide regression curve if no source data is available --- .../RimSummaryRegressionAnalysisCurve.cpp | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryRegressionAnalysisCurve.cpp b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryRegressionAnalysisCurve.cpp index 767ad2df54..5264c7637e 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryRegressionAnalysisCurve.cpp +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryRegressionAnalysisCurve.cpp @@ -160,27 +160,50 @@ void RimSummaryRegressionAnalysisCurve::onLoadDataAndUpdate( bool updateParentPl extractSourceCurveData(); updateDefaultValues(); + // Clear derived data + m_valuesX.clear(); + m_valuesY.clear(); + m_timeStepsX.clear(); + m_timeStepsY.clear(); + m_expressionText = "Undefined"; + std::vector xValues = m_sourceValuesX; std::vector yValues = m_sourceValuesY; std::vector timeStepsX = m_sourceTimeStepsX; std::vector timeStepsY = m_sourceTimeStepsY; - if ( yValues.empty() ) return; + QStringList errorMessages; + + if ( yValues.empty() ) + { + errorMessages += "No Y values found for regression curve."; + } if ( axisTypeX() == RiaDefines::HorizontalAxisType::SUMMARY_VECTOR ) { - if ( xValues.size() != yValues.size() ) return RiaLogging::error( "X value count and Y value count differs." ); - if ( xValues.size() != timeStepsX.size() ) return RiaLogging::error( "X value count and X time step count differs." ); - if ( xValues.size() != timeStepsY.size() ) return RiaLogging::error( "X value count and Y time step count differs." ); + if ( xValues.size() != yValues.size() ) errorMessages += "X value count and Y value count differs."; + if ( xValues.size() != timeStepsX.size() ) errorMessages += "X value count and X time step count differs."; + if ( xValues.size() != timeStepsY.size() ) errorMessages += "X value count and Y time step count differs."; if ( timeStepsX != timeStepsY ) { - return RiaLogging::error( + errorMessages += "Differences in time steps for X and Y axis detected. This is currently not supported. Make sure that the same " - "case is used for both axis." ); + "case is used for both axis."; } } + if ( !errorMessages.isEmpty() ) + { + // Call parent class to make sure the curve is removed from the plot + RimSummaryCurve::onLoadDataAndUpdate( updateParentPlot ); + + QString errMsg = errorMessages.join( "\n" ); + RiaLogging::error( errMsg ); + + return; + } + std::vector indicesToRemove; if ( axisTypeX() == RiaDefines::HorizontalAxisType::SUMMARY_VECTOR )