mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Added general function used to remove(and delete) pdmObject from pdmPointersField
Used when closing a grid group p4#: 20992
This commit is contained in:
@@ -615,3 +615,43 @@ void RimUiTreeModelPdm::addObjects(const QModelIndex& itemIndex, caf::PdmObjectG
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimUiTreeModelPdm::deleteObjectFromPdmPointersField(const QModelIndex& itemIndex)
|
||||
{
|
||||
if (!itemIndex.isValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
caf::PdmUiTreeItem* currentItem = getTreeItemFromIndex(itemIndex);
|
||||
CVF_ASSERT(currentItem);
|
||||
|
||||
caf::PdmObject* currentPdmObject = currentItem->dataObject().p();
|
||||
CVF_ASSERT(currentPdmObject);
|
||||
|
||||
std::vector<caf::PdmFieldHandle*> parentFields;
|
||||
currentPdmObject->parentFields(parentFields);
|
||||
|
||||
if (parentFields.size() == 1)
|
||||
{
|
||||
beginRemoveRows(itemIndex.parent(), itemIndex.row(), itemIndex.row());
|
||||
if (currentItem->parent())
|
||||
{
|
||||
currentItem->parent()->removeChildren(itemIndex.row(), 1);
|
||||
}
|
||||
endRemoveRows();
|
||||
|
||||
caf::PdmPointersField<RimIdenticalGridCaseGroup*>* caseGroup = dynamic_cast<caf::PdmPointersField<RimIdenticalGridCaseGroup*> *>(parentFields[0]);
|
||||
if (caseGroup)
|
||||
{
|
||||
caseGroup->removeChildObject(currentPdmObject);
|
||||
|
||||
delete currentPdmObject;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user