Skip to content

Commit d7eefc3

Browse files
committed
Fix DependecyEditorOwners not acknowledging non-scene resources
1 parent 621d68e commit d7eefc3

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

editor/dependency_editor.cpp

+29-5
Original file line numberDiff line numberDiff line change
@@ -286,10 +286,23 @@ void DependencyEditorOwners::_list_rmb_clicked(int p_item, const Vector2 &p_pos,
286286
file_options->clear();
287287
file_options->reset_size();
288288
if (p_item >= 0) {
289-
if (owners->get_selected_items().size() == 1) {
290-
file_options->add_icon_item(get_theme_icon(SNAME("Load"), SNAME("EditorIcons")), TTR("Open Scene"), FILE_OPEN);
289+
PackedInt32Array selected_items = owners->get_selected_items();
290+
bool only_scenes_selected = true;
291+
292+
for (int i = 0; i < selected_items.size(); i++) {
293+
int item_idx = selected_items[i];
294+
if (ResourceLoader::get_resource_type(owners->get_item_text(item_idx)) != "PackedScene") {
295+
only_scenes_selected = false;
296+
break;
297+
}
298+
}
299+
300+
if (only_scenes_selected) {
301+
file_options->add_icon_item(get_theme_icon(SNAME("Load"), SNAME("EditorIcons")), TTRN("Open Scene", "Open Scenes", selected_items.size()), FILE_OPEN);
302+
} else if (selected_items.size() == 1) {
303+
file_options->add_icon_item(get_theme_icon(SNAME("Load"), SNAME("EditorIcons")), TTR("Open"), FILE_OPEN);
291304
} else {
292-
file_options->add_icon_item(get_theme_icon(SNAME("Load"), SNAME("EditorIcons")), TTR("Open Scenes"), FILE_OPEN);
305+
return;
293306
}
294307
}
295308

@@ -303,9 +316,19 @@ void DependencyEditorOwners::_select_file(int p_idx) {
303316

304317
if (ResourceLoader::get_resource_type(fpath) == "PackedScene") {
305318
EditorNode::get_singleton()->open_request(fpath);
306-
hide();
307-
emit_signal(SNAME("confirmed"));
319+
} else {
320+
EditorNode::get_singleton()->load_resource(fpath);
308321
}
322+
hide();
323+
emit_signal(SNAME("confirmed"));
324+
}
325+
326+
void DependencyEditorOwners::_empty_clicked(const Vector2 &p_pos, MouseButton p_mouse_button_index) {
327+
if (p_mouse_button_index != MouseButton::LEFT) {
328+
return;
329+
}
330+
331+
owners->deselect_all();
309332
}
310333

311334
void DependencyEditorOwners::_file_option(int p_option) {
@@ -372,6 +395,7 @@ DependencyEditorOwners::DependencyEditorOwners() {
372395
owners->set_select_mode(ItemList::SELECT_MULTI);
373396
owners->connect("item_clicked", callable_mp(this, &DependencyEditorOwners::_list_rmb_clicked));
374397
owners->connect("item_activated", callable_mp(this, &DependencyEditorOwners::_select_file));
398+
owners->connect("empty_clicked", callable_mp(this, &DependencyEditorOwners::_empty_clicked));
375399
owners->set_allow_rmb_select(true);
376400
add_child(owners);
377401
}

editor/dependency_editor.h

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ class DependencyEditorOwners : public AcceptDialog {
8080
static void _bind_methods();
8181
void _list_rmb_clicked(int p_item, const Vector2 &p_pos, MouseButton p_mouse_button_index);
8282
void _select_file(int p_idx);
83+
void _empty_clicked(const Vector2 &p_pos, MouseButton p_mouse_button_index);
8384
void _file_option(int p_option);
8485

8586
private:

0 commit comments

Comments
 (0)