Merge pull request #105154 from AThousandShips/fix_pack_zip

[Editor] Use separate `EditorFileDialog` for "Pack Project as ZIP"
This commit is contained in:
Thaddeus Crews 2025-04-08 12:32:51 -05:00
commit 86ff668614
No known key found for this signature in database
GPG Key ID: 8C6E5FEB5FC03CCC
2 changed files with 12 additions and 8 deletions

View File

@ -3030,14 +3030,9 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
String resource_path = ProjectSettings::get_singleton()->get_resource_path();
const String base_path = resource_path.substr(0, resource_path.rfind_char('/')) + "/";
file->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE);
file->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
file->clear_filters();
file->set_current_path(base_path);
file->set_current_file(ProjectZIPPacker::get_project_zip_safe_name());
file->add_filter("*.zip", "ZIP Archive");
file->set_title(TTR("Pack Project as ZIP..."));
file->popup_file_dialog();
file_pack_zip->set_current_path(base_path);
file_pack_zip->set_current_file(ProjectZIPPacker::get_project_zip_safe_name());
file_pack_zip->popup_file_dialog();
} break;
case FILE_UNDO: {
@ -8067,6 +8062,14 @@ EditorNode::EditorNode() {
gui_base->add_child(file_script);
file_script->connect("file_selected", callable_mp(this, &EditorNode::_dialog_action));
file_pack_zip = memnew(EditorFileDialog);
file_pack_zip->connect("file_selected", callable_mp(this, &EditorNode::_dialog_action));
file_pack_zip->set_file_mode(EditorFileDialog::FILE_MODE_SAVE_FILE);
file_pack_zip->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
file_pack_zip->add_filter("*.zip", "ZIP Archive");
file_pack_zip->set_title(TTR("Pack Project as ZIP..."));
gui_base->add_child(file_pack_zip);
file_menu->connect(SceneStringName(id_pressed), callable_mp(this, &EditorNode::_menu_option));
file_menu->connect("about_to_popup", callable_mp(this, &EditorNode::_update_file_menu_opened));

View File

@ -385,6 +385,7 @@ private:
EditorFileDialog *file_export_lib = nullptr;
EditorFileDialog *file_script = nullptr;
EditorFileDialog *file_android_build_source = nullptr;
EditorFileDialog *file_pack_zip = nullptr;
String current_path;
MenuButton *update_spinner = nullptr;