Allow fixing indirect missing dependencies manually

This commit is contained in:
Haoyu Qiu
2025-06-16 10:56:13 +08:00
parent 07f4c06601
commit f0d5073037
6 changed files with 222 additions and 111 deletions

View File

@ -30,13 +30,15 @@
#pragma once
#include "scene/gui/box_container.h"
#include "scene/gui/dialogs.h"
#include "scene/gui/item_list.h"
#include "scene/gui/tree.h"
class EditorFileDialog;
class EditorFileSystemDirectory;
class ItemList;
class PopupMenu;
class Tree;
class TreeItem;
class VBoxContainer;
class DependencyEditor : public AcceptDialog {
GDCLASS(DependencyEditor, AcceptDialog);
@ -139,17 +141,28 @@ public:
class DependencyErrorDialog : public ConfirmationDialog {
GDCLASS(DependencyErrorDialog, ConfirmationDialog);
private:
StringName icon_name_fail;
StringName icon_name_check;
String for_file;
Mode mode;
Button *fdep = nullptr;
Label *text = nullptr;
TreeItem *replacing_item = nullptr;
bool errors_fixed = false;
Tree *files = nullptr;
EditorFileDialog *replacement_file_dialog = nullptr;
DependencyEditor *deps_editor = nullptr;
void ok_pressed() override;
void custom_action(const String &) override;
void _on_files_button_clicked(TreeItem *p_item, int p_column, int p_id, MouseButton p_button);
void _on_replacement_file_selected(const String &p_path);
void _check_for_resolved();
public:
void show(const String &p_for_file, const Vector<String> &report);
void show(const String &p_for_file, const HashMap<String, HashSet<String>> &p_report);
DependencyErrorDialog();
};