Project Tree updates (#8490)

Split project tree into multiple dockable tree views for plots, keeping one for 3d views.
This commit is contained in:
jonjenssen
2022-01-28 13:19:52 +01:00
committed by GitHub
parent ffc77516e8
commit 66fd79175c
26 changed files with 436 additions and 304 deletions

View File

@@ -20,6 +20,11 @@
#include <QMainWindow>
#include "cafPdmUiDragDropInterface.h"
#include <memory>
#include <vector>
class QMdiArea;
struct RimMdiWindowGeometry;
@@ -65,8 +70,11 @@ public:
void hideAllDockWidgets();
caf::PdmUiTreeView* projectTreeView() { return m_projectTreeView; }
void setExpanded( const caf::PdmUiItem* uiItem, bool expanded = true );
std::vector<caf::PdmUiTreeView*> projectTreeViews();
caf::PdmUiTreeView* projectTreeView( int treeId );
caf::PdmUiTreeView* getTreeViewWithItem( const caf::PdmUiItem* item );
void setExpanded( const caf::PdmUiItem* uiItem, bool expanded = true );
void selectAsCurrentItem( const caf::PdmObject* object, bool allowActiveViewChange = true );
void toggleItemInSelection( const caf::PdmObject* object, bool allowActiveViewChange = true );
@@ -85,12 +93,15 @@ public:
bool isBlockingViewSelectionOnSubWindowActivated() const;
protected:
void createTreeViews( int numberOfTrees );
void removeViewerFromMdiArea( QMdiArea* mdiArea, QWidget* viewer );
void initializeSubWindow( QMdiArea* mdiArea,
QMdiSubWindow* mdiSubWindow,
const QPoint& subWindowPos,
const QSize& subWindowSize );
void restoreTreeViewStates( QString treeStateString, QString treeIndexString );
protected slots:
void slotDockWidgetToggleViewActionTriggered();
void slotRefreshHelpActions();
@@ -100,8 +111,7 @@ protected slots:
void slotRefreshUndoRedoActions();
protected:
caf::PdmUiTreeView* m_projectTreeView;
bool m_allowActiveViewChangeFromSelection; // To be used in selectedObjectsChanged() to control
bool m_allowActiveViewChangeFromSelection; // To be used in selectedObjectsChanged() to control
// whether to select the corresponding active view or not
QAction* m_undoAction;
@@ -112,6 +122,9 @@ private:
QString registryFolderName();
private:
std::vector<caf::PdmUiTreeView*> m_projectTreeViews;
std::vector<std::unique_ptr<caf::PdmUiDragDropInterface>> m_dragDropInterfaces;
bool m_showFirstVisibleWindowMaximized;
bool m_blockSubWindowActivation;
bool m_blockSubWindowProjectTreeSelection;