|
@@ -175,6 +175,13 @@ void EditorResourcePicker::_file_quick_selected() {
|
|
_file_selected(quick_open->get_selected());
|
|
_file_selected(quick_open->get_selected());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void EditorResourcePicker::_resource_saved(Object *p_resource) {
|
|
|
|
+ if (edited_resource.is_valid() && p_resource == edited_resource.ptr()) {
|
|
|
|
+ emit_signal(SNAME("resource_changed"), edited_resource);
|
|
|
|
+ _update_resource();
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
void EditorResourcePicker::_update_menu() {
|
|
void EditorResourcePicker::_update_menu() {
|
|
_update_menu_items();
|
|
_update_menu_items();
|
|
|
|
|
|
@@ -408,6 +415,10 @@ void EditorResourcePicker::_edit_menu_cbk(int p_which) {
|
|
if (edited_resource.is_null()) {
|
|
if (edited_resource.is_null()) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ Callable resource_saved = callable_mp(this, &EditorResourcePicker::_resource_saved);
|
|
|
|
+ if (!EditorNode::get_singleton()->is_connected("resource_saved", resource_saved)) {
|
|
|
|
+ EditorNode::get_singleton()->connect("resource_saved", resource_saved);
|
|
|
|
+ }
|
|
EditorNode::get_singleton()->save_resource_as(edited_resource);
|
|
EditorNode::get_singleton()->save_resource_as(edited_resource);
|
|
} break;
|
|
} break;
|
|
|
|
|
|
@@ -833,6 +844,13 @@ void EditorResourcePicker::_notification(int p_what) {
|
|
assign_button->queue_redraw();
|
|
assign_button->queue_redraw();
|
|
}
|
|
}
|
|
} break;
|
|
} break;
|
|
|
|
+
|
|
|
|
+ case NOTIFICATION_EXIT_TREE: {
|
|
|
|
+ Callable resource_saved = callable_mp(this, &EditorResourcePicker::_resource_saved);
|
|
|
|
+ if (EditorNode::get_singleton()->is_connected("resource_saved", resource_saved)) {
|
|
|
|
+ EditorNode::get_singleton()->disconnect("resource_saved", resource_saved);
|
|
|
|
+ }
|
|
|
|
+ } break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|