Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-07-17 19:16:44 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-07-17 19:16:44 +0400
commit46bec423333d3cee3401bf967c6adff257f8b310 (patch)
tree553d85663e35de9a4a450a8661deb8e7354d1847 /source/blender/editors/interface
parent9c714f695ae3156519b6e8f4abd0d82f171ba541 (diff)
option to clear all keys from a button, so you dont have to hunt about for the keys inserted.
Diffstat (limited to 'source/blender/editors/interface')
-rw-r--r--source/blender/editors/interface/interface_anim.c6
-rw-r--r--source/blender/editors/interface/interface_handlers.c28
-rw-r--r--source/blender/editors/interface/interface_intern.h1
3 files changed, 31 insertions, 4 deletions
diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c
index 3099fcb2b40..5d62ef768d2 100644
--- a/source/blender/editors/interface/interface_anim.c
+++ b/source/blender/editors/interface/interface_anim.c
@@ -212,6 +212,12 @@ void ui_but_anim_delete_keyframe(bContext *C)
WM_operator_name_call(C, "ANIM_OT_keyframe_delete_button", WM_OP_INVOKE_DEFAULT, NULL);
}
+void ui_but_anim_clear_keyframe(bContext *C)
+{
+ /* this operator calls uiContextActiveProperty */
+ WM_operator_name_call(C, "ANIM_OT_keyframe_clear_button", WM_OP_INVOKE_DEFAULT, NULL);
+}
+
void ui_but_anim_add_driver(bContext *C)
{
/* this operator calls uiContextActiveProperty */
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 0a9665ffc15..91b3b3ea622 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -4474,6 +4474,19 @@ static int ui_but_menu(bContext *C, uiBut *but)
ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
}
+ if (but->flag & UI_BUT_ANIMATED) {
+ if (length) {
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Clear Keyframes"),
+ ICON_NONE, "ANIM_OT_keyframe_clear_button", "all", 1);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Clear Single Keyframes"),
+ ICON_NONE, "ANIM_OT_keyframe_clear_button", "all", 0);
+ }
+ else {
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Clear Keyframes"),
+ ICON_NONE, "ANIM_OT_keyframe_clear_button", "all", 0);
+ }
+ }
+
/* Drivers */
if (but->flag & UI_BUT_DRIVEN) {
uiItemS(layout);
@@ -4687,11 +4700,18 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
ui_but_drop(C, event, but, data);
}
/* handle keyframing */
- else if (event->type == IKEY && !ELEM3(KM_MOD_FIRST, event->ctrl, event->oskey, event->shift) && event->val == KM_PRESS) {
- if (event->alt)
- ui_but_anim_delete_keyframe(C);
- else
+ else if (event->type == IKEY && !ELEM(KM_MOD_FIRST, event->ctrl, event->oskey) && event->val == KM_PRESS) {
+ if (event->alt) {
+ if (event->shift) {
+ ui_but_anim_clear_keyframe(C);
+ }
+ else {
+ ui_but_anim_delete_keyframe(C);
+ }
+ }
+ else {
ui_but_anim_insert_keyframe(C);
+ }
ED_region_tag_redraw(CTX_wm_region(C));
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 1f88db033a4..c6787b4c554 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -508,6 +508,7 @@ void ui_but_add_shortcut(uiBut *but, const char *key_str, const short do_strip);
void ui_but_anim_flag(uiBut *but, float cfra);
void ui_but_anim_insert_keyframe(struct bContext *C);
void ui_but_anim_delete_keyframe(struct bContext *C);
+void ui_but_anim_clear_keyframe(struct bContext *C);
void ui_but_anim_add_driver(struct bContext *C);
void ui_but_anim_remove_driver(struct bContext *C);
void ui_but_anim_copy_driver(struct bContext *C);