From 66ec3212c0bbbcf7ece0e6b7acc3e0da019f5d4e Mon Sep 17 00:00:00 2001 From: Gaute Lindkvist Date: Fri, 25 Sep 2020 10:31:51 +0200 Subject: [PATCH] #6572 Trigger update of plot when deleting a Summary Curve --- .../Summary/RimSummaryCurveCollection.cpp | 13 +++++-- .../Summary/RimSummaryCurveCollection.h | 4 ++- .../Summary/RimSummaryPlot.cpp | 34 ++++++++++--------- .../ProjectDataModel/Summary/RimSummaryPlot.h | 2 +- 4 files changed, 33 insertions(+), 20 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.cpp index 9ffc7cc97b..80ac95d7e5 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.cpp @@ -48,7 +48,7 @@ CAF_PDM_SOURCE_INIT( RimSummaryCurveCollection, "RimSummaryCurveCollection" ); /// //-------------------------------------------------------------------------------------------------- RimSummaryCurveCollection::RimSummaryCurveCollection() - : curvesReordered( this ) + : curvesChanged( this ) { CAF_PDM_InitObject( "Summary Curves", ":/SummaryCurveFilter16x16.png", "", "" ); @@ -476,7 +476,16 @@ void RimSummaryCurveCollection::defineEditorAttribute( const caf::PdmFieldHandle //-------------------------------------------------------------------------------------------------- void RimSummaryCurveCollection::onCurvesReordered( const SignalEmitter* emitter ) { - curvesReordered.send(); + curvesChanged.send(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimSummaryCurveCollection::onChildDeleted( caf::PdmChildArrayFieldHandle* childArray, + std::vector& referringObjects ) +{ + curvesChanged.send(); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.h b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.h index b5bde63b4d..fe52f9857b 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.h @@ -42,7 +42,7 @@ class RimSummaryCurveCollection : public caf::PdmObject CAF_PDM_HEADER_INIT; private: - caf::Signal<> curvesReordered; + caf::Signal<> curvesChanged; public: RimSummaryCurveCollection(); @@ -97,6 +97,8 @@ private: caf::PdmUiEditorAttribute* attribute ) override; void onCurvesReordered( const SignalEmitter* emitter ); + void onChildDeleted( caf::PdmChildArrayFieldHandle* childArray, + std::vector& referringObjects ) override; private: friend class RimSummaryCrossPlot; diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp index 183439cbd1..94ea0e0921 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.cpp @@ -153,7 +153,7 @@ RimSummaryPlot::RimSummaryPlot() CAF_PDM_InitFieldNoDefault( &m_summaryCurveCollection, "SummaryCurveCollection", "", "", "", "" ); m_summaryCurveCollection.uiCapability()->setUiTreeHidden( true ); m_summaryCurveCollection = new RimSummaryCurveCollection; - m_summaryCurveCollection->curvesReordered.connect( this, &RimSummaryPlot::onCurvesReordered ); + m_summaryCurveCollection->curvesChanged.connect( this, &RimSummaryPlot::onCurveCollectionChanged ); CAF_PDM_InitFieldNoDefault( &m_ensembleCurveSetCollection, "EnsembleCurveSetCollection", "", "", "", "" ); m_ensembleCurveSetCollection.uiCapability()->setUiTreeHidden( true ); @@ -339,7 +339,7 @@ QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTi populateTimeHistoryCurvesData( m_gridTimeHistoryCurves.childObjects(), &timeHistoryCurvesData ); // Export observed data - appendToExportData( out, {summaryCurvesObsData}, showTimeAsLongString ); + appendToExportData( out, { summaryCurvesObsData }, showTimeAsLongString ); std::vector exportData( 2 ); @@ -358,7 +358,7 @@ QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTi CurvesData asciiCurvesData; populateAsciiDataCurvesData( m_asciiDataCurves.childObjects(), &asciiCurvesData ); - appendToExportData( out, {asciiCurvesData}, showTimeAsLongString ); + appendToExportData( out, { asciiCurvesData }, showTimeAsLongString ); } return out; @@ -1234,7 +1234,7 @@ void RimSummaryPlot::removeCurve( 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_RIGHT ); + + if ( m_plotWidget ) + { + reattachAllCurves(); + m_plotWidget->scheduleReplot(); + } } //-------------------------------------------------------------------------------------------------- @@ -1471,10 +1477,6 @@ void RimSummaryPlot::updateStackedCurveDataForAxis( RiaDefines::PlotAxis plotAxi zPos -= 1.0; } } - if ( m_plotWidget ) - { - m_plotWidget->scheduleReplot(); - } } //-------------------------------------------------------------------------------------------------- /// @@ -1625,7 +1627,7 @@ void RimSummaryPlot::updateZoomFromQwt() //-------------------------------------------------------------------------------------------------- std::set 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(); } @@ -2257,13 +2259,13 @@ void populateTimeHistoryCurvesData( std::vector curves 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 ) { curvesData->caseNames.push_back( curveCaseName ); curvesData->timeSteps.push_back( curve->timeStepValues() ); - curvesData->allCurveData.push_back( std::vector( {curveData} ) ); + curvesData->allCurveData.push_back( std::vector( { curveData } ) ); } else { @@ -2289,13 +2291,13 @@ void populateAsciiDataCurvesData( std::vector curves, Curves 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 ) { curvesData->caseNames.push_back( "" ); curvesData->timeSteps.push_back( curve->timeSteps() ); - curvesData->allCurveData.push_back( std::vector( {curveData} ) ); + curvesData->allCurveData.push_back( std::vector( { curveData } ) ); } else { @@ -2332,7 +2334,7 @@ void populateSummaryCurvesData( std::vector curves, SummaryCur 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; // Error data @@ -2353,7 +2355,7 @@ void populateSummaryCurvesData( std::vector curves, SummaryCur // 1. Case is not referenced before, or // 2. We have calculated data, and it we cannot assume identical time axis - auto curveDataList = std::vector( {curveData} ); + auto curveDataList = std::vector( { curveData } ); if ( hasErrorData ) curveDataList.push_back( errorCurveData ); curvesData->caseNames.push_back( curveCaseName ); diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.h b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.h index b291cc6881..ec386e51dd 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlot.h @@ -192,7 +192,7 @@ private: void handleKeyPressEvent( QKeyEvent* keyEvent ) override; - void onCurvesReordered( const SignalEmitter* emitter ); + void onCurveCollectionChanged( const SignalEmitter* emitter ); protected: // Overridden PDM methods