As QModelIndex is stored on clipboard, clear after move/delete operations

Added support for multiple delete of reservoir cases
p4#: 21007
This commit is contained in:
Magne Sjaastad
2013-03-20 15:04:28 +01:00
parent ad8cbfa651
commit 1a113b83d3
4 changed files with 68 additions and 12 deletions

View File

@@ -34,6 +34,7 @@
#include "RimBinaryExportSettings.h"
#include "RigReservoirCellResults.h"
#include "RimStatisticalCalculation.h"
#include "RimResultReservoir.h"
//--------------------------------------------------------------------------------------------------
///
@@ -783,7 +784,26 @@ void RimUiTreeView::slotCloseCase()
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
if (myModel)
{
myModel->deleteReservoir(currentIndex());
QItemSelectionModel* m = selectionModel();
CVF_ASSERT(m);
caf::PdmObjectGroup group;
QModelIndexList mil = m->selectedRows();
for (int i = 0; i < mil.size(); i++)
{
caf::PdmUiTreeItem* uiItem = myModel->getTreeItemFromIndex(mil.at(i));
group.addObject(uiItem->dataObject().p());
}
std::vector<caf::PdmPointer<RimResultReservoir> > typedObjects;
group.objectsByType(&typedObjects);
for (size_t i = 0; i < typedObjects.size(); i++)
{
RimReservoir* rimReservoir = typedObjects[i];
myModel->deleteReservoir(rimReservoir);
}
}
}