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:
@@ -58,6 +58,8 @@ void RicCloseSummaryCaseFeature::deleteSummaryCases( std::vector<RimSummaryCase*
|
|||||||
RimSummaryMultiPlotCollection* summaryPlotColl = RiaSummaryTools::summaryMultiPlotCollection();
|
RimSummaryMultiPlotCollection* summaryPlotColl = RiaSummaryTools::summaryMultiPlotCollection();
|
||||||
RimSummaryCaseMainCollection* summaryCaseMainCollection = RiaSummaryTools::summaryCaseMainCollection();
|
RimSummaryCaseMainCollection* summaryCaseMainCollection = RiaSummaryTools::summaryCaseMainCollection();
|
||||||
|
|
||||||
|
std::set<RimSummaryMultiPlot*> plotsToUpdate;
|
||||||
|
|
||||||
for ( RimSummaryCase* summaryCase : cases )
|
for ( RimSummaryCase* summaryCase : cases )
|
||||||
{
|
{
|
||||||
for ( RimSummaryMultiPlot* multiPlot : summaryPlotColl->multiPlots() )
|
for ( RimSummaryMultiPlot* multiPlot : summaryPlotColl->multiPlots() )
|
||||||
@@ -66,10 +68,15 @@ void RicCloseSummaryCaseFeature::deleteSummaryCases( std::vector<RimSummaryCase*
|
|||||||
{
|
{
|
||||||
summaryPlot->deleteCurvesAssosiatedWithCase( summaryCase );
|
summaryPlot->deleteCurvesAssosiatedWithCase( summaryCase );
|
||||||
}
|
}
|
||||||
multiPlot->updateConnectedEditors();
|
plotsToUpdate.insert( multiPlot );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
summaryCaseMainCollection->removeCase( summaryCase );
|
summaryCaseMainCollection->removeCases( cases );
|
||||||
|
|
||||||
|
for ( auto plot : plotsToUpdate )
|
||||||
|
{
|
||||||
|
plot->updateConnectedEditors();
|
||||||
}
|
}
|
||||||
|
|
||||||
summaryCaseMainCollection->updateAllRequiredEditors();
|
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();
|
size_t caseCountBeforeRemove = m_cases.size();
|
||||||
|
|
||||||
@@ -161,7 +161,10 @@ void RimSummaryCaseCollection::removeCase( RimSummaryCase* summaryCase )
|
|||||||
|
|
||||||
caseRemoved.send( summaryCase );
|
caseRemoved.send( summaryCase );
|
||||||
|
|
||||||
updateReferringCurveSets();
|
if ( notifyChange )
|
||||||
|
{
|
||||||
|
updateReferringCurveSets();
|
||||||
|
}
|
||||||
|
|
||||||
if ( m_isEnsemble && m_cases.size() != caseCountBeforeRemove )
|
if ( m_isEnsemble && m_cases.size() != caseCountBeforeRemove )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public:
|
|||||||
RimSummaryCaseCollection();
|
RimSummaryCaseCollection();
|
||||||
~RimSummaryCaseCollection() override;
|
~RimSummaryCaseCollection() override;
|
||||||
|
|
||||||
void removeCase( RimSummaryCase* summaryCase );
|
void removeCase( RimSummaryCase* summaryCase, bool notifyChange = true );
|
||||||
void addCase( RimSummaryCase* summaryCase );
|
void addCase( RimSummaryCase* summaryCase );
|
||||||
virtual std::vector<RimSummaryCase*> allSummaryCases() const;
|
virtual std::vector<RimSummaryCase*> allSummaryCases() const;
|
||||||
RimSummaryCase* firstSummaryCase() const;
|
RimSummaryCase* firstSummaryCase() const;
|
||||||
@@ -108,6 +108,8 @@ public:
|
|||||||
|
|
||||||
void refreshMetaData();
|
void refreshMetaData();
|
||||||
|
|
||||||
|
void updateReferringCurveSets();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RigEnsembleParameter createEnsembleParameter( const QString& paramName ) const;
|
RigEnsembleParameter createEnsembleParameter( const QString& paramName ) const;
|
||||||
static void sortByBinnedVariation( std::vector<RigEnsembleParameter>& parameterVector );
|
static void sortByBinnedVariation( std::vector<RigEnsembleParameter>& parameterVector );
|
||||||
@@ -127,7 +129,6 @@ private:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void onLoadDataAndUpdate();
|
virtual void onLoadDataAndUpdate();
|
||||||
void updateReferringCurveSets();
|
|
||||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||||
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override;
|
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override;
|
||||||
void setNameAsReadOnly();
|
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;
|
std::vector<RimDerivedEnsembleCaseCollection*> derivedEnsembles;
|
||||||
|
|
||||||
@@ -264,7 +264,7 @@ void RimSummaryCaseMainCollection::removeCase( RimSummaryCase* summaryCase )
|
|||||||
|
|
||||||
for ( RimSummaryCaseCollection* summaryCaseCollection : m_caseCollections )
|
for ( RimSummaryCaseCollection* summaryCaseCollection : m_caseCollections )
|
||||||
{
|
{
|
||||||
summaryCaseCollection->removeCase( summaryCase );
|
summaryCaseCollection->removeCase( summaryCase, notifyChange );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update derived ensemble cases (if any)
|
// Update derived ensemble cases (if any)
|
||||||
@@ -273,6 +273,24 @@ void RimSummaryCaseMainCollection::removeCase( RimSummaryCase* summaryCase )
|
|||||||
derEnsemble->createDerivedEnsembleCases();
|
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();
|
dataSourceHasChanged.send();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,8 @@ public:
|
|||||||
|
|
||||||
void addCases( const std::vector<RimSummaryCase*> cases );
|
void addCases( const std::vector<RimSummaryCase*> cases );
|
||||||
void addCase( RimSummaryCase* summaryCase );
|
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,
|
RimSummaryCaseCollection* addCaseCollection( std::vector<RimSummaryCase*> summaryCases,
|
||||||
const QString& coolectionName,
|
const QString& coolectionName,
|
||||||
|
|||||||
Reference in New Issue
Block a user