summaryrefslogtreecommitdiffstats
path: root/editor/editor_node.cpp
diff options
context:
space:
mode:
authorPedro J. Estébanez <pedrojrulez@gmail.com>2018-11-02 04:44:40 +0100
committerPedro J. Estébanez <pedrojrulez@gmail.com>2018-11-02 04:44:40 +0100
commitd2b0f69a64b8052b4725f319dd5c0c5ae8c5bfeb (patch)
tree512139f8213d8438af18998f20099a831df0a387 /editor/editor_node.cpp
parent0e27af280c0c1481f9a21dbad82ed945bb947c28 (diff)
downloadredot-engine-d2b0f69a64b8052b4725f319dd5c0c5ae8c5bfeb.tar.gz
Let user fix dependencies in resources
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r--editor/editor_node.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index b18e4d0f35..f2a4591754 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -574,13 +574,29 @@ void EditorNode::_editor_select_prev() {
_editor_select(editor);
}
-Error EditorNode::load_resource(const String &p_scene) {
+Error EditorNode::load_resource(const String &p_resource, bool p_ignore_broken_deps) {
- RES res = ResourceLoader::load(p_scene);
+ dependency_errors.clear();
+
+ Error err;
+ RES res = ResourceLoader::load(p_resource, "", false, &err);
ERR_FAIL_COND_V(!res.is_valid(), ERR_CANT_OPEN);
- inspector_dock->edit_resource(res);
+ if (!p_ignore_broken_deps && dependency_errors.has(p_resource)) {
+ //current_option = -1;
+ Vector<String> errors;
+ for (Set<String>::Element *E = dependency_errors[p_resource].front(); E; E = E->next()) {
+
+ errors.push_back(E->get());
+ }
+ dependency_error->show(DependencyErrorDialog::MODE_RESOURCE, p_resource, errors);
+ dependency_errors.erase(p_resource);
+
+ return ERR_FILE_MISSING_DEPENDENCIES;
+ }
+
+ inspector_dock->edit_resource(res);
return OK;
}
@@ -2845,7 +2861,7 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b
errors.push_back(E->get());
}
- dependency_error->show(lpath, errors);
+ dependency_error->show(DependencyErrorDialog::MODE_SCENE, lpath, errors);
opening_prev = false;
if (prev != -1) {