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,22 +738,19 @@ void RimUiTreeModelPdm::addObjects(const QModelIndex& itemIndex, const caf::PdmO
|
||||
}
|
||||
else if (caseFromItemIndex(itemIndex))
|
||||
{
|
||||
std::vector<caf::PdmPointer<RimEclipseView> > typedObjects;
|
||||
pdmObjects.createCopyByType(&typedObjects);
|
||||
std::vector<caf::PdmPointer<RimEclipseView> > eclipseViews;
|
||||
pdmObjects.createCopyByType(&eclipseViews);
|
||||
|
||||
if (typedObjects.size() == 0)
|
||||
if (eclipseViews.size() != 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
RimEclipseCase* rimCase = caseFromItemIndex(itemIndex);
|
||||
QModelIndex collectionIndex = getModelIndexFromPdmObject(rimCase);
|
||||
caf::PdmUiTreeItem* collectionItem = getTreeItemFromIndex(collectionIndex);
|
||||
|
||||
// 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;
|
||||
rimReservoirView->name = nameOfCopy;
|
||||
rimCase->reservoirViews().push_back(rimReservoirView);
|
||||
@ -776,6 +773,42 @@ void RimUiTreeModelPdm::addObjects(const QModelIndex& itemIndex, const caf::PdmO
|
||||
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()))
|
||||
{
|
||||
menu.addAction(QString("New View"), this, SLOT(slotAddView()));
|
||||
//menu.addAction(QString("Copy View"), this, SLOT(slotCopyPdmObjectToClipboard()));
|
||||
//menu.addAction(m_pasteAction);
|
||||
menu.addAction(QString("Copy View"), this, SLOT(slotCopyPdmObjectToClipboard()));
|
||||
menu.addAction(m_pasteAction);
|
||||
menu.addAction(QString("Delete"), this, SLOT(slotDeleteView()));
|
||||
}
|
||||
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("Close"), this, SLOT(slotCloseGeomechCase()));
|
||||
menu.addAction(m_pasteAction);
|
||||
}
|
||||
else if (dynamic_cast<RimEclipseCase*>(uiItem->dataObject().p()))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user