Browse Source

Extend UndoRedo handling of Resource to every Reference

Pedro J. Estébanez 5 years ago
parent
commit
1f52782bbb
2 changed files with 15 additions and 14 deletions
  1. 13 12
      core/object/undo_redo.cpp
  2. 2 2
      core/object/undo_redo.h

+ 13 - 12
core/object/undo_redo.cpp

@@ -31,6 +31,7 @@
 #include "undo_redo.h"
 
 #include "core/os/os.h"
+#include "core/resource.h"
 
 void UndoRedo::_discard_redo() {
 	if (current_action == actions.size() - 1) {
@@ -104,8 +105,8 @@ void UndoRedo::add_do_method(Object *p_object, const StringName &p_method, VARIA
 	ERR_FAIL_COND((current_action + 1) >= actions.size());
 	Operation do_op;
 	do_op.object = p_object->get_instance_id();
-	if (Object::cast_to<Resource>(p_object)) {
-		do_op.resref = Ref<Resource>(Object::cast_to<Resource>(p_object));
+	if (Object::cast_to<Reference>(p_object)) {
+		do_op.ref = Ref<Reference>(Object::cast_to<Reference>(p_object));
 	}
 
 	do_op.type = Operation::TYPE_METHOD;
@@ -130,8 +131,8 @@ void UndoRedo::add_undo_method(Object *p_object, const StringName &p_method, VAR
 
 	Operation undo_op;
 	undo_op.object = p_object->get_instance_id();
-	if (Object::cast_to<Resource>(p_object)) {
-		undo_op.resref = Ref<Resource>(Object::cast_to<Resource>(p_object));
+	if (Object::cast_to<Reference>(p_object)) {
+		undo_op.ref = Ref<Reference>(Object::cast_to<Reference>(p_object));
 	}
 
 	undo_op.type = Operation::TYPE_METHOD;
@@ -149,8 +150,8 @@ void UndoRedo::add_do_property(Object *p_object, const StringName &p_property, c
 	ERR_FAIL_COND((current_action + 1) >= actions.size());
 	Operation do_op;
 	do_op.object = p_object->get_instance_id();
-	if (Object::cast_to<Resource>(p_object)) {
-		do_op.resref = Ref<Resource>(Object::cast_to<Resource>(p_object));
+	if (Object::cast_to<Reference>(p_object)) {
+		do_op.ref = Ref<Reference>(Object::cast_to<Reference>(p_object));
 	}
 
 	do_op.type = Operation::TYPE_PROPERTY;
@@ -171,8 +172,8 @@ void UndoRedo::add_undo_property(Object *p_object, const StringName &p_property,
 
 	Operation undo_op;
 	undo_op.object = p_object->get_instance_id();
-	if (Object::cast_to<Resource>(p_object)) {
-		undo_op.resref = Ref<Resource>(Object::cast_to<Resource>(p_object));
+	if (Object::cast_to<Reference>(p_object)) {
+		undo_op.ref = Ref<Reference>(Object::cast_to<Reference>(p_object));
 	}
 
 	undo_op.type = Operation::TYPE_PROPERTY;
@@ -187,8 +188,8 @@ void UndoRedo::add_do_reference(Object *p_object) {
 	ERR_FAIL_COND((current_action + 1) >= actions.size());
 	Operation do_op;
 	do_op.object = p_object->get_instance_id();
-	if (Object::cast_to<Resource>(p_object)) {
-		do_op.resref = Ref<Resource>(Object::cast_to<Resource>(p_object));
+	if (Object::cast_to<Reference>(p_object)) {
+		do_op.ref = Ref<Reference>(Object::cast_to<Reference>(p_object));
 	}
 
 	do_op.type = Operation::TYPE_REFERENCE;
@@ -207,8 +208,8 @@ void UndoRedo::add_undo_reference(Object *p_object) {
 
 	Operation undo_op;
 	undo_op.object = p_object->get_instance_id();
-	if (Object::cast_to<Resource>(p_object)) {
-		undo_op.resref = Ref<Resource>(Object::cast_to<Resource>(p_object));
+	if (Object::cast_to<Reference>(p_object)) {
+		undo_op.ref = Ref<Reference>(Object::cast_to<Reference>(p_object));
 	}
 
 	undo_op.type = Operation::TYPE_REFERENCE;

+ 2 - 2
core/object/undo_redo.h

@@ -31,8 +31,8 @@
 #ifndef UNDO_REDO_H
 #define UNDO_REDO_H
 
-#include "core/io/resource.h"
 #include "core/object/class_db.h"
+#include "core/object/reference.h"
 
 class UndoRedo : public Object {
 	GDCLASS(UndoRedo, Object);
@@ -61,7 +61,7 @@ private:
 		};
 
 		Type type;
-		Ref<Resource> resref;
+		Ref<Reference> ref;
 		ObjectID object;
 		StringName name;
 		Variant args[VARIANT_ARG_MAX];