mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#703) Fixed resolve of PtrField after the object copy was inserted into PdmStructures
This commit is contained in:
parent
4713014d26
commit
64b3281382
@ -81,30 +81,33 @@ void RicPasteEclipseViewsFeature::onActionTriggered(bool isChecked)
|
||||
if (objectGroup.objects.size() == 0) return;
|
||||
|
||||
std::vector<caf::PdmPointer<RimEclipseView> > eclipseViews;
|
||||
objectGroup.createCopyByType(&eclipseViews, PdmDefaultObjectFactory::instance());
|
||||
objectGroup.objectsByType(&eclipseViews);
|
||||
|
||||
if (eclipseViews.size() != 0)
|
||||
// Add cases to case group
|
||||
for (size_t i = 0; i < eclipseViews.size(); i++)
|
||||
{
|
||||
// Add cases to case group
|
||||
for (size_t i = 0; i < eclipseViews.size(); i++)
|
||||
{
|
||||
RimEclipseView* rimReservoirView = eclipseViews[i];
|
||||
QString nameOfCopy = QString("Copy of ") + rimReservoirView->name;
|
||||
rimReservoirView->name = nameOfCopy;
|
||||
eclipseCase->reservoirViews().push_back(rimReservoirView);
|
||||
RimEclipseView* rimReservoirView = dynamic_cast<RimEclipseView*>(eclipseViews[i]->xmlCapability()->copyByXmlSerialization(PdmDefaultObjectFactory::instance()));
|
||||
CVF_ASSERT(rimReservoirView);
|
||||
|
||||
// Delete all wells to be able to copy/paste between cases, as the wells differ between cases
|
||||
rimReservoirView->wellCollection()->wells().deleteAllChildObjects();
|
||||
QString nameOfCopy = QString("Copy of ") + rimReservoirView->name;
|
||||
rimReservoirView->name = nameOfCopy;
|
||||
eclipseCase->reservoirViews().push_back(rimReservoirView);
|
||||
|
||||
rimReservoirView->initAfterReadRecursively();
|
||||
rimReservoirView->setEclipseCase(eclipseCase);
|
||||
// Delete all wells to be able to copy/paste between cases, as the wells differ between cases
|
||||
rimReservoirView->wellCollection()->wells().deleteAllChildObjects();
|
||||
|
||||
caf::PdmDocument::updateUiIconStateRecursively(rimReservoirView);
|
||||
rimReservoirView->setEclipseCase(eclipseCase);
|
||||
|
||||
rimReservoirView->loadDataAndUpdate();
|
||||
// Resolve references after reservoir view has been inserted into Rim structures
|
||||
// Intersections referencing a well path requires this
|
||||
rimReservoirView->initAfterReadRecursively();
|
||||
rimReservoirView->resolveReferencesRecursively();
|
||||
|
||||
eclipseCase->updateConnectedEditors();
|
||||
}
|
||||
caf::PdmDocument::updateUiIconStateRecursively(rimReservoirView);
|
||||
|
||||
rimReservoirView->loadDataAndUpdate();
|
||||
|
||||
eclipseCase->updateConnectedEditors();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,27 +75,28 @@ void RicPasteGeoMechViewsFeature::onActionTriggered(bool isChecked)
|
||||
if (objectGroup.objects.size() == 0) return;
|
||||
|
||||
std::vector<caf::PdmPointer<RimGeoMechView> > geomViews;
|
||||
objectGroup.createCopyByType(&geomViews, PdmDefaultObjectFactory::instance());
|
||||
objectGroup.objectsByType(&geomViews);
|
||||
|
||||
if (geomViews.size() != 0)
|
||||
// Add cases to case group
|
||||
for (size_t i = 0; i < geomViews.size(); i++)
|
||||
{
|
||||
// Add cases to case group
|
||||
for (size_t i = 0; i < geomViews.size(); i++)
|
||||
{
|
||||
RimGeoMechView* rimReservoirView = geomViews[i];
|
||||
QString nameOfCopy = QString("Copy of ") + rimReservoirView->name;
|
||||
rimReservoirView->name = nameOfCopy;
|
||||
geomCase->geoMechViews().push_back(rimReservoirView);
|
||||
RimGeoMechView* rimReservoirView = dynamic_cast<RimGeoMechView*>(geomViews[i]->xmlCapability()->copyByXmlSerialization(PdmDefaultObjectFactory::instance()));
|
||||
QString nameOfCopy = QString("Copy of ") + rimReservoirView->name;
|
||||
rimReservoirView->name = nameOfCopy;
|
||||
geomCase->geoMechViews().push_back(rimReservoirView);
|
||||
|
||||
rimReservoirView->initAfterReadRecursively();
|
||||
rimReservoirView->setGeoMechCase(geomCase);
|
||||
rimReservoirView->setGeoMechCase(geomCase);
|
||||
|
||||
caf::PdmDocument::updateUiIconStateRecursively(rimReservoirView);
|
||||
// Resolve references after reservoir view has been inserted into Rim structures
|
||||
// Intersections referencing a well path requires this
|
||||
rimReservoirView->initAfterReadRecursively();
|
||||
rimReservoirView->resolveReferencesRecursively();
|
||||
|
||||
rimReservoirView->loadDataAndUpdate();
|
||||
caf::PdmDocument::updateUiIconStateRecursively(rimReservoirView);
|
||||
|
||||
geomCase->updateConnectedEditors();
|
||||
}
|
||||
rimReservoirView->loadDataAndUpdate();
|
||||
|
||||
geomCase->updateConnectedEditors();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user