Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <eiseljulian@gmail.com>2017-12-01 17:47:24 +0300
committerJulian Eisel <eiseljulian@gmail.com>2017-12-01 18:15:30 +0300
commite8c15e0ed15f8369d0d0f706b4953fb64e357902 (patch)
tree0eb072454c535b438caf8eed3033d27b3c17e99b /source/blender/makesrna/intern/rna_workspace.c
parent983b1a34783e9600731b973ba52ecc8924bff169 (diff)
Workspaces: Store an active view-layer per scene
Instead of storing a single active view-layer in the workspace, one is stored for each scene the workspace showed before. With this, some things become possible: * Multiple windows in the same workspace but showing different scenes. * Toggling back and forth scene keeps same active view-layer for each scene. * Activating workspace which didn't show current scene before, the current view-layer is kept. A necessary evil for this is that accessing view-layer and object mode from .py can't be done via workspace directly anymore. It has to be done through the window, so RNA can use the correct scene. So instead of `workspace.view_layer`, it's `window.view_layer` now (same with mode) even though it's still workspace data. Fixes T53432.
Diffstat (limited to 'source/blender/makesrna/intern/rna_workspace.c')
-rw-r--r--source/blender/makesrna/intern/rna_workspace.c55
1 files changed, 0 insertions, 55 deletions
diff --git a/source/blender/makesrna/intern/rna_workspace.c b/source/blender/makesrna/intern/rna_workspace.c
index 7e7b2eeccd7..0bed91f2807 100644
--- a/source/blender/makesrna/intern/rna_workspace.c
+++ b/source/blender/makesrna/intern/rna_workspace.c
@@ -67,22 +67,6 @@ static PointerRNA rna_workspace_screens_item_get(CollectionPropertyIterator *ite
return rna_pointer_inherit_refine(&iter->parent, &RNA_Screen, screen);
}
-#ifdef USE_WORKSPACE_MODE
-
-static int rna_workspace_object_mode_get(PointerRNA *ptr)
-{
- WorkSpace *workspace = ptr->data;
- return (int)BKE_workspace_object_mode_get(workspace);
-}
-
-static void rna_workspace_object_mode_set(PointerRNA *ptr, int value)
-{
- WorkSpace *workspace = ptr->data;
- BKE_workspace_object_mode_set(workspace, value);
-}
-
-#endif /* USE_WORKSPACE_MODE */
-
void rna_workspace_transform_orientations_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{
WorkSpace *workspace = ptr->id.data;
@@ -95,30 +79,6 @@ static PointerRNA rna_workspace_transform_orientations_item_get(CollectionProper
return rna_pointer_inherit_refine(&iter->parent, &RNA_TransformOrientation, transform_orientation);
}
-static PointerRNA rna_workspace_view_layer_get(PointerRNA *ptr)
-{
- WorkSpace *workspace = ptr->data;
- ViewLayer *view_layer = BKE_workspace_view_layer_get(workspace);
-
- /* XXX hmrf... lookup in getter... but how could we avoid it? */
- for (Scene *scene = G.main->scene.first; scene; scene = scene->id.next) {
- if (BLI_findindex(&scene->view_layers, view_layer) != -1) {
- PointerRNA scene_ptr;
-
- RNA_id_pointer_create(&scene->id, &scene_ptr);
- return rna_pointer_inherit_refine(&scene_ptr, &RNA_ViewLayer, view_layer);
- }
- }
-
- return PointerRNA_NULL;
-}
-
-static void rna_workspace_view_layer_set(PointerRNA *ptr, PointerRNA value)
-{
- WorkSpace *workspace = ptr->data;
- BKE_workspace_view_layer_set(workspace, value.data);
-}
-
#else /* RNA_RUNTIME */
static void rna_def_workspace(BlenderRNA *brna)
@@ -139,13 +99,6 @@ static void rna_def_workspace(BlenderRNA *brna)
"rna_workspace_screens_item_get", NULL, NULL, NULL, NULL);
RNA_def_property_ui_text(prop, "Screens", "Screen layouts of a workspace");
-#ifdef USE_WORKSPACE_MODE
- prop = RNA_def_property(srna, "object_mode", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_items(prop, rna_enum_object_mode_items);
- RNA_def_property_enum_funcs(prop, "rna_workspace_object_mode_get", "rna_workspace_object_mode_set", NULL);
- RNA_def_property_ui_text(prop, "Mode", "Object interaction mode");
-#endif
-
prop = RNA_def_property(srna, "tool_keymap", PROP_STRING, PROP_NONE);
RNA_def_property_string_sdna(prop, NULL, "tool.keymap");
RNA_def_property_ui_text(prop, "Active Tool", "Currently active tool keymap");
@@ -168,14 +121,6 @@ static void rna_def_workspace(BlenderRNA *brna)
"rna_workspace_transform_orientations_item_get", NULL, NULL, NULL, NULL);
RNA_def_property_ui_text(prop, "Transform Orientations", "");
- prop = RNA_def_property(srna, "view_layer", PROP_POINTER, PROP_NONE);
- RNA_def_property_struct_type(prop, "ViewLayer");
- RNA_def_property_pointer_funcs(prop, "rna_workspace_view_layer_get", "rna_workspace_view_layer_set",
- NULL, NULL);
- RNA_def_property_ui_text(prop, "Active View Layer", "The active view layer used in this workspace");
- RNA_def_property_flag(prop, PROP_EDITABLE | PROP_NEVER_NULL);
- RNA_def_property_update(prop, NC_SCREEN | ND_LAYER, NULL);
-
/* View Render */
prop = RNA_def_property(srna, "view_render", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_NEVER_NULL);