diff options
Diffstat (limited to 'editor/export/project_export.cpp')
-rw-r--r-- | editor/export/project_export.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/editor/export/project_export.cpp b/editor/export/project_export.cpp index 5de56b9d90..7088d4e2ab 100644 --- a/editor/export/project_export.cpp +++ b/editor/export/project_export.cpp @@ -240,6 +240,7 @@ void ProjectExportDialog::_edit_preset(int p_index) { name->set_text(""); name->set_editable(false); export_path->hide(); + advanced_options->set_disabled(true); runnable->set_disabled(true); parameters->edit(nullptr); presets->deselect_all(); @@ -274,6 +275,8 @@ void ProjectExportDialog::_edit_preset(int p_index) { export_path->setup(extension_vector, false, true); export_path->update_property(); + advanced_options->set_disabled(false); + advanced_options->set_pressed(current->are_advanced_options_enabled()); runnable->set_disabled(false); runnable->set_pressed(current->is_runnable()); if (parameters->get_edited_object() != current.ptr()) { @@ -449,6 +452,18 @@ void ProjectExportDialog::_update_parameters(const String &p_edited_property) { _update_current_preset(); } +void ProjectExportDialog::_advanced_options_pressed() { + if (updating) { + return; + } + + Ref<EditorExportPreset> current = get_current_preset(); + ERR_FAIL_COND(current.is_null()); + + current->set_advanced_options_enabled(advanced_options->is_pressed()); + _update_presets(); +} + void ProjectExportDialog::_runnable_pressed() { if (updating) { return; @@ -637,6 +652,7 @@ void ProjectExportDialog::_duplicate_preset() { if (make_runnable) { preset->set_runnable(make_runnable); } + preset->set_advanced_options_enabled(current->are_advanced_options_enabled()); preset->set_dedicated_server(current->is_dedicated_server()); preset->set_export_filter(current->get_export_filter()); preset->set_include_filter(current->get_include_filter()); @@ -1236,11 +1252,22 @@ ProjectExportDialog::ProjectExportDialog() { name = memnew(LineEdit); settings_vb->add_margin_child(TTR("Name:"), name); name->connect("text_changed", callable_mp(this, &ProjectExportDialog::_name_changed)); + runnable = memnew(CheckButton); runnable->set_text(TTR("Runnable")); runnable->set_tooltip_text(TTR("If checked, the preset will be available for use in one-click deploy.\nOnly one preset per platform may be marked as runnable.")); runnable->connect("pressed", callable_mp(this, &ProjectExportDialog::_runnable_pressed)); - settings_vb->add_child(runnable); + + advanced_options = memnew(CheckButton); + advanced_options->set_text(TTR("Advanced Options")); + advanced_options->set_tooltip_text(TTR("If checked, the advanced options will be shown.")); + advanced_options->connect("pressed", callable_mp(this, &ProjectExportDialog::_advanced_options_pressed)); + + HBoxContainer *preset_configs_container = memnew(HBoxContainer); + preset_configs_container->add_spacer(true); + preset_configs_container->add_child(advanced_options); + preset_configs_container->add_child(runnable); + settings_vb->add_child(preset_configs_container); export_path = memnew(EditorPropertyPath); settings_vb->add_child(export_path); @@ -1413,6 +1440,7 @@ ProjectExportDialog::ProjectExportDialog() { // Disable by default. name->set_editable(false); export_path->hide(); + advanced_options->set_disabled(true); runnable->set_disabled(true); duplicate_preset->set_disabled(true); delete_preset->set_disabled(true); |