From 6d7bf0ae9e0dd4a44b789e3f7e4106cdb3c87e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20St=C3=B8ren?= Date: Sun, 16 Aug 2015 09:57:57 +0200 Subject: [PATCH] Made translation between PdmUiItem and QModelIndex available in PdmUiTreeView After considering the different options, I concluded that it is important to support the Qt way of doing things. If the App programmer wants to do things the Qt way, it should be possible. --- Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.cpp | 16 ++++++++++++++++ Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.h | 5 +++++ .../cafUserInterface/cafPdmUiTreeViewEditor.cpp | 16 ++++++++++++++++ .../cafUserInterface/cafPdmUiTreeViewEditor.h | 3 +++ 4 files changed, 40 insertions(+) diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.cpp b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.cpp index f6b60e4352..4567fbee79 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.cpp +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.cpp @@ -155,5 +155,21 @@ void PdmUiTreeView::setExpanded(const PdmUiItem* uiItem, bool doExpand) const m_treeViewEditor->setExpanded(uiItem, doExpand); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +PdmUiItem* PdmUiTreeView::uiItemFromModelIndex(const QModelIndex& index) const +{ + return m_treeViewEditor->uiItemFromModelIndex(index); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QModelIndex PdmUiTreeView::findModelIndex(const PdmUiItem* object) const +{ + return m_treeViewEditor->findModelIndex(object); +} + } //End of namespace caf diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.h b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.h index 386f47915c..2e39bc200c 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.h +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeView.h @@ -43,6 +43,7 @@ class QVBoxLayout; class QTreeView; class QItemSelection; class QMenu; +class QModelIndex; namespace caf { @@ -73,6 +74,10 @@ public: void selectAsCurrentItem(PdmUiItem* uiItem); void setExpanded(const PdmUiItem* uiItem, bool doExpand) const ; + PdmUiItem* uiItemFromModelIndex(const QModelIndex& index) const; + QModelIndex findModelIndex(const PdmUiItem* object) const; + + signals: void selectionChanged(); diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.cpp b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.cpp index 5955cb79dd..a4bd8ac9cd 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.cpp +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.cpp @@ -274,5 +274,21 @@ void PdmUiTreeViewEditor::setExpanded(const PdmUiItem* uiItem, bool doExpand) co m_treeView->setExpanded(index, doExpand); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +PdmUiItem* PdmUiTreeViewEditor::uiItemFromModelIndex(const QModelIndex& index) const +{ + return m_treeViewModel->uiItemFromModelIndex(index); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QModelIndex PdmUiTreeViewEditor::findModelIndex(const PdmUiItem* object) const +{ + return m_treeViewModel->findModelIndex(object); +} + } // end namespace caf diff --git a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.h b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.h index fe1048c6fc..c9ae84b75b 100644 --- a/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.h +++ b/Fwk/AppFwk/cafUserInterface/cafPdmUiTreeViewEditor.h @@ -91,6 +91,9 @@ public: void selectedUiItems(std::vector& objects); void setExpanded(const PdmUiItem* uiItem, bool doExpand) const; + PdmUiItem* uiItemFromModelIndex(const QModelIndex& index) const; + QModelIndex findModelIndex(const PdmUiItem* object) const; + QWidget* createWidget(QWidget* parent); signals: