Skip to content

Commit 019889d

Browse files
committed
Merge pull request #112187 from timothyqiu/deps-manual-ii
Allow fixing indirect missing dependencies manually
2 parents f99eeb9 + f0d5073 commit 019889d

File tree

6 files changed

+219
-108
lines changed

6 files changed

+219
-108
lines changed

editor/docks/filesystem_dock.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
#include "editor/editor_node.h"
4444
#include "editor/editor_string_names.h"
4545
#include "editor/editor_undo_redo_manager.h"
46+
#include "editor/file_system/dependency_editor.h"
4647
#include "editor/gui/create_dialog.h"
4748
#include "editor/gui/directory_create_dialog.h"
4849
#include "editor/gui/editor_dir_dialog.h"

editor/docks/filesystem_dock.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,17 @@
3939
#include "scene/gui/box_container.h"
4040
#include "scene/gui/control.h"
4141
#include "scene/gui/dialogs.h"
42+
#include "scene/gui/item_list.h"
4243
#include "scene/gui/menu_button.h"
4344
#include "scene/gui/split_container.h"
4445
#include "scene/gui/tree.h"
4546

4647
class CreateDialog;
48+
class DependencyEditor;
49+
class DependencyEditorOwners;
50+
class DependencyRemoveDialog;
4751
class EditorDirDialog;
4852
class HBoxContainer;
49-
class ItemList;
5053
class LineEdit;
5154
class ProgressBar;
5255
class SceneCreateDialog;

editor/editor_node.cpp

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1576,13 +1576,9 @@ Error EditorNode::load_resource(const String &p_resource, bool p_ignore_broken_d
15761576
}
15771577
ERR_FAIL_COND_V(res.is_null(), ERR_CANT_OPEN);
15781578

1579-
if (!p_ignore_broken_deps && dependency_errors.has(p_resource)) {
1580-
Vector<String> errors;
1581-
for (const String &E : dependency_errors[p_resource]) {
1582-
errors.push_back(E);
1583-
}
1584-
dependency_error->show(p_resource, errors);
1585-
dependency_errors.erase(p_resource);
1579+
if (!p_ignore_broken_deps && !dependency_errors.is_empty()) {
1580+
dependency_error->show(p_resource, dependency_errors);
1581+
dependency_errors.clear();
15861582

15871583
return ERR_FILE_MISSING_DEPENDENCIES;
15881584
}
@@ -4558,10 +4554,6 @@ bool EditorNode::is_multi_window_enabled() const {
45584554
return !SceneTree::get_singleton()->get_root()->is_embedding_subwindows() && !EDITOR_GET("interface/editor/single_window_mode") && EDITOR_GET("interface/multi_window/enable");
45594555
}
45604556

4561-
void EditorNode::fix_dependencies(const String &p_for_file) {
4562-
dependency_fixer->edit(p_for_file);
4563-
}
4564-
45654557
int EditorNode::new_scene() {
45664558
int idx = editor_data.add_edited_scene(-1);
45674559
_set_current_scene(idx); // Before trying to remove an empty scene, set the current tab index to the newly added tab index.
@@ -4636,13 +4628,10 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b
46364628
Error err;
46374629
Ref<PackedScene> sdata = ResourceLoader::load(lpath, "", ResourceFormatLoader::CACHE_MODE_REPLACE, &err);
46384630

4639-
if (!p_ignore_broken_deps && dependency_errors.has(lpath)) {
4631+
if (!p_ignore_broken_deps && !dependency_errors.is_empty()) {
46404632
current_menu_option = -1;
4641-
Vector<String> errors;
4642-
for (const String &E : dependency_errors[lpath]) {
4643-
errors.push_back(E);
4644-
}
4645-
dependency_error->show(lpath, errors);
4633+
dependency_error->show(lpath, dependency_errors);
4634+
dependency_errors.clear();
46464635

46474636
if (prev != -1 && prev != idx) {
46484637
_set_current_scene(prev);
@@ -8318,9 +8307,6 @@ EditorNode::EditorNode() {
83188307
dependency_error = memnew(DependencyErrorDialog);
83198308
gui_base->add_child(dependency_error);
83208309

8321-
dependency_fixer = memnew(DependencyEditor);
8322-
gui_base->add_child(dependency_fixer);
8323-
83248310
editor_settings_dialog = memnew(EditorSettingsDialog);
83258311
gui_base->add_child(editor_settings_dialog);
83268312

editor/editor_node.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ class Window;
6565
class AudioStreamImportSettingsDialog;
6666
class AudioStreamPreviewGenerator;
6767
class BackgroundProgress;
68-
class DependencyEditor;
6968
class DependencyErrorDialog;
7069
class DockSplitContainer;
7170
class DynamicFontImportSettingsDialog;
@@ -421,7 +420,6 @@ class EditorNode : public Node {
421420

422421
DependencyErrorDialog *dependency_error = nullptr;
423422
HashMap<String, HashSet<String>> dependency_errors;
424-
DependencyEditor *dependency_fixer = nullptr;
425423
OrphanResourcesDialog *orphan_resources = nullptr;
426424
ConfirmationDialog *open_imported = nullptr;
427425
Button *new_inherited_button = nullptr;
@@ -851,7 +849,6 @@ class EditorNode : public Node {
851849
String get_preview_locale() const;
852850
void set_preview_locale(const String &p_locale);
853851

854-
void fix_dependencies(const String &p_for_file);
855852
int new_scene();
856853
Error load_scene(const String &p_scene, bool p_ignore_broken_deps = false, bool p_set_inherited = false, bool p_force_open_imported = false, bool p_silent_change_tab = false);
857854
Error load_resource(const String &p_resource, bool p_ignore_broken_deps = false);

0 commit comments

Comments
 (0)