[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