Partially revert "Collection duplication from Outliner: add a 'duplicate hierarchy' operation."

This partially reverts commit a77feabb51,
removing the shallow 'duplicate hierarchy' option from outliner.

Core changes from that commit in BKE_collections are kept.
This commit is contained in:
Bastien Montagne 2019-03-08 17:13:33 +01:00
parent 13978f7ff6
commit 457ecc6825
5 changed files with 6 additions and 23 deletions

View File

@ -192,9 +192,8 @@ class OUTLINER_MT_collection(Menu):
space = context.space_data
layout.operator("outliner.collection_new", text="New").nested = True
layout.operator("outliner.collection_duplicate_hierarchy", text="Duplicate Hierarchy")
layout.operator("outliner.collection_duplicate", text="Duplicate Collection")
layout.operator("outliner.collection_duplicate_linked", text="Duplicate Linked")
layout.operator("outliner.collection_duplicate", text="Duplicate Full")
layout.separator()

View File

@ -298,9 +298,11 @@ Collection *BKE_collection_copy(Main *bmain, Collection *parent, Collection *col
*
* \warning If any 'deep copy' behavior is enabled, this functions will clear all \a bmain id.idnew pointers.
*
* \param do_hierarchy If true, it will recursively make shallow copies of children collections and objects.
* \param do_hierarchy If true, it will recursively make shallow copies of children collections.
* \param do_objects If true, it will also make duplicates of objects.
* This one does nothing if \a do_hierarchy is not set.
* \param do_obdata If true, it will also make deep duplicates of objects, using behavior defined in user settings
* (U.dupflag). This one does nothing if \a do_hierarchy is not set.
* (U.dupflag). This one does nothing if \a do_hierarchy and \a do_objects are not set.
*/
Collection *BKE_collection_duplicate(
Main *bmain, Collection *parent, Collection *collection,

View File

@ -448,7 +448,6 @@ static int collection_duplicate_exec(bContext *C, wmOperator *op)
Main *bmain = CTX_data_main(C);
SpaceOutliner *soops = CTX_wm_space_outliner(C);
TreeElement *te = outliner_active_collection(C);
const bool hierarchy = strstr(op->idname, "hierarchy") != NULL;
const bool linked = strstr(op->idname, "linked") != NULL;
/* Can happen when calling from a key binding. */
@ -469,7 +468,7 @@ static int collection_duplicate_exec(bContext *C, wmOperator *op)
case SO_SCENES:
case SO_VIEW_LAYER:
case SO_LIBRARIES:
BKE_collection_duplicate(bmain, parent, collection, true, !hierarchy, !linked);
BKE_collection_duplicate(bmain, parent, collection, true, true, !linked);
break;
}
@ -479,21 +478,6 @@ static int collection_duplicate_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
void OUTLINER_OT_collection_duplicate_hierarchy(wmOperatorType *ot)
{
/* identifiers */
ot->name = "Duplicate Collection Hierarchy";
ot->idname = "OUTLINER_OT_collection_duplicate_hierarchy";
ot->description = "Recursively duplicate the collection and all its children, with linked objects";
/* api callbacks */
ot->exec = collection_duplicate_exec;
ot->poll = ED_outliner_collections_editor_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
void OUTLINER_OT_collection_duplicate_linked(wmOperatorType *ot)
{
/* identifiers */

View File

@ -315,7 +315,6 @@ bool outliner_is_collection_tree_element(const TreeElement *te);
struct Collection *outliner_collection_from_tree_element(const TreeElement *te);
void OUTLINER_OT_collection_new(struct wmOperatorType *ot);
void OUTLINER_OT_collection_duplicate_hierarchy(struct wmOperatorType *ot);
void OUTLINER_OT_collection_duplicate_linked(struct wmOperatorType *ot);
void OUTLINER_OT_collection_duplicate(struct wmOperatorType *ot);
void OUTLINER_OT_collection_delete(struct wmOperatorType *ot);

View File

@ -93,7 +93,6 @@ void outliner_operatortypes(void)
/* collections */
WM_operatortype_append(OUTLINER_OT_collection_new);
WM_operatortype_append(OUTLINER_OT_collection_duplicate_hierarchy);
WM_operatortype_append(OUTLINER_OT_collection_duplicate_linked);
WM_operatortype_append(OUTLINER_OT_collection_duplicate);
WM_operatortype_append(OUTLINER_OT_collection_delete);