mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Imroved lifespan handling for reservoirs
p4#: 20526
This commit is contained in:
parent
73c9459276
commit
e82aef5850
@ -132,7 +132,7 @@ QString RimProject::projectFileVersionString() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::registerEclipseCase(RimReservoir* rimReservoir)
|
||||
void RimProject::moveEclipseCaseIntoCaseGroup(RimReservoir* rimReservoir)
|
||||
{
|
||||
CVF_ASSERT(rimReservoir);
|
||||
|
||||
@ -184,4 +184,36 @@ void RimProject::registerEclipseCase(RimReservoir* rimReservoir)
|
||||
|
||||
caseGroups().push_back(group);
|
||||
}
|
||||
|
||||
// Remove reservoir from main container
|
||||
reservoirs().removeChildObject(rimReservoir);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::removeEclipseCaseFromAllGroups(RimReservoir* reservoir)
|
||||
{
|
||||
m_gridCollection->removeCase(reservoir->reservoirData());
|
||||
|
||||
std::vector<RimIdenticalGridCaseGroup*> emptyCaseGroups;
|
||||
for (size_t i = 0; i < caseGroups.size(); i++)
|
||||
{
|
||||
RimIdenticalGridCaseGroup* cg = caseGroups()[i];
|
||||
|
||||
cg->reservoirs().removeChildObject(reservoir);
|
||||
|
||||
if (cg->reservoirs().size() == 0)
|
||||
{
|
||||
emptyCaseGroups.push_back(cg);
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < emptyCaseGroups.size(); i++)
|
||||
{
|
||||
caseGroups().removeChildObject(emptyCaseGroups[i]);
|
||||
delete emptyCaseGroups[i];
|
||||
}
|
||||
|
||||
reservoirs().removeChildObject(reservoir);
|
||||
}
|
||||
|
@ -48,7 +48,8 @@ public:
|
||||
|
||||
void close();
|
||||
|
||||
void registerEclipseCase(RimReservoir* rimReservoir);
|
||||
void moveEclipseCaseIntoCaseGroup(RimReservoir* rimReservoir);
|
||||
void removeEclipseCaseFromAllGroups(RimReservoir* rimReservoir);
|
||||
|
||||
protected:
|
||||
// Overridden methods
|
||||
@ -56,7 +57,7 @@ protected:
|
||||
virtual void setupBeforeSave();
|
||||
|
||||
private:
|
||||
caf::PdmField<QString> m_projectFileVersionString;
|
||||
caf::PdmField<QString> m_projectFileVersionString;
|
||||
|
||||
cvf::ref<RigGridCollection> m_gridCollection;
|
||||
cvf::ref<RigGridCollection> m_gridCollection;
|
||||
};
|
||||
|
@ -247,8 +247,7 @@ void RimReservoir::registerEclipseCase()
|
||||
CVF_ASSERT(proj);
|
||||
if (proj)
|
||||
{
|
||||
|
||||
proj->registerEclipseCase(this);
|
||||
proj->moveEclipseCaseIntoCaseGroup(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -219,7 +219,7 @@ void RimUiTreeModelPdm::deleteReservoir(const QModelIndex& itemIndex)
|
||||
removeRow(itemIndex.row(), itemIndex.parent());
|
||||
|
||||
RimProject* proj = RIApplication::instance()->project();
|
||||
proj->reservoirs().removeChildObject(reservoir);
|
||||
proj->removeEclipseCaseFromAllGroups(reservoir);
|
||||
|
||||
delete reservoir;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user