summaryrefslogtreecommitdiff
path: root/editor/project_export.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/project_export.cpp')
-rw-r--r--editor/project_export.cpp34
1 files changed, 22 insertions, 12 deletions
diff --git a/editor/project_export.cpp b/editor/project_export.cpp
index ec64d76b18..b9cf7ec10a 100644
--- a/editor/project_export.cpp
+++ b/editor/project_export.cpp
@@ -631,6 +631,7 @@ void ProjectExportDialog::_delete_preset_confirm() {
int idx = presets->get_current();
_edit_preset(-1);
+ export_button->set_disabled(true);
EditorExport::get_singleton()->remove_export_preset(idx);
_update_presets();
}
@@ -931,7 +932,7 @@ void ProjectExportDialog::_export_project() {
Ref<EditorExportPlatform> platform = current->get_platform();
ERR_FAIL_COND(platform.is_null());
- export_project->set_access(FileDialog::ACCESS_FILESYSTEM);
+ export_project->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
export_project->clear_filters();
List<String> extension_list = platform->get_binary_extensions(current);
@@ -955,7 +956,7 @@ void ProjectExportDialog::_export_project() {
export_project->get_line_edit()->connect("text_entered", export_project, "_file_entered");
}
- export_project->set_mode(FileDialog::MODE_SAVE_FILE);
+ export_project->set_mode(EditorFileDialog::MODE_SAVE_FILE);
export_project->popup_centered_ratio();
}
@@ -972,10 +973,15 @@ void ProjectExportDialog::_export_project_to_path(const String &p_path) {
Error err = platform->export_project(current, export_debug->is_pressed(), p_path, 0);
if (err != OK) {
- error_dialog->set_text(TTR("Export templates for this platform are missing/corrupted:") + " " + platform->get_name());
+ if (err == ERR_FILE_NOT_FOUND) {
+ error_dialog->set_text(vformat(TTR("Failed to export the project for platform '%s'.\nExport templates seem to be missing or invalid."), platform->get_name()));
+ } else { // Assume misconfiguration. FIXME: Improve error handling and preset config validation.
+ error_dialog->set_text(vformat(TTR("Failed to export the project for platform '%s'.\nThis might be due to a configuration issue in the export preset or your export settings."), platform->get_name()));
+ }
+
+ ERR_PRINTS(vformat("Failed to export the project for platform '%s'.", platform->get_name()));
error_dialog->show();
error_dialog->popup_centered_minsize(Size2(300, 80));
- ERR_PRINT("Failed to export project");
}
}
@@ -1007,7 +1013,11 @@ void ProjectExportDialog::_export_all(bool p_debug) {
Error err = platform->export_project(preset, p_debug, preset->get_export_path(), 0);
if (err != OK) {
- error_dialog->set_text(TTR("Export templates for this platform are missing/corrupted:") + " " + platform->get_name());
+ if (err == ERR_FILE_BAD_PATH) {
+ error_dialog->set_text(TTR("The given export path doesn't exist:") + "\n" + preset->get_export_path().get_base_dir());
+ } else {
+ error_dialog->set_text(TTR("Export templates for this platform are missing/corrupted:") + " " + platform->get_name());
+ }
error_dialog->show();
error_dialog->popup_centered_minsize(Size2(300, 80));
ERR_PRINT("Failed to export project");
@@ -1175,9 +1185,9 @@ ProjectExportDialog::ProjectExportDialog() {
patches_hb->add_child(patch_export);
patches_hb->add_spacer();
- patch_dialog = memnew(FileDialog);
+ patch_dialog = memnew(EditorFileDialog);
patch_dialog->add_filter("*.pck ; Pack File");
- patch_dialog->set_mode(FileDialog::MODE_OPEN_FILE);
+ patch_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE);
patch_dialog->connect("file_selected", this, "_patch_selected");
add_child(patch_dialog);
@@ -1257,11 +1267,11 @@ ProjectExportDialog::ProjectExportDialog() {
export_all_button->connect("pressed", this, "_export_all_dialog");
export_all_button->set_disabled(true);
- export_pck_zip = memnew(FileDialog);
+ export_pck_zip = memnew(EditorFileDialog);
export_pck_zip->add_filter("*.zip ; ZIP File");
export_pck_zip->add_filter("*.pck ; Godot Game Pack");
- export_pck_zip->set_access(FileDialog::ACCESS_FILESYSTEM);
- export_pck_zip->set_mode(FileDialog::MODE_SAVE_FILE);
+ export_pck_zip->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
+ export_pck_zip->set_mode(EditorFileDialog::MODE_SAVE_FILE);
add_child(export_pck_zip);
export_pck_zip->connect("file_selected", this, "_export_pck_zip_selected");
@@ -1291,8 +1301,8 @@ ProjectExportDialog::ProjectExportDialog() {
export_templates_error->add_child(download_templates);
download_templates->connect("pressed", this, "_open_export_template_manager");
- export_project = memnew(FileDialog);
- export_project->set_access(FileDialog::ACCESS_FILESYSTEM);
+ export_project = memnew(EditorFileDialog);
+ export_project->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
add_child(export_project);
export_project->connect("file_selected", this, "_export_project_to_path");
export_project->get_line_edit()->connect("text_changed", this, "_validate_export_path");