Create UI tree items and insert in parent when opening new cases from file. Avoid building the complete tree using onProjectOpenedOrClosed()

p4#: 21357
This commit is contained in:
Magne Sjaastad 2013-04-22 11:54:41 +02:00
parent e1b778d17f
commit 8c28e8ff6c
3 changed files with 35 additions and 3 deletions

View File

@ -518,7 +518,13 @@ bool RiaApplication::openEclipseCase(const QString& caseName, const QString& cas
riv->cellResult()->resultVariable = RimDefines::undefinedResultName();
}
onProjectOpenedOrClosed();
RimUiTreeModelPdm* uiModel = RiuMainWindow::instance()->uiPdmModel();
caf::PdmUiTreeItem* projectTreeItem = uiModel->treeItemRoot();
// New case is inserted before the last item, the script item
int position = projectTreeItem->childCount() - 1;
uiModel->addToParentAndBuildUiItems(projectTreeItem, position, rimResultReservoir);
return true;
}
@ -547,7 +553,13 @@ bool RiaApplication::openInputEclipseCase(const QString& caseName, const QString
riv->cellResult()->resultVariable = RimDefines::undefinedResultName();
}
onProjectOpenedOrClosed();
RimUiTreeModelPdm* uiModel = RiuMainWindow::instance()->uiPdmModel();
caf::PdmUiTreeItem* projectTreeItem = uiModel->treeItemRoot();
// New case is inserted before the last item, the script item
int position = projectTreeItem->childCount() - 1;
uiModel->addToParentAndBuildUiItems(projectTreeItem, position, rimInputReservoir);
return true;
}

View File

@ -883,3 +883,22 @@ RimIdenticalGridCaseGroup* RimUiTreeModelPdm::gridCaseGroupFromItemIndex(const Q
return gridCaseGroup;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimUiTreeModelPdm::addToParentAndBuildUiItems(caf::PdmUiTreeItem* parentTreeItem, int position, caf::PdmObject* pdmObject)
{
QModelIndex parentModelIndex;
if (parentTreeItem && parentTreeItem->dataObject())
{
parentModelIndex = getModelIndexFromPdmObject(parentTreeItem->dataObject());
}
beginInsertRows(parentModelIndex, position, position);
caf::PdmUiTreeItem* childItem = caf::UiTreeItemBuilderPdm::buildViewItems(parentTreeItem, position, pdmObject);
endInsertRows();
}

View File

@ -61,6 +61,8 @@ public:
RimReservoirView* addReservoirView(const QModelIndex& itemIndex, QModelIndex& insertedModelIndex);
void addInputProperty(const QModelIndex& itemIndex, const QStringList& fileNames);
void addToParentAndBuildUiItems(caf::PdmUiTreeItem* parentTreeItem, int position, caf::PdmObject* pdmObject);
void addObjects(const QModelIndex& itemIndex, caf::PdmObjectGroup& pdmObjects);
void moveObjects(const QModelIndex& itemIndex, caf::PdmObjectGroup& pdmObjects);
@ -84,7 +86,6 @@ private slots:
private:
void clearClipboard();
private:
QFileSystemWatcher* m_scriptChangeDetector;
};