diff options
author | Ton Roosendaal <ton@blender.org> | 2012-12-22 22:34:17 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2012-12-22 22:34:17 +0400 |
commit | 3ca00cbf541d0283e91dc454866a5f24576271be (patch) | |
tree | 55387f7c8929aa4ecb495ca4bf10ff2b88215afe /source/blender/editors/object/object_add.c | |
parent | 6edcbb2f7f319ac44d27c08cb0cab7863e38a8d5 (diff) |
Outliner:
Added drag-drop support for Groups. On drop in 3d window it creates an instance.
Todo: it adds this on 3d cursor position still. The existing drop-object-duplicate operator
is a Macro - with warning. For adding on mouse-cursor position we need a better
way (new function call, just use operator option).
Diffstat (limited to 'source/blender/editors/object/object_add.c')
-rw-r--r-- | source/blender/editors/object/object_add.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index b21b77e4e34..473119c90f3 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -802,10 +802,18 @@ void OBJECT_OT_lamp_add(wmOperatorType *ot) static int group_instance_add_exec(bContext *C, wmOperator *op) { - Group *group = BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "group")); - + Group *group; unsigned int layer; float loc[3], rot[3]; + + if (RNA_struct_property_is_set(op->ptr, "name")) { + char name[MAX_ID_NAME - 2]; + + RNA_string_get(op->ptr, "name", name); + group = (Group *)BKE_libblock_find_name(ID_GR, name); + } + else + group = BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "group")); if (!ED_object_add_generic_get_opts(C, op, loc, rot, NULL, &layer, NULL)) return OPERATOR_CANCELLED; @@ -847,6 +855,7 @@ void OBJECT_OT_group_instance_add(wmOperatorType *ot) ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; /* properties */ + RNA_def_string(ot->srna, "name", "Group", MAX_ID_NAME - 2, "Name", "Group name to add"); ot->prop = RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", ""); RNA_def_enum_funcs(ot->prop, RNA_group_itemf); ED_object_add_generic_props(ot, FALSE); |