#1912 AppFwk : Add support for setting of current item using attributes

This commit is contained in:
Magne Sjaastad 2017-09-27 08:08:53 +02:00
parent 1b96ab747d
commit 184e00c5aa
2 changed files with 19 additions and 6 deletions

View File

@ -147,17 +147,28 @@ QWidget* PdmUiTreeViewEditor::createWidget(QWidget* parent)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void PdmUiTreeViewEditor::configureAndUpdateUi(const QString& uiConfigName) 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<PdmUiObjectHandle*>(this->pdmItemRoot()))
{ {
dynamic_cast<PdmUiObjectHandle*>(this->pdmItemRoot())->objectEditorAttribute(uiConfigName, &m_editorAttributes); PdmUiObjectHandle* uiObjectHandle = dynamic_cast<PdmUiObjectHandle*>(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->setUiConfigName(uiConfigName);
m_treeViewModel->setPdmItemRoot(this->pdmItemRoot()); m_treeViewModel->setPdmItemRoot(this->pdmItemRoot());
if (editorAttributes.currentObject)
{
PdmUiObjectHandle* uiObjectHandle = editorAttributes.currentObject->uiCapability();
if (uiObjectHandle)
{
selectAsCurrentItem(uiObjectHandle);
}
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -72,10 +72,14 @@ class PdmUiTreeViewEditorAttribute : public PdmUiEditorAttribute
public: public:
PdmUiTreeViewEditorAttribute() PdmUiTreeViewEditorAttribute()
{ {
currentObject = nullptr;
} }
public: public:
QStringList columnHeaders; 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; PdmUiTreeViewWidget* m_treeView;
PdmUiTreeViewModel* m_treeViewModel; PdmUiTreeViewModel* m_treeViewModel;
PdmUiTreeViewEditorAttribute m_editorAttributes;
bool m_useDefaultContextMenu; bool m_useDefaultContextMenu;
bool m_updateSelectionManager; bool m_updateSelectionManager;
bool m_appendClassNameToUiItemText; bool m_appendClassNameToUiItemText;