mirror of
https://github.com/godotengine/godot.git
synced 2025-10-29 12:44:31 +00:00
[Editor] Add button to keep the debug server open.
The setting is stored in the project editor metadata, and the server is automatically started/stopped when the option change (only stopped if no session is currently active). The CLI option `--debug-server` now also forces the server to stay open (without saving the state, unlike the menu option). This commit also removes the "Keep debugger open" option in the script editor "debug" menu. That option was really confusing, it used to hide the bottom panel if and only if the debugger pane was selected, so if you had your output log open instead (default when pressing play) it would effectively do nothing. Having an option to save a click in such a very specific case seems very overkill.
This commit is contained in:
parent
34df77285c
commit
aa80cfac97
5 changed files with 51 additions and 21 deletions
|
|
@ -47,7 +47,6 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(PopupMenu *p_debug_menu) {
|
|||
ED_SHORTCUT("debugger/step_over", TTR("Step Over"), Key::F10);
|
||||
ED_SHORTCUT("debugger/break", TTR("Break"));
|
||||
ED_SHORTCUT("debugger/continue", TTR("Continue"), Key::F12);
|
||||
ED_SHORTCUT("debugger/keep_debugger_open", TTR("Keep Debugger Open"));
|
||||
ED_SHORTCUT("debugger/debug_with_external_editor", TTR("Debug with External Editor"));
|
||||
|
||||
// File Server for deploy with remote filesystem.
|
||||
|
|
@ -85,6 +84,9 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(PopupMenu *p_debug_menu) {
|
|||
debug_menu->add_check_shortcut(ED_SHORTCUT("editor/sync_script_changes", TTR("Synchronize Script Changes")), RUN_RELOAD_SCRIPTS);
|
||||
debug_menu->set_item_tooltip(-1,
|
||||
TTR("When this option is enabled, any script that is saved will be reloaded in the running project.\nWhen used remotely on a device, this is more efficient when the network filesystem option is enabled."));
|
||||
debug_menu->add_check_shortcut(ED_SHORTCUT("editor/keep_server_open", TTR("Keep Debug Server Open")), SERVER_KEEP_OPEN);
|
||||
debug_menu->set_item_tooltip(-1,
|
||||
TTR("When this option is enabled, the editor debug server will stay open and listen for new sessions started outside of the editor itself."));
|
||||
|
||||
// Multi-instance, start/stop
|
||||
instances_menu = memnew(PopupMenu);
|
||||
|
|
@ -176,6 +178,14 @@ void DebuggerEditorPlugin::_menu_option(int p_option) {
|
|||
EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_reload_scripts", !ischecked);
|
||||
|
||||
} break;
|
||||
case SERVER_KEEP_OPEN: {
|
||||
bool ischecked = debug_menu->is_item_checked(debug_menu->get_item_index(SERVER_KEEP_OPEN));
|
||||
debug_menu->set_item_checked(debug_menu->get_item_index(SERVER_KEEP_OPEN), !ischecked);
|
||||
|
||||
EditorDebuggerNode::get_singleton()->set_keep_open(!ischecked);
|
||||
EditorSettings::get_singleton()->set_project_metadata("debug_options", "server_keep_open", !ischecked);
|
||||
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -195,6 +205,7 @@ void DebuggerEditorPlugin::_update_debug_options() {
|
|||
bool check_debug_navigation = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_debug_navigation", false);
|
||||
bool check_live_debug = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_live_debug", true);
|
||||
bool check_reload_scripts = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_reload_scripts", true);
|
||||
bool check_server_keep_open = EditorSettings::get_singleton()->get_project_metadata("debug_options", "server_keep_open", false);
|
||||
int instances = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_debug_instances", 1);
|
||||
|
||||
if (check_deploy_remote) {
|
||||
|
|
@ -218,6 +229,9 @@ void DebuggerEditorPlugin::_update_debug_options() {
|
|||
if (check_reload_scripts) {
|
||||
_menu_option(RUN_RELOAD_SCRIPTS);
|
||||
}
|
||||
if (check_server_keep_open) {
|
||||
_menu_option(SERVER_KEEP_OPEN);
|
||||
}
|
||||
|
||||
int len = instances_menu->get_item_count();
|
||||
for (int idx = 0; idx < len; idx++) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue