Fix filtering editor nodes in Create Dialog

This commit is contained in:
kobewi 2023-01-27 12:20:02 +01:00
parent 9d555f5c68
commit 970f5533dd
2 changed files with 8 additions and 2 deletions

View File

@ -122,7 +122,7 @@ bool CreateDialog::_should_hide_type(const String &p_type) const {
return true; return true;
} }
if (base_type == "Node" && p_type.begins_with("Editor")) { if (is_base_type_node && p_type.begins_with("Editor")) {
return true; // Do not show editor nodes. return true; // Do not show editor nodes.
} }
@ -508,6 +508,11 @@ String CreateDialog::get_selected_type() {
return selected->get_text(0); return selected->get_text(0);
} }
void CreateDialog::set_base_type(const String &p_base) {
base_type = p_base;
is_base_type_node = ClassDB::is_parent_class(p_base, "Node");
}
Variant CreateDialog::instantiate_selected() { Variant CreateDialog::instantiate_selected() {
TreeItem *selected = search_options->get_selected(); TreeItem *selected = search_options->get_selected();

View File

@ -51,6 +51,7 @@ class CreateDialog : public ConfirmationDialog {
Tree *search_options = nullptr; Tree *search_options = nullptr;
String base_type; String base_type;
bool is_base_type_node = false;
String icon_fallback; String icon_fallback;
String preferred_search_result_type; String preferred_search_result_type;
@ -113,7 +114,7 @@ public:
Variant instantiate_selected(); Variant instantiate_selected();
String get_selected_type(); String get_selected_type();
void set_base_type(const String &p_base) { base_type = p_base; } void set_base_type(const String &p_base);
String get_base_type() const { return base_type; } String get_base_type() const { return base_type; }
void select_base(); void select_base();