Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/scene/scene_edit.c
| Show First 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | bool ED_scene_delete(bContext *C, Main *bmain, Scene *scene) | ||||
| } | } | ||||
| else if (scene->id.next) { | else if (scene->id.next) { | ||||
| scene_new = scene->id.next; | scene_new = scene->id.next; | ||||
| } | } | ||||
| else { | else { | ||||
| return false; | return false; | ||||
| } | } | ||||
| for (wmWindow *win = wm->windows.first; win; win = win->next) { | LISTBASE_FOREACH (wmWindow *, win, &wm->windows) { | ||||
| if (win->parent != NULL) { /* We only care about main windows here... */ | if (win->parent != NULL) { /* We only care about main windows here... */ | ||||
| continue; | continue; | ||||
| } | } | ||||
| if (win->scene == scene) { | if (win->scene == scene) { | ||||
| WM_window_set_active_scene(bmain, C, win, scene_new); | WM_window_set_active_scene(bmain, C, win, scene_new); | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | bool ED_scene_view_layer_delete(Main *bmain, Scene *scene, ViewLayer *layer, ReportList *reports) | ||||
| /* We need to unset nodetrees before removing the layer, otherwise its index will be -1. */ | /* We need to unset nodetrees before removing the layer, otherwise its index will be -1. */ | ||||
| view_layer_remove_unset_nodetrees(bmain, scene, layer); | view_layer_remove_unset_nodetrees(bmain, scene, layer); | ||||
| BLI_remlink(&scene->view_layers, layer); | BLI_remlink(&scene->view_layers, layer); | ||||
| BLI_assert(BLI_listbase_is_empty(&scene->view_layers) == false); | BLI_assert(BLI_listbase_is_empty(&scene->view_layers) == false); | ||||
| /* Remove from windows. */ | /* Remove from windows. */ | ||||
| wmWindowManager *wm = bmain->wm.first; | wmWindowManager *wm = bmain->wm.first; | ||||
| for (wmWindow *win = wm->windows.first; win; win = win->next) { | LISTBASE_FOREACH (wmWindow *, win, &wm->windows) { | ||||
| if (win->scene == scene && STREQ(win->view_layer_name, layer->name)) { | if (win->scene == scene && STREQ(win->view_layer_name, layer->name)) { | ||||
| ViewLayer *first_layer = BKE_view_layer_default_view(scene); | ViewLayer *first_layer = BKE_view_layer_default_view(scene); | ||||
| STRNCPY(win->view_layer_name, first_layer->name); | STRNCPY(win->view_layer_name, first_layer->name); | ||||
| } | } | ||||
| } | } | ||||
| BKE_scene_free_view_layer_depsgraph(scene, layer); | BKE_scene_free_view_layer_depsgraph(scene, layer); | ||||
| ▲ Show 20 Lines • Show All 97 Lines • Show Last 20 Lines | |||||