Gizmo: add gizmos for UV transform translate/rotate/scale
[blender.git] / release / scripts / startup / keyingsets_builtins.py
index 9ba32150bbead29a1c4856545b6ded774939b399..bebd10edde3fb70f69db00d9495878688fa65948 100644 (file)
@@ -199,8 +199,8 @@ class BUILTIN_KSI_BendyBones(KeyingSetInfo):
 
 # VisualLocation
 class BUILTIN_KSI_VisualLoc(KeyingSetInfo):
 
 # VisualLocation
 class BUILTIN_KSI_VisualLoc(KeyingSetInfo):
-    """Insert a keyframe on each of the location channels, taking into account effects of constraints """
-    """and relationships"""
+    """Insert a keyframe on each of the location channels, """ \
+    """taking into account effects of constraints and relationships"""
     bl_label = "Visual Location"
 
     bl_options = {'INSERTKEY_VISUAL'}
     bl_label = "Visual Location"
 
     bl_options = {'INSERTKEY_VISUAL'}
@@ -217,8 +217,8 @@ class BUILTIN_KSI_VisualLoc(KeyingSetInfo):
 
 # VisualRotation
 class BUILTIN_KSI_VisualRot(KeyingSetInfo):
 
 # VisualRotation
 class BUILTIN_KSI_VisualRot(KeyingSetInfo):
-    """Insert a keyframe on each of the rotation channels, taking into account effects of constraints """
-    """and relationships"""
+    """Insert a keyframe on each of the rotation channels, """ \
+    """taking into account effects of constraints and relationships"""
     bl_label = "Visual Rotation"
 
     bl_options = {'INSERTKEY_VISUAL'}
     bl_label = "Visual Rotation"
 
     bl_options = {'INSERTKEY_VISUAL'}
@@ -235,8 +235,8 @@ class BUILTIN_KSI_VisualRot(KeyingSetInfo):
 
 # VisualScaling
 class BUILTIN_KSI_VisualScaling(KeyingSetInfo):
 
 # VisualScaling
 class BUILTIN_KSI_VisualScaling(KeyingSetInfo):
-    """Insert a keyframe on each of the scale channels, taking into account effects of constraints """
-    """and relationships"""
+    """Insert a keyframe on each of the scale channels, """ \
+    """taking into account effects of constraints and relationships"""
     bl_label = "Visual Scaling"
 
     bl_options = {'INSERTKEY_VISUAL'}
     bl_label = "Visual Scaling"
 
     bl_options = {'INSERTKEY_VISUAL'}
@@ -253,8 +253,8 @@ class BUILTIN_KSI_VisualScaling(KeyingSetInfo):
 
 # VisualLocRot
 class BUILTIN_KSI_VisualLocRot(KeyingSetInfo):
 
 # VisualLocRot
 class BUILTIN_KSI_VisualLocRot(KeyingSetInfo):
-    """Insert a keyframe on each of the location and rotation channels, taking into account effects of constraints """
-    """and relationships"""
+    """Insert a keyframe on each of the location and rotation channels, """ \
+    """taking into account effects of constraints and relationships"""
     bl_label = "Visual LocRot"
 
     bl_options = {'INSERTKEY_VISUAL'}
     bl_label = "Visual LocRot"
 
     bl_options = {'INSERTKEY_VISUAL'}
@@ -275,8 +275,8 @@ class BUILTIN_KSI_VisualLocRot(KeyingSetInfo):
 
 # VisualLocScale
 class BUILTIN_KSI_VisualLocScale(KeyingSetInfo):
 
 # VisualLocScale
 class BUILTIN_KSI_VisualLocScale(KeyingSetInfo):
-    """Insert a keyframe on each of the location and scaling channels, taking into account effects of constraints """
-    """and relationships"""
+    """Insert a keyframe on each of the location and scaling channels, """ \
+    """taking into account effects of constraints and relationships"""
     bl_label = "Visual LocScale"
 
     bl_options = {'INSERTKEY_VISUAL'}
     bl_label = "Visual LocScale"
 
     bl_options = {'INSERTKEY_VISUAL'}
