@@ -286,10 +286,23 @@ void DependencyEditorOwners::_list_rmb_clicked(int p_item, const Vector2 &p_pos,
286
286
file_options->clear ();
287
287
file_options->reset_size ();
288
288
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);
291
304
} else {
292
- file_options-> add_icon_item ( get_theme_icon ( SNAME ( " Load " ), SNAME ( " EditorIcons " )), TTR ( " Open Scenes " ), FILE_OPEN) ;
305
+ return ;
293
306
}
294
307
}
295
308
@@ -303,9 +316,19 @@ void DependencyEditorOwners::_select_file(int p_idx) {
303
316
304
317
if (ResourceLoader::get_resource_type (fpath) == " PackedScene" ) {
305
318
EditorNode::get_singleton ()->open_request (fpath);
306
- hide ();
307
- emit_signal ( SNAME ( " confirmed " ) );
319
+ } else {
320
+ EditorNode::get_singleton ()-> load_resource (fpath );
308
321
}
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 ();
309
332
}
310
333
311
334
void DependencyEditorOwners::_file_option (int p_option) {
@@ -372,6 +395,7 @@ DependencyEditorOwners::DependencyEditorOwners() {
372
395
owners->set_select_mode (ItemList::SELECT_MULTI);
373
396
owners->connect (" item_clicked" , callable_mp (this , &DependencyEditorOwners::_list_rmb_clicked));
374
397
owners->connect (" item_activated" , callable_mp (this , &DependencyEditorOwners::_select_file));
398
+ owners->connect (" empty_clicked" , callable_mp (this , &DependencyEditorOwners::_empty_clicked));
375
399
owners->set_allow_rmb_select (true );
376
400
add_child (owners);
377
401
}
0 commit comments