Elaztek Developer Hub
Blamite Game Engine - Keystone  00454.07.12.26.2151.blamite
A library that enables the use of Qt in Blamite's editing tools.
hierarchy_view.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QWidget>
4 #include <QMenu>
5 #include <Strings/components/classes/events/events.h>
6 
9 #include "ui_hierarchy_view.h"
10 
11 class BlamWorldObject;
12 
13 class HierarchyViewItemMenu : public QMenu
14 {
15  Q_OBJECT
16 
17 private:
18  BlamHierarchyViewTreeWidget_Object* tree_item = nullptr;
19  BlamScenarioHierarchyNode_Group* group_node = nullptr;
20 
21  QAction* CreateMenuItem(std::string icon_id, QString label);
22 
23 public:
24  HierarchyViewItemMenu(BlamScenarioHierarchyNode_Group* _group, BlamHierarchyViewTreeWidget_Object* _tree_item, QPoint pos, QWidget* parent = Q_NULLPTR);
25 
26 private slots:
27  void OnDuplicateClicked();
28  void OnReloadTagClicked();
29  void OnMoveToCameraClicked();
30 };
31 
33 {
34  Q_OBJECT
35 
36 private:
37  Ui::hierarchy_view ui;
38 
39  bool item_update_lock = false;
40  bool hierarchy_refreshing = false;
41  bool item_pane_populating = false;
42 
43  void DisableAllObjectGizmos();
44 
45  void PopulateItemPane(BlamScenarioHierarchyNode_Group* group, bool clear_first = true,
46  BlamScenarioHierarchyNode_Object* active_item = nullptr);
47 
48 public:
51 
52  void ClearView();
53  void RefreshView();
54  void RefreshGroupPane();
55  void RefreshItemPane();
56 
57  void UpdateEnabledButtons();
58 
60 
61  void OnHierarchyReloadEvent(HierarchyReloadEvent* event) override;
62 
65 
66  BlamScenarioHierarchyNode_Group* GetCurrentGroup();
67  BlamScenarioHierarchyNode_Object* GetCurrentObject();
68 
69  Q_INVOKABLE void SetActiveObject(BlamWorldObject* object);
70 
71 private slots:
72 
73  void RefreshButton_Clicked();
74  void NewInstanceButton_Clicked();
75  void DeleteButton_Clicked();
76  void NewGroupButton_Clicked();
77  void EditTypesButton_Clicked();
78 
79  void GroupPane_ItemCollapsed(QTreeWidgetItem* item);
80  void GroupPane_ItemExpanded(QTreeWidgetItem* item);
81  void GroupPane_ItemActivated(QTreeWidgetItem* item, int column);
82  void GroupPane_SelectionChanged();
83 
84  void ItemPane_SelectionChanged();
85  void ItemPane_ContextMenuRequested(QPoint pos);
86 };
modify_explorer_filters
Definition: modify_explorer_filters.h:6
BlamEditorToolWindow
Base class for all editor tool windows.
Definition: BlamEditorToolWindow.h:39
BlamExplorerBarTreeWidget::UpdateIcon
void UpdateIcon()
Updates the node's icon.
Definition: treewidget.cpp:277
custom_tag_editor.h
BlamEditorToolWindow_HierarchyView::BlamEditorToolWindow_HierarchyView
BlamEditorToolWindow_HierarchyView()
Definition: hierarchy_view.cpp:10
BlamExplorerBarContextMenu
Definition: explorer_context_menu.h:7
BlamEditorToolWindow.h
BlamEditorToolWindowType::HierarchyView
@ HierarchyView
The hierarchy view, used to view objects within a scenario. Used in Sapien.
BlamEditorToolWindow_HierarchyView::GetCurrentObject
BlamScenarioHierarchyNode_Object * GetCurrentObject()
Definition: hierarchy_view.cpp:293
BlamEditorToolWindow_HierarchyView::GetCurrentObjectWidget
BlamHierarchyViewTreeWidget_Object * GetCurrentObjectWidget()
Definition: hierarchy_view.cpp:270
treewidget.h
HierarchyViewItemMenu
Definition: hierarchy_view.h:13
hierarchy_view.h
BlamHierarchyViewTreeWidget_Group
Definition: treewidget.h:17
BlamHierarchyViewTreeWidget_Group::group_node
BlamScenarioHierarchyNode_Group * group_node
Definition: treewidget.h:20
BlamHierarchyViewTreeWidget
Definition: treewidget.h:6
explorer_bar.h
treewidget.h
BlamEditorToolWindow_ExplorerBar::RebuildTagTree
void RebuildTagTree()
Rebuilds the tag tree.
Definition: explorer_bar.cpp:84
BlamEditorToolWindowType
BlamEditorToolWindowType
Enumerator containing all possible editor tool window types.
Definition: BlamEditorToolWindow.h:21
DEFAULT_EDITOR
#define DEFAULT_EDITOR
Definition: custom_tag_editor.h:14
BlamEditorToolWindow_HierarchyView::GetCurrentGroup
BlamScenarioHierarchyNode_Group * GetCurrentGroup()
Definition: hierarchy_view.cpp:281
BlamEditorToolWindow_HierarchyView::SetActiveObject
Q_INVOKABLE void SetActiveObject(BlamWorldObject *object)
Definition: hierarchy_view.cpp:179
BlamEditorToolWindow_HierarchyView
Definition: hierarchy_view.h:32
BlamEditorToolWindow_HierarchyView::GetCurrentFolderIndex
int GetCurrentFolderIndex()
Definition: hierarchy_view.cpp:133
BlamExplorerBarTreeWidget
Definition: treewidget.h:14
HierarchyViewItemMenu::HierarchyViewItemMenu
HierarchyViewItemMenu(BlamScenarioHierarchyNode_Group *_group, BlamHierarchyViewTreeWidget_Object *_tree_item, QPoint pos, QWidget *parent=Q_NULLPTR)
Definition: item_menu.cpp:9
BlamEditorToolWindow_HierarchyView::OnHierarchyReloadEvent
void OnHierarchyReloadEvent(HierarchyReloadEvent *event) override
Definition: hierarchy_view.cpp:150
BlamEditorToolWindow_HierarchyView::~BlamEditorToolWindow_HierarchyView
~BlamEditorToolWindow_HierarchyView()
Definition: hierarchy_view.cpp:40
BlamHierarchyViewTreeWidget_Object
Definition: treewidget.h:27
BlamEditorToolWindow_HierarchyView::RefreshView
void RefreshView()
Definition: hierarchy_view.cpp:51
BlamEditorToolWindow_HierarchyView::GetCurrentGroupWidget
BlamHierarchyViewTreeWidget_Group * GetCurrentGroupWidget()
Definition: hierarchy_view.cpp:259
BlamEditorToolWindow_HierarchyView::RefreshItemPane
void RefreshItemPane()
Definition: hierarchy_view.cpp:86
BlamEditorToolWindow_HierarchyView::UpdateEnabledButtons
void UpdateEnabledButtons()
Definition: hierarchy_view.cpp:101
BlamHierarchyViewTreeWidget_Object::object_node
BlamScenarioHierarchyNode_Object * object_node
Definition: treewidget.h:30
explorer_context_menu.h
BlamExplorerBarTreeWidget::OpenTag
void OpenTag(std::string editor_type="")
This will open the tag associated with the node, if one is present.
Definition: treewidget.cpp:385
BlamEditorToolWindow_HierarchyView::RefreshGroupPane
void RefreshGroupPane()
Definition: hierarchy_view.cpp:70
modify_explorer_filters.h
BlamEditorToolWindow_HierarchyView::ClearView
void ClearView()
Definition: hierarchy_view.cpp:45