Rename any instance of scene layer or render layer in code with view layer
[blender.git] / source / blender / editors / object / object_relations.c
index b9848a0cb4adda614a0e6e16b6d8ebbbf6a6498c..132d613440c197abfcee50e728efbdb0366f1d0a 100644 (file)
@@ -127,7 +127,7 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op)
 {
        Main *bmain = CTX_data_main(C);
        Scene *scene = CTX_data_scene(C);
-       SceneLayer *sl = CTX_data_scene_layer(C);
+       ViewLayer *sl = CTX_data_view_layer(C);
        Object *obedit = CTX_data_edit_object(C);
        EvaluationContext eval_ctx;
        BMVert *eve;
@@ -247,7 +247,7 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op)
                        else {
                                Object workob;
 
-                               ob->parent = BASACT_NEW(sl)->object;
+                               ob->parent = BASACT(sl)->object;
                                if (v3) {
                                        ob->partype = PARVERT3;
                                        ob->par1 = v1 - 1;
@@ -342,7 +342,7 @@ static int make_proxy_exec(bContext *C, wmOperator *op)
        Object *ob, *gob = ED_object_active_context(C);
        GroupObject *go;
        Scene *scene = CTX_data_scene(C);
-       SceneLayer *scene_layer = CTX_data_scene_layer(C);
+       ViewLayer *view_layer = CTX_data_view_layer(C);
 
        if (gob->dup_group != NULL) {
                go = BLI_findlink(&gob->dup_group->gobject, RNA_enum_get(op->ptr, "object"));
@@ -355,25 +355,14 @@ static int make_proxy_exec(bContext *C, wmOperator *op)
 
        if (ob) {
                Object *newob;
-               Base *newbase, *oldbase = BASACT_NEW(scene_layer);
                char name[MAX_ID_NAME + 4];
 
                BLI_snprintf(name, sizeof(name), "%s_proxy", ((ID *)(gob ? gob : ob))->name + 2);
 
                /* Add new object for the proxy */
-               newob = BKE_object_add_from(bmain, scene, scene_layer, OB_EMPTY, name, gob ? gob : ob);
+               newob = BKE_object_add_from(bmain, scene, view_layer, OB_EMPTY, name, gob ? gob : ob);
 
                /* set layers OK */
-               newbase = BASACT_NEW(scene_layer);    /* BKE_object_add sets active... */
-               newbase->lay = oldbase->lay;
-               newob->lay = newbase->lay;
-
-               /* remove base, leave user count of object, it gets linked in BKE_object_make_proxy */
-               if (gob == NULL) {
-                       BKE_scene_base_unlink(scene, oldbase);
-                       MEM_freeN(oldbase);
-               }
-
                BKE_object_make_proxy(newob, ob, gob);
 
                /* Set back pointer immediately so dependency graph knows that this is
@@ -1708,8 +1697,8 @@ static void single_object_users(Main *bmain, Scene *scene, View3D *v3d, const in
        SceneCollection *msc = BKE_collection_master(scene);
        single_object_users_scene_collection(bmain, scene, msc, flag, copy_groups);
 
-       /* loop over SceneLayers and assign the pointers accordingly */
-       for (SceneLayer *sl = scene->render_layers.first; sl; sl = sl->next) {
+       /* loop over ViewLayers and assign the pointers accordingly */
+       for (ViewLayer *sl = scene->view_layers.first; sl; sl = sl->next) {
                for (Base *base = sl->object_bases.first; base; base = base->next) {
                        ID_NEW_REMAP(base->object);
                }
@@ -1790,7 +1779,7 @@ static void new_id_matar(Main *bmain, Material **matar, const int totcol)
        }
 }
 
-static void single_obdata_users(Main *bmain, Scene *scene, SceneLayer *sl, const int flag)
+static void single_obdata_users(Main *bmain, Scene *scene, ViewLayer *sl, const int flag)
 {
        Lamp *la;
        Curve *cu;
@@ -1877,7 +1866,7 @@ static void single_obdata_users(Main *bmain, Scene *scene, SceneLayer *sl, const
        }
 }
 
-static void single_object_action_users(Scene *scene, SceneLayer *sl, const int flag)
+static void single_object_action_users(Scene *scene, ViewLayer *sl, const int flag)
 {
        FOREACH_OBJECT_FLAG(scene, sl, flag, ob)
                if (!ID_IS_LINKED(ob)) {
@@ -1887,7 +1876,7 @@ static void single_object_action_users(Scene *scene, SceneLayer *sl, const int f
        FOREACH_OBJECT_FLAG_END
 }
 
-static void single_mat_users(Main *bmain, Scene *scene, SceneLayer *sl, const int flag, const bool do_textures)
+static void single_mat_users(Main *bmain, Scene *scene, ViewLayer *sl, const int flag, const bool do_textures)
 {
        Material *ma, *man;
        Tex *tex;
@@ -2048,12 +2037,13 @@ void ED_object_single_users(Main *bmain, Scene *scene, const bool full, const bo
        {
                IDP_RelinkProperty(scene->id.properties);
 
-               for (Base *base = scene->base.first; base; base = base->next) {
-                       Object *ob = base->object;
+               FOREACH_SCENE_OBJECT(scene, ob)
+               {
                        if (!ID_IS_LINKED(ob)) {
                                IDP_RelinkProperty(ob->id.properties);
                        }
                }
+               FOREACH_SCENE_OBJECT_END
 
                if (scene->nodetree) {
                        IDP_RelinkProperty(scene->nodetree->id.properties);
@@ -2142,7 +2132,7 @@ static void tag_localizable_objects(bContext *C, const int mode)
  * Instance indirectly referenced zero user objects,
  * otherwise they're lost on reload, see T40595.
  */
-static bool make_local_all__instance_indirect_unused(Main *bmain, Scene *scene, SceneLayer *sl, SceneCollection *sc)
+static bool make_local_all__instance_indirect_unused(Main *bmain, Scene *scene, ViewLayer *sl, SceneCollection *sc)
 {
        Object *ob;
        bool changed = false;
@@ -2154,7 +2144,7 @@ static bool make_local_all__instance_indirect_unused(Main *bmain, Scene *scene,
                        id_us_plus(&ob->id);
 
                        BKE_collection_object_add(scene, sc, ob);
-                       base = BKE_scene_layer_base_find(sl, ob);
+                       base = BKE_view_layer_base_find(sl, ob);
                        base->flag |= BASE_SELECTED;
                        BKE_scene_object_base_flag_sync_from_base(base);
                        DEG_id_tag_update(&ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
@@ -2236,15 +2226,15 @@ static int make_local_exec(bContext *C, wmOperator *op)
 
        /* Note: we (ab)use LIB_TAG_PRE_EXISTING to cherry pick which ID to make local... */
        if (mode == MAKE_LOCAL_ALL) {
-               SceneLayer *sl = CTX_data_scene_layer(C);
-               SceneCollection *sc = CTX_data_scene_collection(C);
+               ViewLayer *view_layer = CTX_data_view_layer(C);
+               SceneCollection *scene_collection = CTX_data_scene_collection(C);
 
                BKE_main_id_tag_all(bmain, LIB_TAG_PRE_EXISTING, false);
 
-               /* de-select so the user can differentiate newly instanced from existing objects */
-               BKE_scene_base_deselect_all(scene);
+               /* De-select so the user can differentiate newly instanced from existing objects. */
+               BKE_view_layer_base_deselect_all(view_layer);
 
-               if (make_local_all__instance_indirect_unused(bmain, scene, sl, sc)) {
+               if (make_local_all__instance_indirect_unused(bmain, scene, view_layer, scene_collection)) {
                        BKE_report(op->reports, RPT_INFO, "Orphan library objects added to the current scene to avoid loss");
                }
        }
@@ -2344,7 +2334,7 @@ static int make_single_user_exec(bContext *C, wmOperator *op)
 {
        Main *bmain = CTX_data_main(C);
        Scene *scene = CTX_data_scene(C);
-       SceneLayer *sl = CTX_data_scene_layer(C);
+       ViewLayer *sl = CTX_data_view_layer(C);
        View3D *v3d = CTX_wm_view3d(C); /* ok if this is NULL */
        const int flag = (RNA_enum_get(op->ptr, "type") == MAKE_SINGLE_USER_SELECTED) ? SELECT : 0;
        const bool copy_groups = false;
@@ -2352,7 +2342,7 @@ static int make_single_user_exec(bContext *C, wmOperator *op)
 
        if (RNA_boolean_get(op->ptr, "object")) {
                if (flag == SELECT) {
-                       BKE_scene_layer_selected_objects_tag(sl, OB_DONE);
+                       BKE_view_layer_selected_objects_tag(sl, OB_DONE);
                        single_object_users(bmain, scene, v3d, OB_DONE, copy_groups);
                }
                else {
@@ -2423,7 +2413,7 @@ void OBJECT_OT_make_single_user(wmOperatorType *ot)
 
 static int drop_named_material_invoke(bContext *C, wmOperator *op, const wmEvent *event)
 {
-       BaseLegacy *base = ED_view3d_give_base_under_cursor(C, event->mval);
+       Base *base = ED_view3d_give_base_under_cursor(C, event->mval);
        Material *ma;
        char name[MAX_ID_NAME - 2];