[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47859] branches/soc-2012-bratwurst/source /blender/editors: Added X's for deleting keying sets.

Jorge Rodriguez bs.vino at gmail.com
Thu Jun 14 03:22:59 CEST 2012


Revision: 47859
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47859
Author:   vino
Date:     2012-06-14 01:22:48 +0000 (Thu, 14 Jun 2012)
Log Message:
-----------
Added X's for deleting keying sets.

Modified Paths:
--------------
    branches/soc-2012-bratwurst/source/blender/editors/animation/keyingsets.c
    branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c

Modified: branches/soc-2012-bratwurst/source/blender/editors/animation/keyingsets.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/animation/keyingsets.c	2012-06-14 01:07:06 UTC (rev 47858)
+++ branches/soc-2012-bratwurst/source/blender/editors/animation/keyingsets.c	2012-06-14 01:22:48 UTC (rev 47859)
@@ -155,29 +155,34 @@
 {
 	Scene *scene = CTX_data_scene(C);
 	KeyingSet *ks;
-	
+	int remove = RNA_int_get(op->ptr, "slot");
+
+	if (remove < 0)
+		remove = scene->active_keyingset;
+
 	/* verify the Keying Set to use:
 	 *	- use the active one
 	 *	- return error if it doesn't exist
 	 */
-	if (scene->active_keyingset == 0) {
+	if (remove == 0) {
 		BKE_report(op->reports, RPT_ERROR, "No active Keying Set to remove");
 		return OPERATOR_CANCELLED;
 	}
-	else if (scene->active_keyingset < 0) {
+	else if (remove < 0) {
 		BKE_report(op->reports, RPT_ERROR, "Cannot remove built in Keying Set");
 		return OPERATOR_CANCELLED;
 	}
 	else
-		ks = BLI_findlink(&scene->keyingsets, scene->active_keyingset - 1);
+		ks = BLI_findlink(&scene->keyingsets, remove - 1);
 	
 	/* free KeyingSet's data, then remove it from the scene */
 	BKE_keyingset_free(ks);
 	BLI_freelinkN(&scene->keyingsets, ks);
+
+	if (RNA_int_get(op->ptr, "slot") < 0)
+		/* the active one should now be the previously second-to-last one */
+		scene->active_keyingset--;
 	
-	/* the active one should now be the previously second-to-last one */
-	scene->active_keyingset--;
-	
 	/* send notifiers */
 	WM_event_add_notifier(C, NC_SCENE | ND_KEYINGSET, NULL);
 	
@@ -194,6 +199,8 @@
 	/* callbacks */
 	ot->exec = remove_active_keyingset_exec;
 	ot->poll = keyingset_poll_active_edit;
+
+	RNA_def_int(ot->srna, "slot", -1, INT_MIN, INT_MAX, "Set to remove", "< 0 means selection", INT_MIN, INT_MAX);
 }
 
 /* Add Empty Keying Set Path ------------------------- */

Modified: branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c	2012-06-14 01:07:06 UTC (rev 47858)
+++ branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c	2012-06-14 01:22:48 UTC (rev 47859)
@@ -2211,6 +2211,16 @@
 		uiBlockSetEmboss(block, UI_EMBOSS);
 #endif
 	}
+	else if (itemptr->type == &RNA_KeyingSet) {
+		PointerRNA remove_rna;
+
+		/* nothing else special to do... */
+		uiItemL(sub, name, icon); /* fails, backdrop LISTROW... */
+
+		WM_operator_properties_create(&remove_rna, "ANIM_OT_keying_set_remove");
+		RNA_int_set(&remove_rna, "slot", i+1);
+		uiItemFullO(sub, "anim.keying_set_remove", "", ICON_X, remove_rna.data, uiLayoutGetOperatorContext(layout), UI_ITEM_O_RETURN_PROPS|UI_ITEM_R_NO_BG);
+	}
 	else if (itemptr->type == &RNA_KeyingSetPath) {
 		KS_Path *ksp = (KS_Path *)itemptr->data;
 		




More information about the Bf-blender-cvs mailing list