From 392d988228d7adcde6b4516599bc11f515948637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Wed, 18 Jul 2018 13:46:02 +0200 Subject: [PATCH] Export: Properly reload preset when opening dialog Fixes #20119 where newly installed templates were not detected. Also fix a bug with preset deletion where it would attempt to edit an already removed preset. For this I made it so that ItemList::deselect_all() also resets `current` to -1, as a manual ItemList::deselect(idx) already does. (cherry picked from commit 13239cd4cc271ba4ccac59a060012129829dfc5f) --- editor/editor_node.cpp | 4 ---- editor/editor_node.h | 1 - editor/export_template_manager.cpp | 3 --- editor/project_export.cpp | 7 ++++--- scene/gui/item_list.cpp | 2 +- 5 files changed, 5 insertions(+), 12 deletions(-) diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 08887f92d54..dc97358609b 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -2045,10 +2045,6 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } break; - case SETTINGS_EXPORT_PREFERENCES: { - - //project_export_settings->popup_centered_ratio(); - } break; case FILE_IMPORT_SUBSCENE: { //import_subscene->popup_centered_ratio(); diff --git a/editor/editor_node.h b/editor/editor_node.h index 795b202e876..4ec34c9f472 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -173,7 +173,6 @@ private: SETTINGS_UPDATE_ALWAYS, SETTINGS_UPDATE_CHANGES, SETTINGS_UPDATE_SPINNER_HIDE, - SETTINGS_EXPORT_PREFERENCES, SETTINGS_PREFERENCES, SETTINGS_LAYOUT_SAVE, SETTINGS_LAYOUT_DELETE, diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp index 25325adb253..fccc4300900 100644 --- a/editor/export_template_manager.cpp +++ b/editor/export_template_manager.cpp @@ -121,7 +121,6 @@ void ExportTemplateManager::_update_template_list() { void ExportTemplateManager::_download_template(const String &p_version) { - print_line("download " + p_version); while (template_list->get_child_count()) { memdelete(template_list->get_child(0)); } @@ -350,7 +349,6 @@ void ExportTemplateManager::_http_download_mirror_completed(int p_status, int p_ bool mirrors_found = false; Dictionary d = r; - print_line(r); if (d.has("mirrors")) { Array mirrors = d["mirrors"]; for (int i = 0; i < mirrors.size(); i++) { @@ -496,7 +494,6 @@ void ExportTemplateManager::_notification(int p_what) { if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { if (!is_visible_in_tree()) { - print_line("closed"); download_templates->cancel_request(); set_process(false); } diff --git a/editor/project_export.cpp b/editor/project_export.cpp index 95386d11b6d..38258a96c24 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -70,6 +70,9 @@ void ProjectExportDialog::popup_export() { } _update_presets(); + if (presets->get_current() >= 0) { + _edit_preset(presets->get_current()); // triggers rescan for templates if newly installed + } // Restore valid window bounds or pop up at default size. if (EditorSettings::get_singleton()->has_setting("interface/dialogs/export_bounds")) { @@ -141,7 +144,6 @@ void ProjectExportDialog::_update_presets() { if (current_idx != -1) { presets->select(current_idx); - //_edit_preset(current_idx); } updating = false; @@ -154,6 +156,7 @@ void ProjectExportDialog::_edit_preset(int p_index) { name->set_editable(false); runnable->set_disabled(true); parameters->edit(NULL); + presets->unselect_all(); delete_preset->set_disabled(true); sections->hide(); patches->clear(); @@ -425,11 +428,9 @@ void ProjectExportDialog::_delete_preset() { void ProjectExportDialog::_delete_preset_confirm() { int idx = presets->get_current(); - parameters->edit(NULL); //to avoid crash _edit_preset(-1); EditorExport::get_singleton()->remove_export_preset(idx); _update_presets(); - _edit_preset(presets->get_current()); } Variant ProjectExportDialog::get_drag_data_fw(const Point2 &p_point, Control *p_from) { diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index 26eab40594e..091b59fdaf4 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -268,7 +268,7 @@ void ItemList::unselect_all() { items[i].selected = false; } - + current = -1; update(); }