Expand up to root when creating a view. Removed use of expandAll()

p4#: 21353
This commit is contained in:
Magne Sjaastad 2013-04-22 10:04:37 +02:00
parent bd211d2115
commit 79e7d3604c
4 changed files with 29 additions and 8 deletions

View File

@ -372,15 +372,18 @@ RimReservoirView* RimUiTreeModelPdm::addReservoirView(const QModelIndex& itemInd
bool itemIndexIsCollection = false; bool itemIndexIsCollection = false;
QModelIndex collectionIndex; QModelIndex collectionIndex;
int position = 0;
if (dynamic_cast<RimReservoirView*>(currentItem->dataObject().p())) if (dynamic_cast<RimReservoirView*>(currentItem->dataObject().p()))
{ {
collectionItem = currentItem->parent(); collectionItem = currentItem->parent();
collectionIndex = itemIndex.parent(); collectionIndex = itemIndex.parent();
position = itemIndex.row();
} }
else if (dynamic_cast<RimCase*>(currentItem->dataObject().p())) else if (dynamic_cast<RimCase*>(currentItem->dataObject().p()))
{ {
collectionItem = currentItem; collectionItem = currentItem;
collectionIndex = itemIndex; collectionIndex = itemIndex;
position = collectionItem->childCount();
} }
if (collectionItem) if (collectionItem)
@ -393,14 +396,15 @@ RimReservoirView* RimUiTreeModelPdm::addReservoirView(const QModelIndex& itemInd
// Must be run before buildViewItems, as wells are created in this function // Must be run before buildViewItems, as wells are created in this function
insertedView->loadDataAndUpdate(); insertedView->loadDataAndUpdate();
int viewCount = rowCount(collectionIndex); beginInsertRows(collectionIndex, position, position);
beginInsertRows(collectionIndex, viewCount, viewCount);
// NOTE: -1 as second argument indicates append // NOTE: -1 as second argument indicates append
caf::PdmUiTreeItem* childItem = caf::UiTreeItemBuilderPdm::buildViewItems(collectionItem, -1, insertedView); caf::PdmUiTreeItem* childItem = caf::UiTreeItemBuilderPdm::buildViewItems(collectionItem, position, insertedView);
endInsertRows(); endInsertRows();
insertedModelIndex = index(position, 0, collectionIndex);
return insertedView; return insertedView;
} }

View File

@ -543,7 +543,11 @@ void RimUiTreeView::slotAddView()
QModelIndex insertedIndex; QModelIndex insertedIndex;
myModel->addReservoirView(index, insertedIndex); myModel->addReservoirView(index, insertedIndex);
// Expand parent collection and inserted view item
setExpandedUpToRoot(insertedIndex);
setCurrentIndex(insertedIndex);
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -827,6 +831,8 @@ void RimUiTreeView::slotNewStatisticsCase()
QModelIndex insertedIndex; QModelIndex insertedIndex;
RimStatisticsCase* newObject = myModel->addStatisticalCalculation(currentIndex(), insertedIndex); RimStatisticsCase* newObject = myModel->addStatisticalCalculation(currentIndex(), insertedIndex);
setCurrentIndex(insertedIndex); setCurrentIndex(insertedIndex);
setExpanded(insertedIndex, true);
} }
} }
@ -1275,3 +1281,17 @@ void RimUiTreeView::storeTreeViewStateToString(QString& treeViewState)
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimUiTreeView::setExpandedUpToRoot(const QModelIndex& itemIndex)
{
QModelIndex mi = itemIndex;
while (mi.isValid())
{
this->setExpanded(mi, true);
mi = mi.parent();
}
}

View File

@ -106,6 +106,7 @@ private:
bool checkAndHandleToggleOfMultipleSelection(); bool checkAndHandleToggleOfMultipleSelection();
void setExpandedUpToRoot(const QModelIndex& itemIndex);
private: private:
QAction* m_pasteAction; QAction* m_pasteAction;
}; };

View File

@ -921,8 +921,6 @@ void RiuMainWindow::setPdmRoot(caf::PdmObject* pdmRoot)
caf::PdmUiTreeItem* treeItemRoot = caf::UiTreeItemBuilderPdm::buildViewItems(NULL, -1, m_pdmRoot); caf::PdmUiTreeItem* treeItemRoot = caf::UiTreeItemBuilderPdm::buildViewItems(NULL, -1, m_pdmRoot);
m_treeModelPdm->setRoot(treeItemRoot); m_treeModelPdm->setRoot(treeItemRoot);
m_treeView->expandAll();
if (treeItemRoot && m_treeView->selectionModel()) if (treeItemRoot && m_treeView->selectionModel())
{ {
connect(m_treeView->selectionModel(), SIGNAL(currentChanged ( const QModelIndex & , const QModelIndex & )), SLOT(slotCurrentChanged( const QModelIndex & , const QModelIndex & ))); connect(m_treeView->selectionModel(), SIGNAL(currentChanged ( const QModelIndex & , const QModelIndex & )), SLOT(slotCurrentChanged( const QModelIndex & , const QModelIndex & )));
@ -1074,7 +1072,6 @@ void RiuMainWindow::slotSubWindowActivated(QMdiSubWindow* subWindow)
} }
m_treeView->setCurrentIndex(newSelectionIndex); m_treeView->setCurrentIndex(newSelectionIndex);
//m_treeView->setExpanded(previousViewModelIndex, false);
if (newSelectionIndex != newViewModelIndex) if (newSelectionIndex != newViewModelIndex)
{ {
m_treeView->setExpanded(newViewModelIndex, true); m_treeView->setExpanded(newViewModelIndex, true);
@ -1260,7 +1257,6 @@ void RiuMainWindow::slotNewObjectPropertyView()
} }
treeView->setModel(m_treeModelPdm); treeView->setModel(m_treeModelPdm);
treeView->expandAll();
{ {