diff options
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r-- | editor/editor_node.cpp | 85 |
1 files changed, 45 insertions, 40 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 112d94dc3b..4e8ac7fb38 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1036,7 +1036,6 @@ void EditorNode::_dialog_action(String p_file) { _save_default_environment(); _save_scene_with_preview(p_file); - _call_build(); _run(true); } } break; @@ -1586,6 +1585,9 @@ void EditorNode::_run(bool p_current, const String &p_custom) { editor_data.save_editor_external_data(); } + if (!_call_build()) + return; + if (bool(EDITOR_DEF("run/output/always_clear_output_on_play", true))) { log->clear(); } @@ -2045,7 +2047,6 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } break; case RUN_PLAY: { _menu_option_confirm(RUN_STOP, true); - _call_build(); _run(false); } break; @@ -2090,7 +2091,6 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { _save_default_environment(); _menu_option_confirm(RUN_STOP, true); - _call_build(); _run(true); } break; @@ -2102,7 +2102,10 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } if (run_native->is_deploy_debug_remote_enabled()) { _menu_option_confirm(RUN_STOP, true); - _call_build(); + + if (!_call_build()) + break; // build failed + emit_signal("play_pressed"); editor_run.run_native_notify(); } @@ -3056,7 +3059,6 @@ void EditorNode::_quick_opened() { void EditorNode::_quick_run() { - _call_build(); _run(false, quick_run->get_selected()); } @@ -4232,13 +4234,16 @@ void EditorNode::add_build_callback(EditorBuildCallback p_callback) { build_callbacks[build_callback_count++] = p_callback; } -EditorPluginInitializeCallback EditorNode::build_callbacks[EditorNode::MAX_BUILD_CALLBACKS]; +EditorBuildCallback EditorNode::build_callbacks[EditorNode::MAX_BUILD_CALLBACKS]; -void EditorNode::_call_build() { +bool EditorNode::_call_build() { for (int i = 0; i < build_callback_count; i++) { - build_callbacks[i](); + if (!build_callbacks[i]()) + return false; } + + return true; } void EditorNode::_inherit_imported(const String &p_action) { @@ -4768,6 +4773,38 @@ EditorNode::EditorNode() { prev_scene->set_position(Point2(3, 24)); prev_scene->hide(); + accept = memnew(AcceptDialog); + gui_base->add_child(accept); + accept->connect("confirmed", this, "_menu_confirm_current"); + + project_export = memnew(ProjectExportDialog); + gui_base->add_child(project_export); + + dependency_error = memnew(DependencyErrorDialog); + gui_base->add_child(dependency_error); + + dependency_fixer = memnew(DependencyEditor); + gui_base->add_child(dependency_fixer); + + settings_config_dialog = memnew(EditorSettingsDialog); + gui_base->add_child(settings_config_dialog); + + project_settings = memnew(ProjectSettingsEditor(&editor_data)); + gui_base->add_child(project_settings); + + run_settings_dialog = memnew(RunSettingsDialog); + gui_base->add_child(run_settings_dialog); + + export_template_manager = memnew(ExportTemplateManager); + gui_base->add_child(export_template_manager); + + about = memnew(EditorAbout); + about->get_logo()->set_texture(gui_base->get_icon("Logo", "EditorIcons")); + gui_base->add_child(about); + + warning = memnew(AcceptDialog); + gui_base->add_child(warning); + ED_SHORTCUT("editor/next_tab", TTR("Next tab"), KEY_MASK_CMD + KEY_TAB); ED_SHORTCUT("editor/prev_tab", TTR("Previous tab"), KEY_MASK_CMD + KEY_MASK_SHIFT + KEY_TAB); ED_SHORTCUT("editor/filter_files", TTR("Filter Files.."), KEY_MASK_ALT + KEY_MASK_CMD + KEY_P); @@ -5192,38 +5229,6 @@ EditorNode::EditorNode() { save_confirmation->connect("confirmed", this, "_menu_confirm_current"); save_confirmation->connect("custom_action", this, "_discard_changes"); - accept = memnew(AcceptDialog); - gui_base->add_child(accept); - accept->connect("confirmed", this, "_menu_confirm_current"); - - project_export = memnew(ProjectExportDialog); - gui_base->add_child(project_export); - - dependency_error = memnew(DependencyErrorDialog); - gui_base->add_child(dependency_error); - - dependency_fixer = memnew(DependencyEditor); - gui_base->add_child(dependency_fixer); - - settings_config_dialog = memnew(EditorSettingsDialog); - gui_base->add_child(settings_config_dialog); - - project_settings = memnew(ProjectSettingsEditor(&editor_data)); - gui_base->add_child(project_settings); - - run_settings_dialog = memnew(RunSettingsDialog); - gui_base->add_child(run_settings_dialog); - - export_template_manager = memnew(ExportTemplateManager); - gui_base->add_child(export_template_manager); - - about = memnew(EditorAbout); - about->get_logo()->set_texture(gui_base->get_icon("Logo", "EditorIcons")); - gui_base->add_child(about); - - warning = memnew(AcceptDialog); - gui_base->add_child(warning); - file_templates = memnew(FileDialog); file_templates->set_title(TTR("Import Templates From ZIP File")); |