Editor: Skip loading main scene if restore_scenes_on_load is used

This commit is contained in:
William Tumeo 2018-09-21 00:14:04 -03:00
parent d9e88bccbe
commit 62218ea41b
3 changed files with 24 additions and 3 deletions

View file

@ -3592,6 +3592,7 @@ void EditorNode::_load_docks() {
_load_docks_from_config(config, "docks");
_load_open_scenes_from_config(config, "EditorNode");
editor_data.set_plugin_window_layout(config);
}
@ -3786,6 +3787,23 @@ void EditorNode::_load_open_scenes_from_config(Ref<ConfigFile> p_layout, const S
restoring_scenes = false;
}
bool EditorNode::has_scenes_in_session() {
if (!bool(EDITOR_GET("interface/scene_tabs/restore_scenes_on_load"))) {
return false;
}
Ref<ConfigFile> config;
config.instance();
Error err = config->load(EditorSettings::get_singleton()->get_project_settings_dir().plus_file("editor_layout.cfg"));
if (err != OK) {
return false;
}
if (!config->has_section("EditorNode") || !config->has_section_key("EditorNode", "open_scenes")) {
return false;
}
Array scenes = config->get_value("EditorNode", "open_scenes");
return !scenes.empty();
}
void EditorNode::_update_layouts_menu() {
editor_layouts->clear();

View file

@ -777,6 +777,7 @@ public:
void edit_current() { _edit_current(); };
void update_keying() const { inspector_dock->update_keying(); };
bool has_scenes_in_session();
EditorNode();
~EditorNode();

View file

@ -1681,9 +1681,11 @@ bool Main::start() {
#ifdef TOOLS_ENABLED
if (editor) {
Error serr = editor_node->load_scene(local_game_path);
if (serr != OK)
ERR_PRINT("Failed to load scene");
if (game_path != GLOBAL_GET("application/run/main_scene") || !editor_node->has_scenes_in_session()) {
Error serr = editor_node->load_scene(local_game_path);
if (serr != OK)
ERR_PRINT("Failed to load scene");
}
OS::get_singleton()->set_context(OS::CONTEXT_EDITOR);
}
#endif