Fix T93189: Missing UNDO operator options for Curve Tools addon
A variety of operators were missing appropriate bl_options for correct undo support. This results in either crashes (auto loft, bi-rail) or other odd behaviors around returning the scene to the correct previous state (sometimes having to hit ctrl-z twice to undo once, sometimes undo skips steps, etc.) Differential Revision: https://developer.blender.org/D13283
This commit is contained in:
parent
9d801fca41
commit
7685aa17ce
Notes:
blender-bot
2023-02-14 18:29:13 +01:00
Referenced by issue blender/blender#88449: Blender LTS: Maintenance Task 2.93 Referenced by issue blender/blender#88449, Blender LTS: Maintenance Task 2.93 Referenced by issue #93189, Curve tools: Crash on undo operation
|
@ -10,6 +10,7 @@ class OperatorAutoLoftCurves(Operator):
|
|||
bl_idname = "curvetools.create_auto_loft"
|
||||
bl_label = "Loft"
|
||||
bl_description = "Lofts selected curves"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
|
|
@ -143,6 +143,7 @@ class OperatorOriginToSpline0Start(bpy.types.Operator):
|
|||
bl_idname = "curvetools.operatororigintospline0start"
|
||||
bl_label = "OriginToSpline0Start"
|
||||
bl_description = "Sets the origin of the active/selected curve to the starting point of the (first) spline. Nice for curve modifiers"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -180,6 +181,7 @@ class OperatorIntersectCurves(bpy.types.Operator):
|
|||
bl_idname = "curvetools.operatorintersectcurves"
|
||||
bl_label = "Intersect"
|
||||
bl_description = "Intersects selected curves"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -231,6 +233,7 @@ class OperatorLoftCurves(bpy.types.Operator):
|
|||
bl_idname = "curvetools.operatorloftcurves"
|
||||
bl_label = "Loft"
|
||||
bl_description = "Lofts selected curves"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -256,6 +259,7 @@ class OperatorSweepCurves(bpy.types.Operator):
|
|||
bl_idname = "curvetools.operatorsweepcurves"
|
||||
bl_label = "Sweep"
|
||||
bl_description = "Sweeps the active curve along to other curve (rail)"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -281,6 +285,7 @@ class OperatorBirail(bpy.types.Operator):
|
|||
bl_idname = "curvetools.operatorbirail"
|
||||
bl_label = "Birail"
|
||||
bl_description = "Generates a birailed surface from 3 selected curves -- in order: rail1, rail2 and profile"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -304,6 +309,7 @@ class OperatorSplinesSetResolution(bpy.types.Operator):
|
|||
bl_idname = "curvetools.operatorsplinessetresolution"
|
||||
bl_label = "SplinesSetResolution"
|
||||
bl_description = "Sets the resolution of all splines"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -328,6 +334,7 @@ class OperatorSplinesRemoveZeroSegment(bpy.types.Operator):
|
|||
bl_idname = "curvetools.operatorsplinesremovezerosegment"
|
||||
bl_label = "SplinesRemoveZeroSegment"
|
||||
bl_description = "Removes splines with no segments -- they seem to creep up, sometimes"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -362,6 +369,7 @@ class OperatorSplinesRemoveShort(bpy.types.Operator):
|
|||
bl_idname = "curvetools.operatorsplinesremoveshort"
|
||||
bl_label = "SplinesRemoveShort"
|
||||
bl_description = "Removes splines with a length smaller than the threshold"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -391,6 +399,7 @@ class OperatorSplinesJoinNeighbouring(bpy.types.Operator):
|
|||
bl_idname = "curvetools.operatorsplinesjoinneighbouring"
|
||||
bl_label = "SplinesJoinNeighbouring"
|
||||
bl_description = "Joins neighbouring splines within a distance smaller than the threshold"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -232,6 +232,7 @@ class RearrangeSpline(bpy.types.Operator):
|
|||
bl_idname = "curvetools.rearrange_spline"
|
||||
bl_label = "Rearrange Spline"
|
||||
bl_description = "Rearrange Spline"
|
||||
bl_options = {'UNDO'}
|
||||
|
||||
Types = [('NEXT', "Next", "next"),
|
||||
('PREV', "Prev", "prev")]
|
||||
|
|
Loading…
Reference in New Issue