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;
}
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.
}
@ -508,6 +508,11 @@ String CreateDialog::get_selected_type() {
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() {
TreeItem *selected = search_options->get_selected();

View file

@ -51,6 +51,7 @@ class CreateDialog : public ConfirmationDialog {
Tree *search_options = nullptr;
String base_type;
bool is_base_type_node = false;
String icon_fallback;
String preferred_search_result_type;
@ -113,7 +114,7 @@ public:
Variant instantiate_selected();
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; }
void select_base();