[Bf-extensions-cvs] [ac0c5a2] master: AnimAll: Update panel Rename, Cleanup

lijenstina noreply at git.blender.org
Thu Mar 30 22:45:22 CEST 2017


Commit: ac0c5a2cc112de7d204c164b5219762f5a615bb7
Author: lijenstina
Date:   Thu Mar 30 22:43:47 2017 +0200
Branches: master
https://developer.blender.org/rBAac0c5a2cc112de7d204c164b5219762f5a615bb7

AnimAll: Update panel Rename, Cleanup

Bumped version to 0.8.1
As a part of the task T50726:
Update the Panel rename code to a more generic one

PEP8 cleanup:
Tuple imports and use them for class types
instead of the star import
Consistent Scene props definitions

UI refresh when adding or removing keyframes
Fix crash when on delete when there is no keyframes
More extensive Clear Animation tooltip
Fix a misaligned prop

===================================================================

M	animation_animall.py

===================================================================

diff --git a/animation_animall.py b/animation_animall.py
index 8c9c26c..42760e8 100644
--- a/animation_animall.py
+++ b/animation_animall.py
@@ -19,96 +19,126 @@
 bl_info = {
     "name": "AnimAll",
     "author": "Daniel Salazar <zanqdo at gmail.com>",
-    "version": (0, 8),
+    "version": (0, 8, 1),
     "blender": (2, 73),
     "location": "Tool bar > Animation tab > AnimAll",
     "description": "Allows animation of mesh, lattice, curve and surface data",
     "warning": "",
-    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
+    "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
                 "Scripts/Animation/AnimAll",
     "category": "Animation",
 }
 
-"""-------------------------------------------------------------------------
+"""
 Thanks to Campbell Barton and Joshua Leung for hes API additions and fixes
 Daniel 'ZanQdo' Salazar
--------------------------------------------------------------------------"""
+"""
 
 import bpy
-from bpy.props import *
+from bpy.types import (
+        Operator,
+        Panel,
+        AddonPreferences,
+        )
+from bpy.props import (
+        BoolProperty,
+        StringProperty,
+        )
 
 
-#
 # Property Definitions
-#
+
 bpy.types.WindowManager.key_shape = BoolProperty(
     name="Shape",
     description="Insert keyframes on active Shape Key layer",
-    default=False)
-
+    default=False
+    )
 bpy.types.WindowManager.key_uvs = BoolProperty(
     name="UVs",
     description="Insert keyframes on active UV coordinates",
-    default=False)
-
+    default=False
+    )
 bpy.types.WindowManager.key_ebevel = BoolProperty(
     name="E-Bevel",
     description="Insert keyframes on edge bevel weight",
-    default=False)
-
+    default=False
+    )
 bpy.types.WindowManager.key_vbevel = BoolProperty(
     name="V-Bevel",
     description="Insert keyframes on vertex bevel weight",
-    default=False)
-
+    default=False
+    )
 bpy.types.WindowManager.key_crease = BoolProperty(
     name="Crease",
     description="Insert keyframes on edge creases",
-    default=False)
-
+    default=False
+    )
 bpy.types.WindowManager.key_vcols = BoolProperty(
     name="V-Cols",
     description="Insert keyframes on active Vertex Color values",
-    default=False)
-
+    default=False
+    )
 bpy.types.WindowManager.key_vgroups = BoolProperty(
     name="V-Groups",
     description="Insert keyframes on active Vertex Group values",
-    default=False)
-
+    default=False
+    )
 bpy.types.WindowManager.key_points = BoolProperty(
     name="Points",
     description="Insert keyframes on point locations",
-    default=False)
-
+    default=False
+    )
 bpy.types.WindowManager.key_radius = BoolProperty(
     name="Radius",
     description="Insert keyframes on point radius (Shrink/Fatten)",
-    default=False)
-
+    default=False
+    )
 bpy.types.WindowManager.key_tilt = BoolProperty(
     name="Tilt",
     description="Insert keyframes on point tilt",
-    default=False)
+    default=False
+    )
+
+
+# Utility functions
+
+def refresh_ui_keyframes():
+    try:
+        for area in bpy.context.screen.areas:
+            if area.type in ('TIMELINE', 'GRAPH_EDITOR', 'DOPESHEET_EDITOR'):
+                area.tag_redraw()
+    except:
+        pass
+
+
+def insert_key(data, key):
+    try:
+        data.keyframe_insert(key)
+    except:
+        pass
+
+
+def delete_key(data, key):
+    try:
+        data.keyframe_delete(key)
+    except:
+        pass
+
 
-#
 # GUI (Panel)
-#
-class VIEW3D_PT_animall(bpy.types.Panel):
 
