#13241 Avoid input focus change when grid cross plot regression curve is updated

This commit is contained in:
Magne Sjaastad authored and GitHub committed 2025-11-28 07:21:26 +01:00
1 parent d7fe226114
commit f2d41691a1
3 files changed
+37 -14

No files matched your search

@@ -358,6 +358,40 @@ void RimGridCrossPlotDataSet::detachAllCurves()
}
}
//--------------------------------------------------------------------------------------------------
/// Minimal update of regression curves without updateConnectedEditors that causes change of input focus
//--------------------------------------------------------------------------------------------------
void RimGridCrossPlotDataSet::updateRegressionCurves()
{
if ( !m_case() ) return;
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>( m_case.value() );
if ( !eclipseCase ) return;
std::map<int, cvf::UByteArray> timeStepCellVisibilityMap = calculateCellVisibility( eclipseCase );
RigEclipseCrossPlotResult result = RigEclipseCrossPlotDataExtractor::extract( eclipseCase->eclipseCaseData(),
m_timeStep(),
*m_xAxisProperty,
*m_yAxisProperty,
m_grouping(),
*m_groupingProperty,
timeStepCellVisibilityMap );
if ( m_crossPlotRegressionCurves.size() != m_groupedResults.size() )
{
destroyRegressionCurves();
}
if ( m_crossPlotRegressionCurves.empty() )
{
createRegressionCurves( result );
}
else
{
fillCurveDataInExistingRegressionCurves( result );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -1609,17 +1643,6 @@ void RimGridCrossPlotDataSet::curveAppearanceChanged( const caf::SignalEmitter*
triggerPlotNameUpdateAndReplot();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimGridCrossPlotDataSet::onChildrenUpdated( caf::PdmChildArrayFieldHandle* childArray, std::vector<caf::PdmObjectHandle*>& updatedObjects )
{
if ( childArray == &m_crossPlotRegressionCurves )
{
triggerPlotNameUpdateAndReplot();
}
}
CAF_PDM_SOURCE_INIT( RimGridCrossPlotDataSetNameConfig, "RimGridCrossPlotCurveSetNameConfig" );
//--------------------------------------------------------------------------------------------------