forked from bartvdbraak/blender
fix for metaball editmode duplicate with PET
This commit is contained in:
parent
3c1dce0d9b
commit
a4203573cb
@ -37,6 +37,7 @@ struct Object;
|
||||
struct wmKeyConfig;
|
||||
|
||||
void ED_operatortypes_metaball(void);
|
||||
void ED_operatormacros_metaball(void);
|
||||
void ED_keymap_metaball(struct wmKeyConfig *keyconf);
|
||||
|
||||
struct MetaElem *add_metaball_primitive(struct bContext *C, struct Object *obedit, float mat[4][4], float dia, int type);
|
||||
|
@ -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 *****************************/
|
||||
|
@ -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);
|
||||
|
@ -133,6 +133,7 @@ void ED_spacetypes_init(void)
|
||||
* maybe we'll need to have them go after python operators too? */
|
||||
ED_operatormacros_armature();
|
||||
ED_operatormacros_mesh();
|
||||
ED_operatormacros_metaball();
|
||||
ED_operatormacros_node();
|
||||
ED_operatormacros_object();
|
||||
ED_operatormacros_file();
|
||||
|
Loading…
Reference in New Issue
Block a user