+class VIEW3D_PT_animall(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'TOOLS'
     bl_category = "Animation"
     bl_label = 'AnimAll'
-    #bl_options = {'DEFAULT_CLOSED'}
+
     @classmethod
     def poll(self, context):
         if context.active_object and context.active_object.type in {'MESH', 'LATTICE', 'CURVE', 'SURFACE'}:
             return context.active_object.type
 
-    # draw the gui
     def draw(self, context):
-
         Obj = context.active_object
 
         layout = self.layout
@@ -125,12 +155,12 @@ class VIEW3D_PT_animall(bpy.types.Panel):
             row = col.row()
             row.prop(context.window_manager, "key_ebevel")
             row.prop(context.window_manager, "key_vbevel")
-            col.prop(context.window_manager, "key_crease")
+            row = col.row()
+            row.prop(context.window_manager, "key_crease")
+            row.prop(context.window_manager, "key_uvs")
             row = col.row()
             row.prop(context.window_manager, "key_vcols")
             row.prop(context.window_manager, "key_vgroups")
-            row = col.row()
-            row.prop(context.window_manager, "key_uvs")
 
         elif Obj.type == 'CURVE':
             row.prop(context.window_manager, "key_points")
@@ -146,14 +176,14 @@ class VIEW3D_PT_animall(bpy.types.Panel):
             row.prop(context.window_manager, "key_radius")
             row.prop(context.window_manager, "key_tilt")
 
-        row = col.row()
-        row.operator('anim.insert_keyframe_animall', icon='KEY_HLT')
-        row.operator('anim.delete_keyframe_animall', icon='KEY_DEHLT')
+        layout.separator()
+        row = layout.row(align=True)
+        row.operator("anim.insert_keyframe_animall", icon="KEY_HLT")
+        row.operator("anim.delete_keyframe_animall", icon="KEY_DEHLT")
         row = layout.row()
-        row.operator('anim.clear_animation_animall', icon='X')
+        row.operator("anim.clear_animation_animall", icon="X")
 
         if context.window_manager.key_shape:
-
             ShapeKey = Obj.active_shape_key
             ShapeKeyIndex = Obj.active_shape_key_index
 
@@ -161,39 +191,34 @@ class VIEW3D_PT_animall(bpy.types.Panel):
             row = split.row()
 
             if ShapeKeyIndex > 0:
-                row.label(ShapeKey.name, icon='SHAPEKEY_DATA')
+                row.label(ShapeKey.name, icon="SHAPEKEY_DATA")
                 row.prop(ShapeKey, "value", text="")
                 row.prop(Obj, "show_only_shape_key", text="")
                 if ShapeKey.value < 1:
                     row = layout.row()
-                    row.label('Maybe set "%s" to 1.0?' % ShapeKey.name, icon='INFO')
+                    row.label('Maybe set "%s" to 1.0?' % ShapeKey.name, icon="INFO")
             elif ShapeKey:
-                row.label('Can not key on Basis Shape', icon='ERROR')
+                row.label("Can not key on Basis Shape", icon="ERROR")
             else:
-                row.label('No active Shape Key', icon='ERROR')
+                row.label("No active Shape Key", icon="ERROR")
 
         if context.window_manager.key_points and context.window_manager.key_shape:
             row = layout.row()
-            row.label('"Points" and "Shape" are redundant?', icon='INFO')
+            row.label('"Points" and "Shape" are redundant?', icon="INFO")
 
 
-class ANIM_OT_insert_keyframe_animall(bpy.types.Operator):
-    bl_label = 'Insert'
-    bl_idname = 'anim.insert_keyframe_animall'
-    bl_description = 'Insert a Keyframe'
+class ANIM_OT_insert_keyframe_animall(Operator):
+    bl_label = "Insert"
+    bl_idname = "anim.insert_keyframe_animall"
+    bl_description = "Insert a Keyframe"
     bl_options = {'REGISTER', 'UNDO'}
 
-
-    # on mouse up:
     def invoke(self, context, event):
-
         self.execute(context)
 
         return {'FINISHED'}
 
-
     def execute(op, context):
-
         Obj = context.active_object
 
         if Obj.type == 'MESH':
@@ -207,38 +232,38 @@ class ANIM_OT_insert_keyframe_animall(bpy.types.Operator):
             if context.window_manager.key_shape:
                 if Obj.active_shape_key_index > 0:
                     for Vert in Obj.active_shape_key.data:
-                        Vert.keyframe_insert('co')
+                        insert_key(Vert, 'co')
 
             if context.window_manager.key_points:
                 for Vert in Data.vertices:
-                    Vert.keyframe_insert('co')
+                    insert_key(Vert, 'co')
 
             if context.window_manager.key_ebevel:
                 for Edge in Data.edges:
-                    Edge.keyframe_insert('bevel_weight')
+                    insert_key(Edge, 'bevel_weight')
 
             if context.window_manager.key_vbevel:
                 for Vert in Data.vertices:
-                    Vert.keyframe_insert('bevel_weight')
+                    insert_key(Vert, 'bevel_weight')
 
             if context.window_manager.key_crease:
                 for Edge in Data.edges:
-                    Edge.keyframe_insert('crease')
+                    insert_key(Edge, 'crease')
 
             if context.window_manager.key_vgroups:
                 for Vert in Data.vertices:
                     for Group in Vert.groups:
-                        Group.keyframe_insert('weight')
+                        insert_key(Group, 'weight')
 
             if context.window_manager.key_uvs:
                 for UV in Data.uv_layers.active.data:
-                    UV.keyframe_insert('uv')
+                    insert_key(UV, 'uv')
 
             if context.window_manager.key_vcols:
                 for VColLayer in Data.vertex_colors:
-                    if VColLayer.active: # only insert in active VCol layer
+                    if VColLayer.active:  # only insert in active VCol layer
                         for Data in VColLayer.data:
-                            Data.keyframe_insert('color')
+                            insert_key(Data, 'color')
 
             if Mode:
                 bpy.ops.object.editmode_toggle()
@@ -254,11 +279,11 @@ class ANIM_OT_insert_keyframe_animall(bpy.types.Operator):
             if context.window_manager.key_shape:
                 if Obj.active_shape_key_index > 0:
                     for Point in Obj.active_shape_key.data:
-                        Point.keyframe_insert('co')
+                        insert_key(Point, 'co')
 
             if context.window_manager.key_points:
                 for Point in Data.points:
-                    Point.keyframe_insert('co_deform')
+                    insert_key(Point, 'co_deform')
 
             if Mode:
                 bpy.ops.object.editmode_togg

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list