diff options
author | Yuri Sizov <11782833+YuriSizov@users.noreply.github.com> | 2023-05-22 20:17:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-22 20:17:26 +0200 |
commit | 903dda8337b7766924854fb64726496e7d27cde1 (patch) | |
tree | 04149e632392c6968ac2fb61d1910e6f2a79d162 /editor | |
parent | 5dc093b19a26b5055ceecaf1e1076bb5b4529a5a (diff) | |
parent | ab787fe4d25d426f8a03922c09370adc442f16fe (diff) | |
download | redot-engine-903dda8337b7766924854fb64726496e7d27cde1.tar.gz |
Merge pull request #77179 from KoBeWi/that's_a_lot_of_files
Add scrolling to overwrite dialog
Diffstat (limited to 'editor')
-rw-r--r-- | editor/filesystem_dock.cpp | 29 | ||||
-rw-r--r-- | editor/filesystem_dock.h | 6 |
2 files changed, 30 insertions, 5 deletions
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index 87ba7f53b0..976ccab99e 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -460,6 +460,8 @@ void FileSystemDock::_notification(int p_what) { } break; case NOTIFICATION_THEME_CHANGED: { + overwrite_dialog_scroll->add_theme_style_override("panel", get_theme_stylebox("panel", "Tree")); + if (is_visible_in_tree()) { _update_display_mode(true); } @@ -1725,11 +1727,12 @@ void FileSystemDock::_move_operation_confirm(const String &p_to_path, bool p_cop Vector<String> conflicting_items = _check_existing(); if (!conflicting_items.is_empty()) { // Ask to do something. - overwrite_dialog->set_text(vformat( - p_copy ? TTR("The following files or folders conflict with items in the target location '%s':\n\n%s\n\nDo you wish to overwrite them or rename the copied files?") - : TTR("The following files or folders conflict with items in the target location '%s':\n\n%s\n\nDo you wish to overwrite them or rename the moved files?"), - to_move_path, - String("\n").join(conflicting_items))); + overwrite_dialog_header->set_text(vformat( + TTR("The following files or folders conflict with items in the target location '%s':"), to_move_path)); + overwrite_dialog_file_list->set_text(String("\n").join(conflicting_items)); + overwrite_dialog_footer->set_text( + p_copy ? TTR("Do you wish to overwrite them or rename the copied files?") + : TTR("Do you wish to overwrite them or rename the moved files?")); overwrite_dialog->popup_centered(); return; } @@ -3368,6 +3371,22 @@ FileSystemDock::FileSystemDock() { overwrite_dialog->add_button(TTR("Keep Both"), true)->connect("pressed", callable_mp(this, &FileSystemDock::_overwrite_dialog_action).bind(false)); overwrite_dialog->connect("confirmed", callable_mp(this, &FileSystemDock::_overwrite_dialog_action).bind(true)); + VBoxContainer *overwrite_dialog_vb = memnew(VBoxContainer); + overwrite_dialog->add_child(overwrite_dialog_vb); + + overwrite_dialog_header = memnew(Label); + overwrite_dialog_vb->add_child(overwrite_dialog_header); + + overwrite_dialog_scroll = memnew(ScrollContainer); + overwrite_dialog_vb->add_child(overwrite_dialog_scroll); + overwrite_dialog_scroll->set_custom_minimum_size(Vector2(400, 600) * EDSCALE); + + overwrite_dialog_file_list = memnew(Label); + overwrite_dialog_scroll->add_child(overwrite_dialog_file_list); + + overwrite_dialog_footer = memnew(Label); + overwrite_dialog_vb->add_child(overwrite_dialog_footer); + duplicate_dialog = memnew(ConfirmationDialog); VBoxContainer *duplicate_dialog_vb = memnew(VBoxContainer); duplicate_dialog->add_child(duplicate_dialog_vb); diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index d8d7434579..480e0db84d 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -164,7 +164,13 @@ private: ConfirmationDialog *duplicate_dialog = nullptr; LineEdit *duplicate_dialog_text = nullptr; DirectoryCreateDialog *make_dir_dialog = nullptr; + ConfirmationDialog *overwrite_dialog = nullptr; + ScrollContainer *overwrite_dialog_scroll = nullptr; + Label *overwrite_dialog_header = nullptr; + Label *overwrite_dialog_footer = nullptr; + Label *overwrite_dialog_file_list = nullptr; + SceneCreateDialog *make_scene_dialog = nullptr; ScriptCreateDialog *make_script_dialog = nullptr; ShaderCreateDialog *make_shader_dialog = nullptr; |