Fix crashes in Grid Cross Plot when deleting curve sets

This commit is contained in:
Gaute Lindkvist 2019-03-27 09:39:13 +01:00
parent 8173cb88ee
commit 2b2323a1b6
2 changed files with 11 additions and 3 deletions

View File

@ -97,7 +97,7 @@ int RimGridCrossPlotCurve::groupIndex() const
//--------------------------------------------------------------------------------------------------
size_t RimGridCrossPlotCurve::sampleCount() const
{
return m_qwtPlotCurve->dataSize();
return m_qwtPlotCurve ? m_qwtPlotCurve->dataSize() : 0;
}
//--------------------------------------------------------------------------------------------------

View File

@ -501,6 +501,14 @@ void RimGridCrossPlotCurveSet::onLoadDataAndUpdate(bool updateParentPlot)
void RimGridCrossPlotCurveSet::assignCurveDataGroups(const RigEclipseCrossPlotResult& result)
{
m_groupedResults.clear();
if (groupingEnabled() &&
(result.groupValuesContinuous.empty() && result.groupValuesDiscrete.empty()))
{
// Basis for group determination (i.e. formation list) may have been deleted since the grouping was assigned.
m_grouping = NO_GROUPING;
}
if (!groupingEnabled())
{
m_groupedResults[0] = result;
@ -647,7 +655,7 @@ size_t RimGridCrossPlotCurveSet::visibleCurveCount() const
size_t visibleCurves = 0;
for (auto curve : m_crossPlotCurves)
{
if (curve->isCurveVisible()) visibleCurves++;
if (curve && curve->isCurveVisible()) visibleCurves++;
}
return visibleCurves;
}
@ -660,7 +668,7 @@ size_t RimGridCrossPlotCurveSet::sampleCount() const
size_t sampleCount = 0;
for (auto curve : m_crossPlotCurves)
{
if (curve->isCurveVisible()) sampleCount += curve->sampleCount();
if (curve && curve->isCurveVisible()) sampleCount += curve->sampleCount();
}
return sampleCount;
}