mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#329 "Copy/Paste View" added for Geomechanics
This commit is contained in:
parent
55c1d5de71
commit
985afce261
@ -738,26 +738,23 @@ void RimUiTreeModelPdm::addObjects(const QModelIndex& itemIndex, const caf::PdmO
|
|||||||
}
|
}
|
||||||
else if (caseFromItemIndex(itemIndex))
|
else if (caseFromItemIndex(itemIndex))
|
||||||
{
|
{
|
||||||
std::vector<caf::PdmPointer<RimEclipseView> > typedObjects;
|
std::vector<caf::PdmPointer<RimEclipseView> > eclipseViews;
|
||||||
pdmObjects.createCopyByType(&typedObjects);
|
pdmObjects.createCopyByType(&eclipseViews);
|
||||||
|
|
||||||
if (typedObjects.size() == 0)
|
if (eclipseViews.size() != 0)
|
||||||
{
|
{
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
RimEclipseCase* rimCase = caseFromItemIndex(itemIndex);
|
RimEclipseCase* rimCase = caseFromItemIndex(itemIndex);
|
||||||
QModelIndex collectionIndex = getModelIndexFromPdmObject(rimCase);
|
QModelIndex collectionIndex = getModelIndexFromPdmObject(rimCase);
|
||||||
caf::PdmUiTreeItem* collectionItem = getTreeItemFromIndex(collectionIndex);
|
caf::PdmUiTreeItem* collectionItem = getTreeItemFromIndex(collectionIndex);
|
||||||
|
|
||||||
// Add cases to case group
|
// Add cases to case group
|
||||||
for (size_t i = 0; i < typedObjects.size(); i++)
|
for (size_t i = 0; i < eclipseViews.size(); i++)
|
||||||
{
|
{
|
||||||
RimEclipseView* rimReservoirView = typedObjects[i];
|
RimEclipseView* rimReservoirView = eclipseViews[i];
|
||||||
QString nameOfCopy = QString("Copy of ") + rimReservoirView->name;
|
QString nameOfCopy = QString("Copy of ") + rimReservoirView->name;
|
||||||
rimReservoirView->name = nameOfCopy;
|
rimReservoirView->name = nameOfCopy;
|
||||||
rimCase->reservoirViews().push_back(rimReservoirView);
|
rimCase->reservoirViews().push_back(rimReservoirView);
|
||||||
|
|
||||||
// Delete all wells to be able to copy/paste between cases, as the wells differ between cases
|
// Delete all wells to be able to copy/paste between cases, as the wells differ between cases
|
||||||
rimReservoirView->wellCollection()->wells().deleteAllChildObjects();
|
rimReservoirView->wellCollection()->wells().deleteAllChildObjects();
|
||||||
|
|
||||||
@ -766,7 +763,7 @@ void RimUiTreeModelPdm::addObjects(const QModelIndex& itemIndex, const caf::PdmO
|
|||||||
|
|
||||||
caf::PdmDocument::updateUiIconStateRecursively(rimReservoirView);
|
caf::PdmDocument::updateUiIconStateRecursively(rimReservoirView);
|
||||||
|
|
||||||
rimReservoirView->loadDataAndUpdate();
|
rimReservoirView->loadDataAndUpdate();
|
||||||
|
|
||||||
int position = static_cast<int>(rimCase->reservoirViews().size());
|
int position = static_cast<int>(rimCase->reservoirViews().size());
|
||||||
beginInsertRows(collectionIndex, position, position);
|
beginInsertRows(collectionIndex, position, position);
|
||||||
@ -775,6 +772,42 @@ void RimUiTreeModelPdm::addObjects(const QModelIndex& itemIndex, const caf::PdmO
|
|||||||
|
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
caf::PdmObject* selectedObject = getTreeItemFromIndex(itemIndex)->dataObject().p();
|
||||||
|
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>(selectedObject);
|
||||||
|
if (!geomCase && selectedObject)
|
||||||
|
{
|
||||||
|
RimGeoMechView* geomView = dynamic_cast<RimGeoMechView*>(selectedObject);
|
||||||
|
if (geomView) geomCase = geomView->geoMechCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (geomCase)
|
||||||
|
{
|
||||||
|
std::vector<caf::PdmPointer<RimGeoMechView> > geomViews;
|
||||||
|
pdmObjects.createCopyByType(&geomViews);
|
||||||
|
|
||||||
|
if (geomViews.size() != 0)
|
||||||
|
{
|
||||||
|
// 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);
|
||||||
|
|
||||||
|
caf::PdmDocument::initAfterReadTraversal(rimReservoirView);
|
||||||
|
rimReservoirView->setGeoMechCase(geomCase);
|
||||||
|
|
||||||
|
caf::PdmDocument::updateUiIconStateRecursively(rimReservoirView);
|
||||||
|
|
||||||
|
rimReservoirView->loadDataAndUpdate();
|
||||||
|
|
||||||
|
this->updateUiSubTree(geomCase);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,8 +122,8 @@ void RimUiTreeView::contextMenuEvent(QContextMenuEvent* event)
|
|||||||
if (dynamic_cast<RimGeoMechView*>(uiItem->dataObject().p()))
|
if (dynamic_cast<RimGeoMechView*>(uiItem->dataObject().p()))
|
||||||
{
|
{
|
||||||
menu.addAction(QString("New View"), this, SLOT(slotAddView()));
|
menu.addAction(QString("New View"), this, SLOT(slotAddView()));
|
||||||
//menu.addAction(QString("Copy View"), this, SLOT(slotCopyPdmObjectToClipboard()));
|
menu.addAction(QString("Copy View"), this, SLOT(slotCopyPdmObjectToClipboard()));
|
||||||
//menu.addAction(m_pasteAction);
|
menu.addAction(m_pasteAction);
|
||||||
menu.addAction(QString("Delete"), this, SLOT(slotDeleteView()));
|
menu.addAction(QString("Delete"), this, SLOT(slotDeleteView()));
|
||||||
}
|
}
|
||||||
else if (dynamic_cast<RimEclipseView*>(uiItem->dataObject().p()))
|
else if (dynamic_cast<RimEclipseView*>(uiItem->dataObject().p()))
|
||||||
@ -218,6 +218,7 @@ void RimUiTreeView::contextMenuEvent(QContextMenuEvent* event)
|
|||||||
{
|
{
|
||||||
menu.addAction(QString("New View"), this, SLOT(slotAddView()));
|
menu.addAction(QString("New View"), this, SLOT(slotAddView()));
|
||||||
menu.addAction(QString("Close"), this, SLOT(slotCloseGeomechCase()));
|
menu.addAction(QString("Close"), this, SLOT(slotCloseGeomechCase()));
|
||||||
|
menu.addAction(m_pasteAction);
|
||||||
}
|
}
|
||||||
else if (dynamic_cast<RimEclipseCase*>(uiItem->dataObject().p()))
|
else if (dynamic_cast<RimEclipseCase*>(uiItem->dataObject().p()))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user