diff options
| author | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2018-11-02 04:44:40 +0100 |
|---|---|---|
| committer | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2018-11-02 04:44:40 +0100 |
| commit | d2b0f69a64b8052b4725f319dd5c0c5ae8c5bfeb (patch) | |
| tree | 512139f8213d8438af18998f20099a831df0a387 /editor/editor_node.cpp | |
| parent | 0e27af280c0c1481f9a21dbad82ed945bb947c28 (diff) | |
| download | redot-engine-d2b0f69a64b8052b4725f319dd5c0c5ae8c5bfeb.tar.gz | |
Let user fix dependencies in resources
Diffstat (limited to 'editor/editor_node.cpp')
| -rw-r--r-- | editor/editor_node.cpp | 24 |
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) { |
