Fix dialog spam when inspecting MeshInstance from model file
Avoid load_scene for built-in resources to make sure we don't open a scene tab and prompt for model file editing. Load scene as regular resource instead and store the reference to keep the dependency until the remote inspector cache is cleared.
This commit is contained in:
parent
07ada02cb4
commit
01802074a0
|
@ -153,12 +153,9 @@ ObjectID EditorDebuggerInspector::add_object(const Array &p_arr) {
|
||||||
if (path.find("::") != -1) {
|
if (path.find("::") != -1) {
|
||||||
// built-in resource
|
// built-in resource
|
||||||
String base_path = path.get_slice("::", 0);
|
String base_path = path.get_slice("::", 0);
|
||||||
if (ResourceLoader::get_resource_type(base_path) == "PackedScene") {
|
RES dependency = ResourceLoader::load(base_path);
|
||||||
if (!EditorNode::get_singleton()->is_scene_open(base_path)) {
|
if (dependency.is_valid()) {
|
||||||
EditorNode::get_singleton()->load_scene(base_path);
|
remote_dependencies.insert(dependency);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
EditorNode::get_singleton()->load_resource(base_path);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var = ResourceLoader::load(path);
|
var = ResourceLoader::load(path);
|
||||||
|
@ -211,6 +208,7 @@ void EditorDebuggerInspector::clear_cache() {
|
||||||
memdelete(E->value());
|
memdelete(E->value());
|
||||||
}
|
}
|
||||||
remote_objects.clear();
|
remote_objects.clear();
|
||||||
|
remote_dependencies.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
Object *EditorDebuggerInspector::get_object(ObjectID p_id) {
|
Object *EditorDebuggerInspector::get_object(ObjectID p_id) {
|
||||||
|
|
|
@ -69,6 +69,7 @@ class EditorDebuggerInspector : public EditorInspector {
|
||||||
private:
|
private:
|
||||||
ObjectID inspected_object_id;
|
ObjectID inspected_object_id;
|
||||||
Map<ObjectID, EditorDebuggerRemoteObject *> remote_objects;
|
Map<ObjectID, EditorDebuggerRemoteObject *> remote_objects;
|
||||||
|
Set<RES> remote_dependencies;
|
||||||
EditorDebuggerRemoteObject *variables;
|
EditorDebuggerRemoteObject *variables;
|
||||||
|
|
||||||
void _object_selected(ObjectID p_object);
|
void _object_selected(ObjectID p_object);
|
||||||
|
|
Loading…
Reference in New Issue