From bb3f7bad78c4a88b52a510a516cd79fa22a577f5 Mon Sep 17 00:00:00 2001 From: Mikael Hermansson Date: Wed, 17 Apr 2024 15:54:04 +0200 Subject: [PATCH] Refactor toggling of command-line logging for import/export --- editor/editor_node.cpp | 28 ++++++++++++++-------------- editor/editor_node.h | 5 ++++- main/main.cpp | 4 ++++ 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 20fa30ff340c..7216b53a37c8 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1087,9 +1087,7 @@ void EditorNode::_sources_changed(bool p_exist) { } // Start preview thread now that it's safe. - if (!singleton->cmdline_export_mode) { - EditorResourcePreview::get_singleton()->start(); - } + EditorResourcePreview::get_singleton()->start(); } } @@ -1703,9 +1701,7 @@ void EditorNode::_save_scene_with_preview(String p_file, int p_idx) { save.step(TTR("Saving Scene"), 4); _save_scene(p_file, p_idx); - if (!singleton->cmdline_export_mode) { - EditorResourcePreview::get_singleton()->check_for_invalidation(p_file); - } + EditorResourcePreview::get_singleton()->check_for_invalidation(p_file); } bool EditorNode::_validate_scene_recursive(const String &p_filename, Node *p_node) { @@ -4638,18 +4634,21 @@ bool EditorNode::is_object_of_custom_type(const Object *p_object, const StringNa } void EditorNode::progress_add_task(const String &p_task, const String &p_label, int p_steps, bool p_can_cancel) { - if (singleton->cmdline_export_mode) { + if (singleton->verbose_tasks) { print_line(p_task + ": begin: " + p_label + " steps: " + itos(p_steps)); - } else if (singleton->progress_dialog) { + } + + if (singleton->progress_dialog) { singleton->progress_dialog->add_task(p_task, p_label, p_steps, p_can_cancel); } } bool EditorNode::progress_task_step(const String &p_task, const String &p_state, int p_step, bool p_force_refresh) { - if (singleton->cmdline_export_mode) { + if (singleton->verbose_tasks) { print_line("\t" + p_task + ": step " + itos(p_step) + ": " + p_state); - return false; - } else if (singleton->progress_dialog) { + } + + if (singleton->progress_dialog) { return singleton->progress_dialog->task_step(p_task, p_state, p_step, p_force_refresh); } else { return false; @@ -4657,9 +4656,11 @@ bool EditorNode::progress_task_step(const String &p_task, const String &p_state, } void EditorNode::progress_end_task(const String &p_task) { - if (singleton->cmdline_export_mode) { + if (singleton->verbose_tasks) { print_line(p_task + ": end"); - } else if (singleton->progress_dialog) { + } + + if (singleton->progress_dialog) { singleton->progress_dialog->end_task(p_task); } } @@ -4864,7 +4865,6 @@ Error EditorNode::export_preset(const String &p_preset, const String &p_path, bo export_defer.debug = p_debug; export_defer.pack_only = p_pack_only; export_defer.android_build_template = p_android_build_template; - cmdline_export_mode = true; return OK; } diff --git a/editor/editor_node.h b/editor/editor_node.h index ad0a7ec5e084..d4866fad8f83 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -432,7 +432,7 @@ class EditorNode : public Node { bool script_distraction_free = false; bool changing_scene = false; - bool cmdline_export_mode = false; + bool verbose_tasks = false; bool convert_old = false; bool immediate_dialog_confirmed = false; bool opening_prev = false; @@ -896,6 +896,9 @@ class EditorNode : public Node { int execute_and_show_output(const String &p_title, const String &p_path, const List &p_arguments, bool p_close_on_ok = true, bool p_close_on_errors = false, String *r_output = nullptr); + void set_verbose_tasks(bool p_enabled) { verbose_tasks = p_enabled; } + bool are_tasks_verbose() const { return verbose_tasks; } + EditorNode(); ~EditorNode(); diff --git a/main/main.cpp b/main/main.cpp index ed74094c9ef3..fb1c4e466ddd 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -3651,6 +3651,10 @@ int Main::start() { editor_node = memnew(EditorNode); sml->get_root()->add_child(editor_node); + if (!_export_preset.is_empty() || wait_for_import) { + editor_node->set_verbose_tasks(true); + } + if (!_export_preset.is_empty()) { editor_node->export_preset(_export_preset, positional_arg, export_debug, export_pack_only, install_android_build_template); game_path = ""; // Do not load anything.