summaryrefslogtreecommitdiff
path: root/editor/editor_data.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/editor_data.cpp')
-rw-r--r--editor/editor_data.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp
index 58ffa223fb..f8dbd9abe5 100644
--- a/editor/editor_data.cpp
+++ b/editor/editor_data.cpp
@@ -31,7 +31,7 @@
#include "editor_node.h"
#include "editor_settings.h"
-#include "global_config.h"
+#include "project_settings.h"
#include "io/resource_loader.h"
#include "os/dir_access.h"
#include "os/file_access.h"
@@ -353,6 +353,7 @@ void EditorData::notify_edited_scene_changed() {
for (int i = 0; i < editor_plugins.size(); i++) {
editor_plugins[i]->edited_scene_changed();
+ editor_plugins[i]->notify_scene_changed(get_edited_scene_root());
}
}
@@ -488,8 +489,14 @@ void EditorData::move_edited_scene_index(int p_idx, int p_to_idx) {
}
void EditorData::remove_scene(int p_idx) {
ERR_FAIL_INDEX(p_idx, edited_scene.size());
- if (edited_scene[p_idx].root)
+ if (edited_scene[p_idx].root) {
+
+ for (int i = 0; i < editor_plugins.size(); i++) {
+ editor_plugins[i]->notify_scene_closed(edited_scene[p_idx].root->get_filename());
+ }
+
memdelete(edited_scene[p_idx].root);
+ }
if (current_edited_scene > p_idx)
current_edited_scene--;
@@ -615,6 +622,17 @@ int EditorData::get_edited_scene_count() const {
return edited_scene.size();
}
+Vector<EditorData::EditedScene> EditorData::get_edited_scenes() const {
+
+ Vector<EditedScene> out_edited_scenes_list = Vector<EditedScene>();
+
+ for (int i = 0; i < edited_scene.size(); i++) {
+ out_edited_scenes_list.push_back(edited_scene[i]);
+ }
+
+ return out_edited_scenes_list;
+}
+
void EditorData::set_edited_scene_version(uint64_t version, int scene_idx) {
ERR_FAIL_INDEX(current_edited_scene, edited_scene.size());
if (scene_idx < 0) {