#6572 Trigger update of plot when deleting a Summary Curve

This commit is contained in:
Gaute Lindkvist 2020-09-25 10:31:51 +02:00
parent 5c4498db9f
commit 66ec3212c0
4 changed files with 33 additions and 20 deletions

View File

@ -48,7 +48,7 @@ CAF_PDM_SOURCE_INIT( RimSummaryCurveCollection, "RimSummaryCurveCollection" );
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimSummaryCurveCollection::RimSummaryCurveCollection() RimSummaryCurveCollection::RimSummaryCurveCollection()
: curvesReordered( this ) : curvesChanged( this )
{ {
CAF_PDM_InitObject( "Summary Curves", ":/SummaryCurveFilter16x16.png", "", "" ); CAF_PDM_InitObject( "Summary Curves", ":/SummaryCurveFilter16x16.png", "", "" );
@ -476,7 +476,16 @@ void RimSummaryCurveCollection::defineEditorAttribute( const caf::PdmFieldHandle
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryCurveCollection::onCurvesReordered( const SignalEmitter* emitter ) void RimSummaryCurveCollection::onCurvesReordered( const SignalEmitter* emitter )
{ {
curvesReordered.send(); curvesChanged.send();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurveCollection::onChildDeleted( caf::PdmChildArrayFieldHandle* childArray,
std::vector<caf::PdmObjectHandle*>& referringObjects )
{
curvesChanged.send();
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -42,7 +42,7 @@ class RimSummaryCurveCollection : public caf::PdmObject
CAF_PDM_HEADER_INIT; CAF_PDM_HEADER_INIT;
private: private:
caf::Signal<> curvesReordered; caf::Signal<> curvesChanged;
public: public:
RimSummaryCurveCollection(); RimSummaryCurveCollection();
@ -97,6 +97,8 @@ private:
caf::PdmUiEditorAttribute* attribute ) override; caf::PdmUiEditorAttribute* attribute ) override;
void onCurvesReordered( const SignalEmitter* emitter ); void onCurvesReordered( const SignalEmitter* emitter );
void onChildDeleted( caf::PdmChildArrayFieldHandle* childArray,
std::vector<caf::PdmObjectHandle*>& referringObjects ) override;
private: private:
friend class RimSummaryCrossPlot; friend class RimSummaryCrossPlot;

View File

@ -153,7 +153,7 @@ RimSummaryPlot::RimSummaryPlot()
CAF_PDM_InitFieldNoDefault( &m_summaryCurveCollection, "SummaryCurveCollection", "", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_summaryCurveCollection, "SummaryCurveCollection", "", "", "", "" );
m_summaryCurveCollection.uiCapability()->setUiTreeHidden( true ); m_summaryCurveCollection.uiCapability()->setUiTreeHidden( true );
m_summaryCurveCollection = new RimSummaryCurveCollection; m_summaryCurveCollection = new RimSummaryCurveCollection;
m_summaryCurveCollection->curvesReordered.connect( this, &RimSummaryPlot::onCurvesReordered ); m_summaryCurveCollection->curvesChanged.connect( this, &RimSummaryPlot::onCurveCollectionChanged );
CAF_PDM_InitFieldNoDefault( &m_ensembleCurveSetCollection, "EnsembleCurveSetCollection", "", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_ensembleCurveSetCollection, "EnsembleCurveSetCollection", "", "", "", "" );
m_ensembleCurveSetCollection.uiCapability()->setUiTreeHidden( true ); m_ensembleCurveSetCollection.uiCapability()->setUiTreeHidden( true );
@ -339,7 +339,7 @@ QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTi
populateTimeHistoryCurvesData( m_gridTimeHistoryCurves.childObjects(), &timeHistoryCurvesData ); populateTimeHistoryCurvesData( m_gridTimeHistoryCurves.childObjects(), &timeHistoryCurvesData );
// Export observed data // Export observed data
appendToExportData( out, {summaryCurvesObsData}, showTimeAsLongString ); appendToExportData( out, { summaryCurvesObsData }, showTimeAsLongString );
std::vector<CurvesData> exportData( 2 ); std::vector<CurvesData> exportData( 2 );
@ -358,7 +358,7 @@ QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTi
CurvesData asciiCurvesData; CurvesData asciiCurvesData;
populateAsciiDataCurvesData( m_asciiDataCurves.childObjects(), &asciiCurvesData ); populateAsciiDataCurvesData( m_asciiDataCurves.childObjects(), &asciiCurvesData );
appendToExportData( out, {asciiCurvesData}, showTimeAsLongString ); appendToExportData( out, { asciiCurvesData }, showTimeAsLongString );
} }
return out; return out;
@ -1234,7 +1234,7 @@ void RimSummaryPlot::removeCurve( RimSummaryCurve* curve )
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryPlot::deleteCurve( RimSummaryCurve* curve ) void RimSummaryPlot::deleteCurve( RimSummaryCurve* curve )
{ {
deleteCurves( {curve} ); deleteCurves( { curve } );
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -1411,6 +1411,12 @@ void RimSummaryPlot::updateStackedCurveData()
{ {
updateStackedCurveDataForAxis( RiaDefines::PlotAxis::PLOT_AXIS_LEFT ); updateStackedCurveDataForAxis( RiaDefines::PlotAxis::PLOT_AXIS_LEFT );
updateStackedCurveDataForAxis( RiaDefines::PlotAxis::PLOT_AXIS_RIGHT ); updateStackedCurveDataForAxis( RiaDefines::PlotAxis::PLOT_AXIS_RIGHT );
if ( m_plotWidget )
{
reattachAllCurves();
m_plotWidget->scheduleReplot();
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -1471,10 +1477,6 @@ void RimSummaryPlot::updateStackedCurveDataForAxis( RiaDefines::PlotAxis plotAxi
zPos -= 1.0; zPos -= 1.0;
} }
} }
if ( m_plotWidget )
{
m_plotWidget->scheduleReplot();
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@ -1625,7 +1627,7 @@ void RimSummaryPlot::updateZoomFromQwt()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::set<RimPlotAxisPropertiesInterface*> RimSummaryPlot::allPlotAxes() const std::set<RimPlotAxisPropertiesInterface*> RimSummaryPlot::allPlotAxes() const
{ {
return {m_timeAxisProperties, m_bottomAxisProperties, m_leftYAxisProperties, m_rightYAxisProperties}; return { m_timeAxisProperties, m_bottomAxisProperties, m_leftYAxisProperties, m_rightYAxisProperties };
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -2134,7 +2136,7 @@ void RimSummaryPlot::handleKeyPressEvent( QKeyEvent* keyEvent )
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryPlot::onCurvesReordered( const SignalEmitter* emitter ) void RimSummaryPlot::onCurveCollectionChanged( const SignalEmitter* emitter )
{ {
updateStackedCurveData(); updateStackedCurveData();
} }
@ -2257,13 +2259,13 @@ void populateTimeHistoryCurvesData( std::vector<RimGridTimeHistoryCurve*> curves
if ( curveCaseName == curvesData->caseNames[i] ) casePosInList = i; if ( curveCaseName == curvesData->caseNames[i] ) casePosInList = i;
} }
CurveData curveData = {curve->curveExportDescription(), RifEclipseSummaryAddress(), curve->yValues()}; CurveData curveData = { curve->curveExportDescription(), RifEclipseSummaryAddress(), curve->yValues() };
if ( casePosInList == cvf::UNDEFINED_SIZE_T ) if ( casePosInList == cvf::UNDEFINED_SIZE_T )
{ {
curvesData->caseNames.push_back( curveCaseName ); curvesData->caseNames.push_back( curveCaseName );
curvesData->timeSteps.push_back( curve->timeStepValues() ); curvesData->timeSteps.push_back( curve->timeStepValues() );
curvesData->allCurveData.push_back( std::vector<CurveData>( {curveData} ) ); curvesData->allCurveData.push_back( std::vector<CurveData>( { curveData } ) );
} }
else else
{ {
@ -2289,13 +2291,13 @@ void populateAsciiDataCurvesData( std::vector<RimAsciiDataCurve*> curves, Curves
size_t casePosInList = cvf::UNDEFINED_SIZE_T; size_t casePosInList = cvf::UNDEFINED_SIZE_T;
CurveData curveData = {curve->curveExportDescription(), RifEclipseSummaryAddress(), curve->yValues()}; CurveData curveData = { curve->curveExportDescription(), RifEclipseSummaryAddress(), curve->yValues() };
if ( casePosInList == cvf::UNDEFINED_SIZE_T ) if ( casePosInList == cvf::UNDEFINED_SIZE_T )
{ {
curvesData->caseNames.push_back( "" ); curvesData->caseNames.push_back( "" );
curvesData->timeSteps.push_back( curve->timeSteps() ); curvesData->timeSteps.push_back( curve->timeSteps() );
curvesData->allCurveData.push_back( std::vector<CurveData>( {curveData} ) ); curvesData->allCurveData.push_back( std::vector<CurveData>( { curveData } ) );
} }
else else
{ {
@ -2332,7 +2334,7 @@ void populateSummaryCurvesData( std::vector<RimSummaryCurve*> curves, SummaryCur
if ( curveCaseName == curvesData->caseNames[i] ) casePosInList = i; if ( curveCaseName == curvesData->caseNames[i] ) casePosInList = i;
} }
CurveData curveData = {curve->curveExportDescription(), curve->summaryAddressY(), curve->valuesY()}; CurveData curveData = { curve->curveExportDescription(), curve->summaryAddressY(), curve->valuesY() };
CurveData errorCurveData; CurveData errorCurveData;
// Error data // Error data
@ -2353,7 +2355,7 @@ void populateSummaryCurvesData( std::vector<RimSummaryCurve*> curves, SummaryCur
// 1. Case is not referenced before, or // 1. Case is not referenced before, or
// 2. We have calculated data, and it we cannot assume identical time axis // 2. We have calculated data, and it we cannot assume identical time axis
auto curveDataList = std::vector<CurveData>( {curveData} ); auto curveDataList = std::vector<CurveData>( { curveData } );
if ( hasErrorData ) curveDataList.push_back( errorCurveData ); if ( hasErrorData ) curveDataList.push_back( errorCurveData );
curvesData->caseNames.push_back( curveCaseName ); curvesData->caseNames.push_back( curveCaseName );

View File

@ -192,7 +192,7 @@ private:
void handleKeyPressEvent( QKeyEvent* keyEvent ) override; void handleKeyPressEvent( QKeyEvent* keyEvent ) override;
void onCurvesReordered( const SignalEmitter* emitter ); void onCurveCollectionChanged( const SignalEmitter* emitter );
protected: protected:
// Overridden PDM methods // Overridden PDM methods