MCPcopy Create free account
hub / github.com/Illation/ETEngine / Init

Method Init

Engine/source/EtEditor/Content/ResourceView.cpp:33–91  ·  view source on GitHub ↗

---------------------------------------------- ResourceView::Init Link everything together - if allowed types is empty every asset type is selectable

Source from the content-addressed store, hash-verified

31// - if allowed types is empty every asset type is selectable
32//
33void ResourceView::Init(std::vector<rttr::type> const& allowedTypes)
34{
35 // attachment to parent widget
36 m_RefBuilder->get_widget("resource_viewer", m_Attachment);
37 ET_ASSERT(m_Attachment != nullptr);
38
39 // area for displaying asset widgets
40 m_RefBuilder->get_widget("resource_view", m_FlowBox);
41 ET_ASSERT(m_FlowBox != nullptr);
42
43 m_FlowBox->signal_selected_children_changed().connect(sigc::mem_fun(*this, &ResourceView::OnSelectedChildrenChanged));
44
45 // filtering
46 m_RefBuilder->get_widget("toolbar", m_Toolbar); // allows detatching the filter and search options and putting them in a toolbar instead
47 ET_ASSERT(m_Toolbar != nullptr);
48
49 Gtk::MenuButton* filterButton;
50 m_RefBuilder->get_widget("filter", filterButton);
51 ET_ASSERT(filterButton != nullptr);
52 m_TypeFilter.RegisterListener(this); // no need to unregister ourselves because we own it
53 m_TypeFilter.Init(filterButton, allowedTypes);
54
55 m_RefBuilder->get_widget("search", m_SearchBar);
56 ET_ASSERT(m_SearchBar != nullptr);
57
58 m_SearchBar->signal_search_changed().connect(sigc::mem_fun(*this, &ResourceView::OnSearchChanged));
59
60 // toggle view of engine or project resources
61 m_RefBuilder->get_widget("engine_button", m_EngineButton);
62 ET_ASSERT(m_EngineButton != nullptr);
63 m_RefBuilder->get_widget("project_button", m_ProjectButton);
64 ET_ASSERT(m_ProjectButton != nullptr);
65
66 m_EngineButton->signal_toggled().connect(sigc::mem_fun(*this, &ResourceView::ResourceGroupToggled));
67 m_ProjectButton->signal_toggled().connect(sigc::mem_fun(*this, &ResourceView::ResourceGroupToggled));
68 if (m_ProjectSelected)
69 {
70 m_ProjectButton->set_active(true);
71 }
72 else
73 {
74 m_EngineButton->set_active(true);
75 }
76
77 // directory tree
78 m_RefBuilder->get_widget("directory_tree", m_TreeView);
79 ET_ASSERT(m_TreeView != nullptr);
80
81 m_TreeModel = Gtk::TreeStore::create(m_Columns);
82
83 m_TreeView->set_model(m_TreeModel);
84
85 m_TreeSelection = m_TreeView->get_selection();
86 m_TreeSelection->signal_changed().connect(sigc::mem_fun(*this, &ResourceView::OnDirectorySelectionChanged));
87
88 m_TreeView->append_column("Directory", m_Columns.m_Name);
89
90 RebuildDirectoryTree();

Callers

nothing calls this directly

Calls 1

RegisterListenerMethod · 0.45

Tested by

no test coverage detected