@@ -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+
12381247void 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);
0 commit comments