mirror of
https://github.com/godotengine/godot.git
synced 2025-10-29 04:34:39 +00:00
Add a dialog to customize run instances
This commit is contained in:
parent
d3352813ea
commit
5ab9e50461
6 changed files with 404 additions and 126 deletions
|
|
@ -37,6 +37,7 @@
|
|||
#include "editor/editor_node.h"
|
||||
#include "editor/editor_settings.h"
|
||||
#include "editor/plugins/script_editor_plugin.h"
|
||||
#include "editor/run_instances_dialog.h"
|
||||
#include "editor/themes/editor_scale.h"
|
||||
#include "scene/gui/menu_button.h"
|
||||
|
||||
|
|
@ -93,22 +94,13 @@ DebuggerEditorPlugin::DebuggerEditorPlugin(PopupMenu *p_debug_menu) {
|
|||
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);
|
||||
instances_menu->set_name("RunInstances");
|
||||
instances_menu->set_hide_on_checkable_item_selection(false);
|
||||
|
||||
debug_menu->add_child(instances_menu);
|
||||
// Multi-instance, start/stop.
|
||||
debug_menu->add_separator();
|
||||
debug_menu->add_submenu_item(TTR("Run Multiple Instances"), "RunInstances");
|
||||
|
||||
for (int i = 1; i <= 4; i++) {
|
||||
instances_menu->add_radio_check_item(vformat(TTRN("Run %d Instance", "Run %d Instances", i), i));
|
||||
instances_menu->set_item_metadata(i - 1, i);
|
||||
}
|
||||
instances_menu->set_item_checked(0, true);
|
||||
instances_menu->connect("index_pressed", callable_mp(this, &DebuggerEditorPlugin::_select_run_count));
|
||||
debug_menu->add_item(TTR("Run Multiple Instances..."), RUN_MULTIPLE_INSTANCES);
|
||||
debug_menu->connect("id_pressed", callable_mp(this, &DebuggerEditorPlugin::_menu_option));
|
||||
|
||||
run_instances_dialog = memnew(RunInstancesDialog);
|
||||
EditorNode::get_singleton()->get_gui_base()->add_child(run_instances_dialog);
|
||||
}
|
||||
|
||||
DebuggerEditorPlugin::~DebuggerEditorPlugin() {
|
||||
|
|
@ -116,14 +108,6 @@ DebuggerEditorPlugin::~DebuggerEditorPlugin() {
|
|||
memdelete(file_server);
|
||||
}
|
||||
|
||||
void DebuggerEditorPlugin::_select_run_count(int p_index) {
|
||||
int len = instances_menu->get_item_count();
|
||||
for (int idx = 0; idx < len; idx++) {
|
||||
instances_menu->set_item_checked(idx, idx == p_index);
|
||||
}
|
||||
EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_debug_instances", instances_menu->get_item_metadata(p_index));
|
||||
}
|
||||
|
||||
void DebuggerEditorPlugin::_menu_option(int p_option) {
|
||||
switch (p_option) {
|
||||
case RUN_FILE_SERVER: {
|
||||
|
|
@ -201,6 +185,10 @@ void DebuggerEditorPlugin::_menu_option(int p_option) {
|
|||
EditorSettings::get_singleton()->set_project_metadata("debug_options", "server_keep_open", !ischecked);
|
||||
|
||||
} break;
|
||||
case RUN_MULTIPLE_INSTANCES: {
|
||||
run_instances_dialog->popup_centered();
|
||||
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -227,7 +215,6 @@ void DebuggerEditorPlugin::_update_debug_options() {
|
|||
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) {
|
||||
_menu_option(RUN_DEPLOY_REMOTE_DEBUG);
|
||||
|
|
@ -259,10 +246,4 @@ void DebuggerEditorPlugin::_update_debug_options() {
|
|||
if (check_server_keep_open) {
|
||||
_menu_option(SERVER_KEEP_OPEN);
|
||||
}
|
||||
|
||||
int len = instances_menu->get_item_count();
|
||||
for (int idx = 0; idx < len; idx++) {
|
||||
bool checked = (int)instances_menu->get_item_metadata(idx) == instances;
|
||||
instances_menu->set_item_checked(idx, checked);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue