mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
Improved handling when deleting all cases and adding new case to case group
p4#: 20990
This commit is contained in:
parent
22aee27333
commit
9abe7a3b13
@ -90,6 +90,19 @@ void RimIdenticalGridCaseGroup::addCase(RimReservoir* reservoir)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimIdenticalGridCaseGroup::removeCase(RimReservoir* reservoir)
|
||||
{
|
||||
caseCollection()->reservoirs().removeChildObject(reservoir);
|
||||
|
||||
if (caseCollection()->reservoirs().size() == 0)
|
||||
{
|
||||
m_mainGrid = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -45,6 +45,7 @@ public:
|
||||
caf::PdmField<QString> name;
|
||||
|
||||
void addCase(RimReservoir* reservoir);
|
||||
void removeCase(RimReservoir* reservoir);
|
||||
|
||||
caf::PdmField<RimCaseCollection*> caseCollection;
|
||||
caf::PdmField<RimStatisticalCollection*> statisticalReservoirCollection;
|
||||
|
@ -167,27 +167,15 @@ void RimProject::moveEclipseCaseIntoCaseGroup(RimReservoir* rimReservoir)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::removeEclipseCaseFromAllGroups(RimReservoir* reservoir)
|
||||
void RimProject::removeCaseFromAllGroups(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->caseCollection()->reservoirs().removeChildObject(reservoir);
|
||||
|
||||
if (cg->caseCollection()->reservoirs().size() == 0)
|
||||
{
|
||||
emptyCaseGroups.push_back(cg);
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < emptyCaseGroups.size(); i++)
|
||||
{
|
||||
caseGroups().removeChildObject(emptyCaseGroups[i]);
|
||||
delete emptyCaseGroups[i];
|
||||
cg->removeCase(reservoir);
|
||||
}
|
||||
|
||||
reservoirs().removeChildObject(reservoir);
|
||||
|
@ -51,7 +51,7 @@ public:
|
||||
void insertCaseInCaseGroup(RimIdenticalGridCaseGroup* caseGroup, RimReservoir* rimReservoir);
|
||||
|
||||
void moveEclipseCaseIntoCaseGroup(RimReservoir* rimReservoir);
|
||||
void removeEclipseCaseFromAllGroups(RimReservoir* rimReservoir);
|
||||
void removeCaseFromAllGroups(RimReservoir* rimReservoir);
|
||||
|
||||
private:
|
||||
RigMainGrid* registerCaseInGridCollection(RigEclipseCase* rigEclipseCase);
|
||||
|
@ -220,7 +220,7 @@ void RimUiTreeModelPdm::deleteReservoir(const QModelIndex& itemIndex)
|
||||
removeRow(itemIndex.row(), itemIndex.parent());
|
||||
|
||||
RimProject* proj = RIApplication::instance()->project();
|
||||
proj->removeEclipseCaseFromAllGroups(reservoir);
|
||||
proj->removeCaseFromAllGroups(reservoir);
|
||||
|
||||
delete reservoir;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user