[Bf-blender-cvs] [085ed00e42a] master: A bunch of fixes for Pose Library while checking on T51607

Joshua Leung noreply at git.blender.org
Tue Jul 11 16:17:19 CEST 2017


Commit: 085ed00e42a5af31c03a3599c4fef38786fb6ba5
Author: Joshua Leung
Date:   Wed Jul 12 01:33:08 2017 +1200
Branches: master
https://developer.blender.org/rB085ed00e42a5af31c03a3599c4fef38786fb6ba5

A bunch of fixes for Pose Library while checking on T51607

* Display a warning above the pose list if the pose library is in an invalid
  state (i.e. when it has keyframes but no pose-markers associated with those
  keyframes). This warning prompts users to run the "Sanitize Pose Library Action"
  operator, which should fix up such issues.

* "Sanitize" operator now creates unique names for each newly create pose
  marker it generates, including the frame on which it found the pose

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

M	release/scripts/startup/bl_ui/properties_data_armature.py
M	source/blender/editors/armature/pose_lib.c

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

diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py
index 8d3ab24b4cf..20038e1354a 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -178,6 +178,10 @@ class DATA_PT_pose_library(ArmatureButtonsPanel, Panel):
         layout.template_ID(ob, "pose_library", new="poselib.new", unlink="poselib.unlink")
 
         if poselib:
+            # warning about poselib being in an invalid state
+            if len(poselib.fcurves) > 0 and len(poselib.pose_markers) == 0:
+                layout.label(icon='ERROR', text="Error: Potentially corrupt library, run 'Sanitize' operator to fix") 
+
             # list of poses in pose library
             row = layout.row()
             row.template_list("UI_UL_list", "pose_markers", poselib, "pose_markers",
diff --git a/source/blender/editors/armature/pose_lib.c b/source/blender/editors/armature/pose_lib.c
index e3c64b523b1..25f1b282f14 100644
--- a/source/blender/editors/armature/pose_lib.c
+++ b/source/blender/editors/armature/pose_lib.c
@@ -328,7 +328,7 @@ static int poselib_sanitize_exec(bContext *C, wmOperator *op)
 			/* add pose to poselib */
 			marker = MEM_callocN(sizeof(TimeMarker), "ActionMarker");
 			
-			BLI_strncpy(marker->name, "Pose", sizeof(marker->name));
+			BLI_snprintf(marker->name, sizeof(marker->name), "F%d Pose", (int)ak->cfra);
 			
 			marker->frame = (int)ak->cfra;
 			marker->flag = -1;




More information about the Bf-blender-cvs mailing list