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>2013-10-26 10:48:56 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-10-26 10:48:56 +0400
commita4203573cb5c60dbdc0518251546814980973469 (patch)
treebf499fc955734b170c05929cfc4b24faba346808
parent3c1dce0d9ba408bfe311132e3f287453537dded0 (diff)
fix for metaball editmode duplicate with PET
-rw-r--r--source/blender/editors/include/ED_mball.h1
-rw-r--r--source/blender/editors/metaball/mball_edit.c17
-rw-r--r--source/blender/editors/metaball/mball_ops.c15
-rw-r--r--source/blender/editors/space_api/spacetypes.c1
4 files changed, 16 insertions, 18 deletions
diff --git a/source/blender/editors/include/ED_mball.h b/source/blender/editors/include/ED_mball.h
index 1842b84a3f5..22aec69838b 100644
--- a/source/blender/editors/include/ED_mball.h
+++ b/source/blender/editors/include/ED_mball.h
@@ -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);
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);
diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c
index bb0521d6589..e2262398a52 100644
--- a/source/blender/editors/space_api/spacetypes.c
+++ b/source/blender/editors/space_api/spacetypes.c
@@ -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();