3131#include " resource_preloader_editor_plugin.h"
3232
3333#include " core/io/resource_loader.h"
34+ #include " editor/docks/editor_dock_manager.h"
3435#include " editor/editor_interface.h"
3536#include " editor/editor_node.h"
3637#include " editor/editor_undo_redo_manager.h"
37- #include " editor/gui/editor_bottom_panel.h"
3838#include " editor/gui/editor_file_dialog.h"
3939#include " editor/settings/editor_command_palette.h"
4040#include " editor/settings/editor_settings.h"
4141#include " editor/themes/editor_scale.h"
42+ #include " scene/gui/dialogs.h"
43+ #include " scene/gui/tree.h"
44+ #include " scene/main/resource_preloader.h"
4245
4346void ResourcePreloaderEditor::_notification (int p_what) {
4447 switch (p_what) {
48+ case NOTIFICATION_TRANSLATION_CHANGED: {
49+ if (preloader) {
50+ _update_library ();
51+ }
52+ } break ;
53+
4554 case NOTIFICATION_THEME_CHANGED: {
4655 load->set_button_icon (get_editor_theme_icon (SNAME (" Folder" )));
4756 } break ;
@@ -56,12 +65,9 @@ void ResourcePreloaderEditor::_files_load_request(const Vector<String> &p_paths)
5665 resource = ResourceLoader::load (path);
5766
5867 if (resource.is_null ()) {
59- dialog->set_text (TTR (" ERROR: Couldn't load resource!" ));
60- dialog->set_title (TTR (" Error!" ));
61- // dialog->get_cancel()->set_text("Close");
62- dialog->set_ok_button_text (TTR (" Close" ));
68+ dialog->set_text (TTRC (" ERROR: Couldn't load resource!" ));
6369 dialog->popup_centered ();
64- return ; // /beh should show an error i guess
70+ return ; // / Beh, should show an error I guess.
6571 }
6672
6773 String basename = path.get_file ().get_basename ();
@@ -142,11 +148,9 @@ void ResourcePreloaderEditor::_remove_resource(const String &p_to_remove) {
142148void ResourcePreloaderEditor::_paste_pressed () {
143149 Ref<Resource> r = EditorSettings::get_singleton ()->get_resource_clipboard ();
144150 if (r.is_null ()) {
145- dialog->set_text (TTR (" Resource clipboard is empty!" ));
146- dialog->set_title (TTR (" Error!" ));
147- dialog->set_ok_button_text (TTR (" Close" ));
151+ dialog->set_text (TTRC (" Resource clipboard is empty!" ));
148152 dialog->popup_centered ();
149- return ; // /beh should show an error i guess
153+ return ; // / Beh, should show an error I guess.
150154 }
151155
152156 String name = r->get_name ();
@@ -175,7 +179,10 @@ void ResourcePreloaderEditor::_paste_pressed() {
175179
176180void ResourcePreloaderEditor::_update_library () {
177181 tree->clear ();
178- tree->set_hide_root (true );
182+ if (!preloader) {
183+ return ;
184+ }
185+
179186 TreeItem *root = tree->create_item (nullptr );
180187
181188 List<StringName> rnames;
@@ -215,8 +222,6 @@ void ResourcePreloaderEditor::_update_library() {
215222 }
216223 ti->add_button (1 , get_editor_theme_icon (SNAME (" Remove" )), BUTTON_REMOVE, false , TTR (" Remove" ));
217224 }
218-
219- // player->add_resource("default",resource);
220225}
221226
222227void ResourcePreloaderEditor::_cell_button_pressed (Object *p_item, int p_column, int p_id, MouseButton p_button) {
@@ -242,13 +247,7 @@ void ResourcePreloaderEditor::_cell_button_pressed(Object *p_item, int p_column,
242247
243248void ResourcePreloaderEditor::edit (ResourcePreloader *p_preloader) {
244249 preloader = p_preloader;
245-
246- if (p_preloader) {
247- _update_library ();
248- } else {
249- hide ();
250- set_physics_process (false );
251- }
250+ _update_library ();
252251}
253252
254253Variant ResourcePreloaderEditor::get_drag_data_fw (const Point2 &p_point, Control *p_from) {
@@ -346,7 +345,15 @@ void ResourcePreloaderEditor::_bind_methods() {
346345}
347346
348347ResourcePreloaderEditor::ResourcePreloaderEditor () {
349- // add_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_stylebox("panel","Panel"));
348+ set_name (TTRC (" ResourcePreloader" ));
349+ set_icon_name (" ResourcePreloader" );
350+ set_dock_shortcut (ED_SHORTCUT_AND_COMMAND (" bottom_panels/toggle_resource_preloader_bottom_panel" , TTRC (" Toggle ResourcePreloader Dock" )));
351+ set_default_slot (DockConstants::DOCK_SLOT_BOTTOM);
352+ set_available_layouts (EditorDock::DOCK_LAYOUT_ALL);
353+ set_global (false );
354+ set_transient (true );
355+
356+ set_custom_minimum_size (Size2 (0 , 250 * EDSCALE));
350357
351358 VBoxContainer *vbc = memnew (VBoxContainer);
352359 add_child (vbc);
@@ -355,11 +362,11 @@ ResourcePreloaderEditor::ResourcePreloaderEditor() {
355362 vbc->add_child (hbc);
356363
357364 load = memnew (Button);
358- load->set_tooltip_text (TTR (" Load Resource" ));
365+ load->set_tooltip_text (TTRC (" Load Resource" ));
359366 hbc->add_child (load);
360367
361368 paste = memnew (Button);
362- paste->set_text (TTR (" Paste" ));
369+ paste->set_text (TTRC (" Paste" ));
363370 hbc->add_child (paste);
364371
365372 file = memnew (EditorFileDialog);
@@ -368,19 +375,20 @@ ResourcePreloaderEditor::ResourcePreloaderEditor() {
368375 tree = memnew (Tree);
369376 tree->connect (" button_clicked" , callable_mp (this , &ResourcePreloaderEditor::_cell_button_pressed));
370377 tree->set_auto_translate_mode (AUTO_TRANSLATE_MODE_DISABLED);
378+ tree->set_hide_root (true );
371379 tree->set_columns (2 );
372380 tree->set_column_expand_ratio (0 , 2 );
373381 tree->set_column_clip_content (0 , true );
374382 tree->set_column_expand_ratio (1 , 3 );
375383 tree->set_column_clip_content (1 , true );
376- tree->set_column_expand (0 , true );
377- tree->set_column_expand (1 , true );
378384 tree->set_v_size_flags (SIZE_EXPAND_FILL);
379385
380386 SET_DRAG_FORWARDING_GCD (tree, ResourcePreloaderEditor);
381387 vbc->add_child (tree);
382388
383389 dialog = memnew (AcceptDialog);
390+ dialog->set_title (TTRC (" Error!" ));
391+ dialog->set_ok_button_text (TTRC (" Close" ));
384392 add_child (dialog);
385393
386394 load->connect (SceneStringName (pressed), callable_mp (this , &ResourcePreloaderEditor::_load_pressed));
@@ -400,29 +408,19 @@ void ResourcePreloaderEditorPlugin::edit(Object *p_object) {
400408}
401409
402410bool ResourcePreloaderEditorPlugin::handles (Object *p_object) const {
403- return p_object-> is_class ( " ResourcePreloader " );
411+ return Object::cast_to<ResourcePreloader>(p_object );
404412}
405413
406414void ResourcePreloaderEditorPlugin::make_visible (bool p_visible) {
407415 if (p_visible) {
408- // preloader_editor->show();
409- button->show ();
410- EditorNode::get_bottom_panel ()->make_item_visible (preloader_editor);
411- // preloader_editor->set_process(true);
416+ preloader_editor->make_visible ();
412417 } else {
413- if (preloader_editor->is_visible_in_tree ()) {
414- EditorNode::get_bottom_panel ()->hide_bottom_panel ();
415- }
416- button->hide ();
417- // preloader_editor->hide();
418- // preloader_editor->set_process(false);
418+ preloader_editor->close ();
419419 }
420420}
421421
422422ResourcePreloaderEditorPlugin::ResourcePreloaderEditorPlugin () {
423423 preloader_editor = memnew (ResourcePreloaderEditor);
424- preloader_editor->set_custom_minimum_size (Size2 (0 , 250 ) * EDSCALE);
425-
426- button = EditorNode::get_bottom_panel ()->add_item (TTRC (" ResourcePreloader" ), preloader_editor, ED_SHORTCUT_AND_COMMAND (" bottom_panels/toggle_resource_preloader_bottom_panel" , TTRC (" Toggle ResourcePreloader Bottom Panel" )));
427- button->hide ();
424+ EditorDockManager::get_singleton ()->add_dock (preloader_editor);
425+ preloader_editor->close ();
428426}
0 commit comments