diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.cpp b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.cpp index d50f9a9ddb..12659dff9b 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.cpp +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.cpp @@ -147,17 +147,28 @@ QWidget* PdmUiTreeViewEditor::createWidget(QWidget* parent) //-------------------------------------------------------------------------------------------------- void PdmUiTreeViewEditor::configureAndUpdateUi(const QString& uiConfigName) { - // If we have a real object, get its editor attributes (Column headers for now) + PdmUiTreeViewEditorAttribute editorAttributes; - if (this->pdmItemRoot() && dynamic_cast(this->pdmItemRoot())) { - dynamic_cast(this->pdmItemRoot())->objectEditorAttribute(uiConfigName, &m_editorAttributes); + PdmUiObjectHandle* uiObjectHandle = dynamic_cast(this->pdmItemRoot()); + if (uiObjectHandle) + { + uiObjectHandle->objectEditorAttribute(uiConfigName, &editorAttributes); + } } - m_treeViewModel->setColumnHeaders(m_editorAttributes.columnHeaders); + m_treeViewModel->setColumnHeaders(editorAttributes.columnHeaders); m_treeViewModel->setUiConfigName(uiConfigName); m_treeViewModel->setPdmItemRoot(this->pdmItemRoot()); + if (editorAttributes.currentObject) + { + PdmUiObjectHandle* uiObjectHandle = editorAttributes.currentObject->uiCapability(); + if (uiObjectHandle) + { + selectAsCurrentItem(uiObjectHandle); + } + } } //-------------------------------------------------------------------------------------------------- diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.h b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.h index cf075e3ded..d3e304b931 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.h +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.h @@ -72,10 +72,14 @@ class PdmUiTreeViewEditorAttribute : public PdmUiEditorAttribute public: PdmUiTreeViewEditorAttribute() { + currentObject = nullptr; } public: QStringList columnHeaders; + + /// This object is set as current item in the tree view in configureAndUpdateUi() + caf::PdmObjectHandle* currentObject; }; //-------------------------------------------------------------------------------------------------- @@ -136,8 +140,6 @@ private: PdmUiTreeViewWidget* m_treeView; PdmUiTreeViewModel* m_treeViewModel; - PdmUiTreeViewEditorAttribute m_editorAttributes; - bool m_useDefaultContextMenu; bool m_updateSelectionManager; bool m_appendClassNameToUiItemText;