mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Speed up summary case close/delete for ensembles (#8907)
* Speed up summary case close/delete for ensembles
This commit is contained in:
parent
4f31f5c76e
commit
6f26f8e462
@ -58,6 +58,8 @@ void RicCloseSummaryCaseFeature::deleteSummaryCases( std::vector<RimSummaryCase*
|
||||
RimSummaryMultiPlotCollection* summaryPlotColl = RiaSummaryTools::summaryMultiPlotCollection();
|
||||
RimSummaryCaseMainCollection* summaryCaseMainCollection = RiaSummaryTools::summaryCaseMainCollection();
|
||||
|
||||
std::set<RimSummaryMultiPlot*> plotsToUpdate;
|
||||
|
||||
for ( RimSummaryCase* summaryCase : cases )
|
||||
{
|
||||
for ( RimSummaryMultiPlot* multiPlot : summaryPlotColl->multiPlots() )
|
||||
@ -66,10 +68,15 @@ void RicCloseSummaryCaseFeature::deleteSummaryCases( std::vector<RimSummaryCase*
|
||||
{
|
||||
summaryPlot->deleteCurvesAssosiatedWithCase( summaryCase );
|
||||
}
|
||||
multiPlot->updateConnectedEditors();
|
||||
plotsToUpdate.insert( multiPlot );
|
||||
}
|
||||
}
|
||||
|
||||
summaryCaseMainCollection->removeCase( summaryCase );
|
||||
summaryCaseMainCollection->removeCases( cases );
|
||||
|
||||
for ( auto plot : plotsToUpdate )
|
||||
{
|
||||
plot->updateConnectedEditors();
|
||||
}
|
||||
|
||||
summaryCaseMainCollection->updateAllRequiredEditors();
|
||||
|
@ -151,7 +151,7 @@ RimSummaryCaseCollection::~RimSummaryCaseCollection()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCaseCollection::removeCase( RimSummaryCase* summaryCase )
|
||||
void RimSummaryCaseCollection::removeCase( RimSummaryCase* summaryCase, bool notifyChange )
|
||||
{
|
||||
size_t caseCountBeforeRemove = m_cases.size();
|
||||
|
||||
@ -161,7 +161,10 @@ void RimSummaryCaseCollection::removeCase( RimSummaryCase* summaryCase )
|
||||
|
||||
caseRemoved.send( summaryCase );
|
||||
|
||||
updateReferringCurveSets();
|
||||
if ( notifyChange )
|
||||
{
|
||||
updateReferringCurveSets();
|
||||
}
|
||||
|
||||
if ( m_isEnsemble && m_cases.size() != caseCountBeforeRemove )
|
||||
{
|
||||
|
@ -58,7 +58,7 @@ public:
|
||||
RimSummaryCaseCollection();
|
||||
~RimSummaryCaseCollection() override;
|
||||
|
||||
void removeCase( RimSummaryCase* summaryCase );
|
||||
void removeCase( RimSummaryCase* summaryCase, bool notifyChange = true );
|
||||
void addCase( RimSummaryCase* summaryCase );
|
||||
virtual std::vector<RimSummaryCase*> allSummaryCases() const;
|
||||
RimSummaryCase* firstSummaryCase() const;
|
||||
@ -108,6 +108,8 @@ public:
|
||||
|
||||
void refreshMetaData();
|
||||
|
||||
void updateReferringCurveSets();
|
||||
|
||||
private:
|
||||
RigEnsembleParameter createEnsembleParameter( const QString& paramName ) const;
|
||||
static void sortByBinnedVariation( std::vector<RigEnsembleParameter>& parameterVector );
|
||||
@ -127,7 +129,6 @@ private:
|
||||
|
||||
protected:
|
||||
virtual void onLoadDataAndUpdate();
|
||||
void updateReferringCurveSets();
|
||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override;
|
||||
void setNameAsReadOnly();
|
||||
|
@ -243,7 +243,7 @@ void RimSummaryCaseMainCollection::addCase( RimSummaryCase* summaryCase )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCaseMainCollection::removeCase( RimSummaryCase* summaryCase )
|
||||
void RimSummaryCaseMainCollection::removeCase( RimSummaryCase* summaryCase, bool notifyChange )
|
||||
{
|
||||
std::vector<RimDerivedEnsembleCaseCollection*> derivedEnsembles;
|
||||
|
||||
@ -264,7 +264,7 @@ void RimSummaryCaseMainCollection::removeCase( RimSummaryCase* summaryCase )
|
||||
|
||||
for ( RimSummaryCaseCollection* summaryCaseCollection : m_caseCollections )
|
||||
{
|
||||
summaryCaseCollection->removeCase( summaryCase );
|
||||
summaryCaseCollection->removeCase( summaryCase, notifyChange );
|
||||
}
|
||||
|
||||
// Update derived ensemble cases (if any)
|
||||
@ -273,6 +273,24 @@ void RimSummaryCaseMainCollection::removeCase( RimSummaryCase* summaryCase )
|
||||
derEnsemble->createDerivedEnsembleCases();
|
||||
}
|
||||
|
||||
if ( notifyChange ) dataSourceHasChanged.send();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCaseMainCollection::removeCases( std::vector<RimSummaryCase*>& cases )
|
||||
{
|
||||
for ( auto sumCase : cases )
|
||||
{
|
||||
removeCase( sumCase, false );
|
||||
}
|
||||
|
||||
for ( RimSummaryCaseCollection* summaryCaseCollection : m_caseCollections )
|
||||
{
|
||||
summaryCaseCollection->updateReferringCurveSets();
|
||||
}
|
||||
|
||||
dataSourceHasChanged.send();
|
||||
}
|
||||
|
||||
|
@ -62,7 +62,8 @@ public:
|
||||
|
||||
void addCases( const std::vector<RimSummaryCase*> cases );
|
||||
void addCase( RimSummaryCase* summaryCase );
|
||||
void removeCase( RimSummaryCase* summaryCase );
|
||||
void removeCase( RimSummaryCase* summaryCase, bool notifyChange = true );
|
||||
void removeCases( std::vector<RimSummaryCase*>& cases );
|
||||
|
||||
RimSummaryCaseCollection* addCaseCollection( std::vector<RimSummaryCase*> summaryCases,
|
||||
const QString& coolectionName,
|
||||
|
Loading…
Reference in New Issue
Block a user