From a4203573cb5c60dbdc0518251546814980973469 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 26 Oct 2013 06:48:56 +0000 Subject: fix for metaball editmode duplicate with PET --- source/blender/editors/metaball/mball_edit.c | 17 ----------------- source/blender/editors/metaball/mball_ops.c | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 18 deletions(-) (limited to 'source/blender/editors/metaball') diff --git a/source/blender/editors/metaball/mball_edit.c b/source/blender/editors/metaball/mball_edit.c index 24c46bd7966..7130166ba0e 100644 --- a/source/blender/editors/metaball/mball_edit.c +++ b/source/blender/editors/metaball/mball_edit.c @@ -441,19 +441,6 @@ static int duplicate_metaelems_exec(bContext *C, wmOperator *UNUSED(op)) return OPERATOR_FINISHED; } -static int duplicate_metaelems_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event)) -{ - int retv = duplicate_metaelems_exec(C, op); - - if (retv == OPERATOR_FINISHED) { - RNA_enum_set(op->ptr, "mode", TFM_TRANSLATION); - WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); - } - - return retv; -} - - void MBALL_OT_duplicate_metaelems(wmOperatorType *ot) { /* identifiers */ @@ -463,14 +450,10 @@ void MBALL_OT_duplicate_metaelems(wmOperatorType *ot) /* callback functions */ ot->exec = duplicate_metaelems_exec; - ot->invoke = duplicate_metaelems_invoke; ot->poll = ED_operator_editmball; /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - - /* to give to transform */ - RNA_def_enum(ot->srna, "mode", transform_mode_types, TFM_TRANSLATION, "Mode", ""); } /***************************** Delete operator *****************************/ diff --git a/source/blender/editors/metaball/mball_ops.c b/source/blender/editors/metaball/mball_ops.c index 74d47d9db17..249e7361cc0 100644 --- a/source/blender/editors/metaball/mball_ops.c +++ b/source/blender/editors/metaball/mball_ops.c @@ -56,6 +56,19 @@ void ED_operatortypes_metaball(void) WM_operatortype_append(MBALL_OT_select_random_metaelems); } +void ED_operatormacros_metaball(void) +{ + wmOperatorType *ot; + wmOperatorTypeMacro *otmacro; + + ot = WM_operatortype_append_macro("MBALL_OT_duplicate_move", "Duplicate", + "Make copies of the selected bones within the same armature and move them", + OPTYPE_UNDO | OPTYPE_REGISTER); + WM_operatortype_macro_define(ot, "MBALL_OT_duplicate_metaelems"); + otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate"); + RNA_enum_set(otmacro->ptr, "proportional", 0); +} + void ED_keymap_metaball(wmKeyConfig *keyconf) { wmKeyMap *keymap; @@ -74,7 +87,7 @@ void ED_keymap_metaball(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", XKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", DELKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "MBALL_OT_duplicate_metaelems", DKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_item(keymap, "MBALL_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0); kmi = WM_keymap_add_item(keymap, "MBALL_OT_select_all", AKEY, KM_PRESS, 0, 0); RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE); -- cgit v1.2.3