Skip to content

Commit fc76cf5

Browse files
committed
2 parents 75b5963 + 8145c79 commit fc76cf5

3 files changed

Lines changed: 29 additions & 3 deletions

File tree

editor/import/3d/scene_import_settings.cpp

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,10 @@ void SceneImportSettingsDialog::_fill_scene(Node *p_node, TreeItem *p_parent_ite
431431

432432
item->set_selectable(0, true);
433433

434+
if (scene_tree_filter_bar) {
435+
scene_tree_filter_bar->clear();
436+
}
437+
434438
if (!node_map.has(import_id)) {
435439
NodeData nd;
436440

@@ -1235,6 +1239,11 @@ void SceneImportSettingsDialog::_on_light_rotate_switch_pressed() {
12351239
light2->set_as_top_level_keep_local(light_top_level);
12361240
}
12371241

1242+
void SceneImportSettingsDialog::_on_tree_tab_changed(int p_tab_id) {
1243+
scene_tree_filter_bar->managed_tree = static_cast<Tree *>(data_mode->get_tab_control(p_tab_id));
1244+
scene_tree_filter_bar->clear();
1245+
}
1246+
12381247
void SceneImportSettingsDialog::_viewport_input(const Ref<InputEvent> &p_input) {
12391248
float *rot_x = &cam_rot_x;
12401249
float *rot_y = &cam_rot_y;
@@ -1711,16 +1720,27 @@ SceneImportSettingsDialog::SceneImportSettingsDialog() {
17111720
main_vb->add_child(tree_split);
17121721
tree_split->set_v_size_flags(Control::SIZE_EXPAND_FILL);
17131722

1723+
VBoxContainer *data_mode_vbc = memnew(VBoxContainer);
1724+
tree_split->add_child(data_mode_vbc);
1725+
data_mode_vbc->set_anchors_and_offsets_preset(Control::LayoutPreset::PRESET_FULL_RECT);
1726+
1727+
// need to assign the default Tree memory space
1728+
scene_tree = memnew(Tree);
1729+
scene_tree_filter_bar = memnew(TreeSortAndFilterBar(scene_tree, TTRC("Filter")));
1730+
data_mode_vbc->add_child(scene_tree_filter_bar);
1731+
scene_tree_filter_bar->add_sort_option(TTRC("Name"), TreeSortAndFilterBar::SortType::ALPHA_SORT, 0);
1732+
17141733
data_mode = memnew(TabContainer);
1715-
tree_split->add_child(data_mode);
1734+
data_mode_vbc->add_child(data_mode);
17161735
data_mode->set_custom_minimum_size(Size2(300 * EDSCALE, 0));
17171736
data_mode->set_theme_type_variation("TabContainerOdd");
1737+
data_mode->set_v_size_flags(Control::SIZE_EXPAND_FILL);
1738+
data_mode->connect("tab_changed", callable_mp(this, &SceneImportSettingsDialog::_on_tree_tab_changed));
17181739

17191740
property_split = memnew(HSplitContainer);
17201741
tree_split->add_child(property_split);
17211742
property_split->set_h_size_flags(Control::SIZE_EXPAND_FILL);
17221743

1723-
scene_tree = memnew(Tree);
17241744
scene_tree->set_name(TTR("Scene"));
17251745
scene_tree->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED);
17261746
data_mode->add_child(scene_tree);

editor/import/3d/scene_import_settings.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
#include "scene/resources/3d/primitive_meshes.h"
4747
#include "scene/resources/3d/sky_material.h"
4848

49+
#include "modules/objectdb_profiler/editor/data_viewers/shared_controls.h"
50+
4951
class EditorFileDialog;
5052
class EditorInspector;
5153
class SceneImportSettingsData;
@@ -71,6 +73,8 @@ class SceneImportSettingsDialog : public ConfirmationDialog {
7173
Tree *mesh_tree = nullptr;
7274
Tree *material_tree = nullptr;
7375

76+
TreeSortAndFilterBar *scene_tree_filter_bar = nullptr;
77+
7478
EditorInspector *inspector = nullptr;
7579

7680
SubViewport *base_viewport = nullptr;
@@ -198,6 +202,7 @@ class SceneImportSettingsDialog : public ConfirmationDialog {
198202
void _on_light_1_switch_pressed();
199203
void _on_light_2_switch_pressed();
200204
void _on_light_rotate_switch_pressed();
205+
void _on_tree_tab_changed(int p_tab_id);
201206

202207
void _viewport_input(const Ref<InputEvent> &p_input);
203208

modules/objectdb_profiler/editor/data_viewers/shared_controls.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ class TreeSortAndFilterBar : public HBoxContainer {
107107

108108
LineEdit *filter_edit = nullptr;
109109
MenuButton *sort_button = nullptr;
110-
Tree *managed_tree = nullptr;
111110
HashMap<int, SortItem> sort_items;
112111
int current_sort = 0;
113112

@@ -117,6 +116,8 @@ class TreeSortAndFilterBar : public HBoxContainer {
117116
void _filter_changed(const String &p_filter);
118117

119118
public:
119+
Tree *managed_tree = nullptr;
120+
120121
TreeSortAndFilterBar(Tree *p_managed_tree, const String &p_filter_placeholder_text);
121122
void _notification(int p_what);
122123
SortOptionIndexes add_sort_option(const String &p_new_option, SortType p_sort_type, int p_sort_column, bool p_is_default = false);

0 commit comments

Comments
 (0)