Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'object_collection_manager/operators.py')
-rw-r--r--object_collection_manager/operators.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/object_collection_manager/operators.py b/object_collection_manager/operators.py
index 45dc4df5..b38e2fe6 100644
--- a/object_collection_manager/operators.py
+++ b/object_collection_manager/operators.py
@@ -38,6 +38,8 @@ from . import internals
# For FUNCTIONS
from .internals import (
update_property_group,
+ generate_state,
+ check_state,
get_modifiers,
get_move_selection,
get_move_active,
@@ -1499,3 +1501,48 @@ class CMRestoreDisabledObjectsOperator(Operator):
obj.select_set(True)
return {'FINISHED'}
+
+
+class CMUndoWrapper(Operator):
+ bl_label = "Undo"
+ bl_description = "Undo previous action"
+ bl_idname = "view3d.undo_wrapper"
+
+ @classmethod
+ def poll(self, context):
+ return bpy.ops.ed.undo.poll()
+
+ def execute(self, context):
+ internals.collection_state.clear()
+ internals.collection_state.update(generate_state())
+ bpy.ops.ed.undo()
+ update_property_group(context)
+
+ check_state(context, cm_popup=True)
+
+ # clear buffers
+ internals.copy_buffer["RTO"] = ""
+ internals.copy_buffer["values"].clear()
+
+ internals.swap_buffer["A"]["RTO"] = ""
+ internals.swap_buffer["A"]["values"].clear()
+ internals.swap_buffer["B"]["RTO"] = ""
+ internals.swap_buffer["B"]["values"].clear()
+
+ return {'FINISHED'}
+
+
+class CMRedoWrapper(Operator):
+ bl_label = "Redo"
+ bl_description = "Redo previous action"
+ bl_idname = "view3d.redo_wrapper"
+
+ @classmethod
+ def poll(self, context):
+ return bpy.ops.ed.redo.poll()
+
+ def execute(self, context):
+ bpy.ops.ed.redo()
+ update_property_group(context)
+
+ return {'FINISHED'}