Partially revert "Collection duplication from Outliner: add a 'duplicate hierarchy...
authorBastien Montagne <montagne29@wanadoo.fr>
Fri, 8 Mar 2019 16:13:33 +0000 (17:13 +0100)
committerBastien Montagne <montagne29@wanadoo.fr>
Fri, 8 Mar 2019 16:53:31 +0000 (17:53 +0100)
This partially reverts commit a77feabb51470b9cfb71be7f0ea7e774d6591799,
removing the shallow 'duplicate hierarchy' option from outliner.

Core changes from that commit in BKE_collections are kept.

release/scripts/startup/bl_ui/space_outliner.py
source/blender/blenkernel/intern/collection.c
source/blender/editors/space_outliner/outliner_collections.c
source/blender/editors/space_outliner/outliner_intern.h
source/blender/editors/space_outliner/outliner_ops.c

index 59b6757..6d90c24 100644 (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()
 
index 8a71c0c..a4d2ee5 100644 (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,
index 7377faa..a95d292 100644 (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 */
index 5af8e22..b932173 100644 (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);
index af73e88..5d94372 100644 (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);