@@ -297,8 +297,8 @@ class BUILTIN_KSI_VisualLocScale(KeyingSetInfo):
 
 # VisualLocRotScale
 class BUILTIN_KSI_VisualLocRotScale(KeyingSetInfo):
 
 # VisualLocRotScale
 class BUILTIN_KSI_VisualLocRotScale(KeyingSetInfo):
-    """Insert a keyframe on each of the location, rotation and scaling channels, taking into account effects """
-    """of constraints and relationships"""
+    """Insert a keyframe on each of the location, """ \
+    """rotation and scaling channels, taking into account effects of constraints and relationships"""
     bl_label = "Visual LocRotScale"
 
     bl_options = {'INSERTKEY_VISUAL'}
     bl_label = "Visual LocRotScale"
 
     bl_options = {'INSERTKEY_VISUAL'}
@@ -321,8 +321,8 @@ class BUILTIN_KSI_VisualLocRotScale(KeyingSetInfo):
 
 # VisualRotScale
 class BUILTIN_KSI_VisualRotScale(KeyingSetInfo):
 
 # VisualRotScale
 class BUILTIN_KSI_VisualRotScale(KeyingSetInfo):
-    """Insert a keyframe on each of the rotation and scaling channels, taking into account effects of constraints """
-    """and relationships"""
+    """Insert a keyframe on each of the rotation and scaling channels, """ \
+    """taking into account effects of constraints and relationships"""
     bl_label = "Visual RotScale"
 
     bl_options = {'INSERTKEY_VISUAL'}
     bl_label = "Visual RotScale"
 
     bl_options = {'INSERTKEY_VISUAL'}
@@ -369,7 +369,7 @@ class BUILTIN_KSI_Available(KeyingSetInfo):
 
 # All properties that are likely to get animated in a character rig
 class BUILTIN_KSI_WholeCharacter(KeyingSetInfo):
 
 # All properties that are likely to get animated in a character rig
 class BUILTIN_KSI_WholeCharacter(KeyingSetInfo):
-    """Insert a keyframe for all properties that are likely to get animated in a character rig """
+    """Insert a keyframe for all properties that are likely to get animated in a character rig """ \
     """(useful when blocking out a shot)"""
     bl_idname = ANIM_KS_WHOLE_CHARACTER_ID
     bl_label = "Whole Character"
     """(useful when blocking out a shot)"""
     bl_idname = ANIM_KS_WHOLE_CHARACTER_ID
     bl_label = "Whole Character"
@@ -521,7 +521,13 @@ class BUILTIN_KSI_WholeCharacter(KeyingSetInfo):
             prop_rna = type(bone).bl_rna.properties.get(prop, None)
             if prop_rna is None:
                 prop_path = '["%s"]' % prop
             prop_rna = type(bone).bl_rna.properties.get(prop, None)
             if prop_rna is None:
                 prop_path = '["%s"]' % prop
-                if bone.path_resolve(prop_path, False).rna_type in prop_type_compat:
+                try:
+                    rna_property = bone.path_resolve(prop_path, False)
+                except ValueError as ex:
+                    # This happens when a custom property is set to None. In that case it cannot
+                    # be converted to an FCurve-compatible value, so we can't keyframe it anyway.
+                    continue
+                if rna_property.rna_type in prop_type_compat:
                     ksi.addProp(ks, bone, prop_path)
             elif prop_rna.is_animatable:
                 ksi.addProp(ks, bone, prop)
                     ksi.addProp(ks, bone, prop_path)
             elif prop_rna.is_animatable:
                 ksi.addProp(ks, bone, prop)
@@ -530,7 +536,7 @@ class BUILTIN_KSI_WholeCharacter(KeyingSetInfo):
 
 
 class BUILTIN_KSI_WholeCharacterSelected(KeyingSetInfo):
 
 
 class BUILTIN_KSI_WholeCharacterSelected(KeyingSetInfo):
-    """Insert a keyframe for all properties that are likely to get animated in a character rig """
+    """Insert a keyframe for all properties that are likely to get animated in a character rig """ \
     """(only selected bones)"""
     bl_idname = ANIM_KS_WHOLE_CHARACTER_SELECTED_ID
     bl_label = "Whole Character (Selected bones only)"
     """(only selected bones)"""
     bl_idname = ANIM_KS_WHOLE_CHARACTER_SELECTED_ID
     bl_label = "Whole Character (Selected bones only)"