summaryrefslogtreecommitdiff
path: root/tools/editor
diff options
context:
space:
mode:
Diffstat (limited to 'tools/editor')
-rw-r--r--tools/editor/editor_node.cpp37
-rw-r--r--tools/editor/editor_node.h1
-rw-r--r--tools/editor/editor_settings.cpp24
-rw-r--r--tools/editor/editor_settings.h4
-rw-r--r--tools/editor/plugins/gi_probe_editor_plugin.cpp2
-rw-r--r--tools/editor/script_create_dialog.cpp4
6 files changed, 55 insertions, 17 deletions
diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp
index 352b0818b4..952681c5eb 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -338,6 +338,7 @@ void EditorNode::_notification(int p_what) {
VisualServer::get_singleton()->viewport_set_disable_environment(get_viewport()->get_viewport_rid(),true);
_editor_select(EDITOR_3D);
+ _update_debug_options();
/*
if (defer_optimize!="") {
@@ -2603,6 +2604,14 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
play_custom_scene_button->set_pressed(false);
play_custom_scene_button->set_icon(gui_base->get_icon("PlayCustom","EditorIcons"));
//pause_button->set_pressed(false);
+ if (bool(EDITOR_DEF("run/output/always_close_output_on_stop", true))) {
+ for(int i=0;i<bottom_panel_items.size();i++) {
+ if (bottom_panel_items[i].control==log) {
+ _bottom_panel_switch(false,i);
+ break;
+ }
+ }
+ }
emit_signal("stop_pressed");
} break;
@@ -2674,7 +2683,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
}
debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),!ischecked);
-
+ EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_file_server", !ischecked);
} break;
case RUN_LIVE_DEBUG: {
@@ -2682,6 +2691,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_LIVE_DEBUG),!ischecked);
ScriptEditor::get_singleton()->get_debugger()->set_live_debugging(!ischecked);
+ EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_live_debug", !ischecked);
+
} break;
/*case RUN_DEPLOY_DUMB_CLIENTS: {
@@ -2696,6 +2707,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
bool ischecked = debug_button->get_popup()->is_item_checked( debug_button->get_popup()->get_item_index(RUN_DEPLOY_REMOTE_DEBUG));
debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_DEPLOY_REMOTE_DEBUG),!ischecked);
run_native->set_deploy_debug_remote(!ischecked);
+ EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_deploy_remote_debug", !ischecked);
} break;
case RUN_DEBUG_COLLISONS: {
@@ -2704,6 +2716,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_DEBUG_COLLISONS),!ischecked);
run_native->set_debug_collisions(!ischecked);
editor_run.set_debug_collisions(!ischecked);
+ EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_debug_collisons", !ischecked);
+
} break;
case RUN_DEBUG_NAVIGATION: {
@@ -2711,6 +2725,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_DEBUG_NAVIGATION),!ischecked);
run_native->set_debug_navigation(!ischecked);
editor_run.set_debug_navigation(!ischecked);
+ EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_debug_navigation", !ischecked);
+
} break;
case RUN_RELOAD_SCRIPTS: {
@@ -2719,6 +2735,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_RELOAD_SCRIPTS),!ischecked);
ScriptEditor::get_singleton()->set_live_auto_reload_running_scripts(!ischecked);
+ EditorSettings::get_singleton()->set_project_metadata("debug_options", "run_reload_scripts", !ischecked);
+
} break;
case SETTINGS_UPDATE_ALWAYS: {
@@ -2864,6 +2882,23 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
}
}
+void EditorNode::_update_debug_options() {
+
+ bool check_deploy_remote = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_deploy_remote_debug", false);
+ bool check_file_server = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_file_server", false);
+ bool check_debug_collisons = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_debug_collisons", false);
+ 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", false);
+ bool check_reload_scripts = EditorSettings::get_singleton()->get_project_metadata("debug_options", "run_reload_scripts", false);
+
+ if (check_deploy_remote) _menu_option_confirm(RUN_DEPLOY_REMOTE_DEBUG, true);
+ if (check_file_server) _menu_option_confirm(RUN_FILE_SERVER, true);
+ if (check_debug_collisons) _menu_option_confirm(RUN_DEBUG_COLLISONS, true);
+ if (check_debug_navigation) _menu_option_confirm(RUN_DEBUG_NAVIGATION, true);
+ if (check_live_debug) _menu_option_confirm(RUN_LIVE_DEBUG, true);
+ if (check_reload_scripts) _menu_option_confirm(RUN_RELOAD_SCRIPTS, true);
+
+}
Control* EditorNode::get_viewport() {
diff --git a/tools/editor/editor_node.h b/tools/editor/editor_node.h
index 4aca433f9c..7ac2760a5c 100644
--- a/tools/editor/editor_node.h
+++ b/tools/editor/editor_node.h
@@ -432,6 +432,7 @@ private:
void _menu_option(int p_option);
void _menu_confirm_current();
void _menu_option_confirm(int p_option,bool p_confirmed);
+ void _update_debug_options();
void _property_editor_forward();
void _property_editor_back();
diff --git a/tools/editor/editor_settings.cpp b/tools/editor/editor_settings.cpp
index 1cdc426541..6d9f1bd979 100644
--- a/tools/editor/editor_settings.cpp
+++ b/tools/editor/editor_settings.cpp
@@ -242,13 +242,20 @@ void EditorSettings::create() {
String exe_path = OS::get_singleton()->get_executable_path().get_base_dir();
DirAccess* d = DirAccess::create_for_path(exe_path);
+ bool self_contained = false;
if (d->file_exists(exe_path + "/._sc_")) {
+ self_contained = true;
+ extra_config->load(exe_path + "/._sc_");
+ } else if (d->file_exists(exe_path + "/_sc_")) {
+ self_contained = true;
+ extra_config->load(exe_path + "/_sc_");
+ }
+ if (self_contained) {
// editor is self contained
config_path = exe_path;
config_dir = "editor_data";
- extra_config->load(exe_path + "/._sc_");
} else {
if (OS::get_singleton()->has_environment("APPDATA")) {
@@ -655,6 +662,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
set("run/auto_save/save_before_running",true);
set("run/output/always_clear_output_on_play",true);
set("run/output/always_open_output_on_play",true);
+ set("run/output/always_close_output_on_stop",false);
set("filesystem/resources/save_compressed_resources",true);
set("filesystem/resources/auto_reload_modified_images",true);
@@ -1029,26 +1037,22 @@ void EditorSettings::set_optimize_save(bool p_optimize) {
optimize_save=p_optimize;
}
-String EditorSettings::get_last_selected_language()
-{
+Variant EditorSettings::get_project_metadata(const String& p_section, const String& p_key, Variant p_default) {
Ref<ConfigFile> cf = memnew( ConfigFile );
String path = get_project_settings_path().plus_file("project_metadata.cfg");
Error err = cf->load(path);
if (err != OK) {
- return "";
+ return p_default;
}
- Variant last_selected_language = cf->get_value("script_setup", "last_selected_language");
- if (last_selected_language.get_type() != Variant::STRING)
- return "";
- return static_cast<String>(last_selected_language);
+ return cf->get_value(p_section, p_key, p_default);
}
-void EditorSettings::set_last_selected_language(String p_language)
+void EditorSettings::set_project_metadata(const String& p_section, const String& p_key, Variant p_data)
{
Ref<ConfigFile> cf = memnew( ConfigFile );
String path = get_project_settings_path().plus_file("project_metadata.cfg");
cf->load(path);
- cf->set_value("script_setup", "last_selected_language", p_language);
+ cf->set_value(p_section, p_key, p_data);
cf->save(path);
}
diff --git a/tools/editor/editor_settings.h b/tools/editor/editor_settings.h
index c11feef667..809389eb40 100644
--- a/tools/editor/editor_settings.h
+++ b/tools/editor/editor_settings.h
@@ -160,8 +160,8 @@ public:
void set_optimize_save(bool p_optimize);
- String get_last_selected_language();
- void set_last_selected_language(String p_language);
+ Variant get_project_metadata(const String& p_section, const String& p_key, Variant p_default);
+ void set_project_metadata(const String& p_section, const String& p_key, Variant p_data);
EditorSettings();
~EditorSettings();
diff --git a/tools/editor/plugins/gi_probe_editor_plugin.cpp b/tools/editor/plugins/gi_probe_editor_plugin.cpp
index 39f32d0dc7..925ac8ef11 100644
--- a/tools/editor/plugins/gi_probe_editor_plugin.cpp
+++ b/tools/editor/plugins/gi_probe_editor_plugin.cpp
@@ -80,6 +80,4 @@ GIProbeEditorPlugin::GIProbeEditorPlugin(EditorNode *p_node) {
GIProbeEditorPlugin::~GIProbeEditorPlugin() {
-
- memdelete(bake);
}
diff --git a/tools/editor/script_create_dialog.cpp b/tools/editor/script_create_dialog.cpp
index da01cdefe5..496d8670eb 100644
--- a/tools/editor/script_create_dialog.cpp
+++ b/tools/editor/script_create_dialog.cpp
@@ -128,7 +128,7 @@ void ScriptCreateDialog::_create_new() {
Ref<Script> scr = ScriptServer::get_language( language_menu->get_selected() )->get_template(cname,parent_name->get_text());
String selected_language = language_menu->get_item_text(language_menu->get_selected());
- editor_settings->set_last_selected_language(selected_language);
+ editor_settings->set_project_metadata("script_setup", "last_selected_language", selected_language);
if (cname!="")
scr->set_name(cname);
@@ -380,7 +380,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
}
editor_settings = EditorSettings::get_singleton();
- String last_selected_language = editor_settings->get_last_selected_language();
+ String last_selected_language = editor_settings->get_project_metadata("script_setup", "last_selected_language", "");
if (last_selected_language != "")
for (int i = 0; i < language_menu->get_item_count(); i++)
if (language_menu->get_item_text(i) == last_selected_language)