summaryrefslogtreecommitdiffstats
path: root/editor
diff options
context:
space:
mode:
authorkobewi <kobewi4e@gmail.com>2023-05-18 00:09:44 +0200
committerkobewi <kobewi4e@gmail.com>2023-05-18 00:09:44 +0200
commitab787fe4d25d426f8a03922c09370adc442f16fe (patch)
treefbe8ec2611898ea08537f26120e2e941e61f7822 /editor
parentda21cb7042b09de24964b9bd5a1a8e1d93ab4b8b (diff)
downloadredot-engine-ab787fe4d25d426f8a03922c09370adc442f16fe.tar.gz
Add scrolling to overwrite dialog
Diffstat (limited to 'editor')
-rw-r--r--editor/filesystem_dock.cpp29
-rw-r--r--editor/filesystem_dock.h6
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;