Merge pull request #70923 from KoBeWi/actual_resource

Refactor inspector code for getting resource
This commit is contained in:
Rémi Verschelde 2023-01-08 22:37:05 +01:00
commit 495ec2130e
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 13 additions and 19 deletions

View file

@ -257,12 +257,8 @@ void InspectorDock::_resource_file_selected(String p_file) {
}
void InspectorDock::_save_resource(bool save_as) {
ObjectID current_id = EditorNode::get_singleton()->get_editor_selection_history()->get_current();
Object *current_obj = current_id.is_valid() ? ObjectDB::get_instance(current_id) : nullptr;
ERR_FAIL_COND(!Object::cast_to<Resource>(current_obj));
Ref<Resource> current_res = Ref<Resource>(Object::cast_to<Resource>(current_obj));
Ref<Resource> current_res = _get_current_resource();
ERR_FAIL_COND(current_res.is_null());
if (save_as) {
EditorNode::get_singleton()->save_resource_as(current_res);
@ -272,24 +268,15 @@ void InspectorDock::_save_resource(bool save_as) {
}
void InspectorDock::_unref_resource() {
ObjectID current_id = EditorNode::get_singleton()->get_editor_selection_history()->get_current();
Object *current_obj = current_id.is_valid() ? ObjectDB::get_instance(current_id) : nullptr;
ERR_FAIL_COND(!Object::cast_to<Resource>(current_obj));
Ref<Resource> current_res = Ref<Resource>(Object::cast_to<Resource>(current_obj));
Ref<Resource> current_res = _get_current_resource();
ERR_FAIL_COND(current_res.is_null());
current_res->set_path("");
EditorNode::get_singleton()->edit_current();
}
void InspectorDock::_copy_resource() {
ObjectID current_id = EditorNode::get_singleton()->get_editor_selection_history()->get_current();
Object *current_obj = current_id.is_valid() ? ObjectDB::get_instance(current_id) : nullptr;
ERR_FAIL_COND(!Object::cast_to<Resource>(current_obj));
Ref<Resource> current_res = Ref<Resource>(Object::cast_to<Resource>(current_obj));
Ref<Resource> current_res = _get_current_resource();
ERR_FAIL_COND(current_res.is_null());
EditorSettings::get_singleton()->set_resource_clipboard(current_res);
}
@ -306,6 +293,12 @@ void InspectorDock::_prepare_resource_extra_popup() {
popup->set_item_disabled(popup->get_item_index(RESOURCE_EDIT_CLIPBOARD), r.is_null());
}
Ref<Resource> InspectorDock::_get_current_resource() const {
ObjectID current_id = EditorNode::get_singleton()->get_editor_selection_history()->get_current();
Object *current_obj = current_id.is_valid() ? ObjectDB::get_instance(current_id) : nullptr;
return Ref<Resource>(Object::cast_to<Resource>(current_obj));
}
void InspectorDock::_prepare_history() {
EditorSelectionHistory *editor_history = EditorNode::get_singleton()->get_editor_selection_history();

View file

@ -119,6 +119,7 @@ class InspectorDock : public VBoxContainer {
void _copy_resource();
void _paste_resource();
void _prepare_resource_extra_popup();
Ref<Resource> _get_current_resource() const;
void _info_pressed();
void _resource_created();