[Bf-blender-cvs] [1c24c04e602] blender2.8: Remove workspace object mode, reverts changes w/ 2.8

Campbell Barton noreply at git.blender.org
Thu Apr 5 18:23:28 CEST 2018


Commit: 1c24c04e6023f2d2a328dfcdc9f86cd381d029a3
Author: Campbell Barton
Date:   Thu Apr 5 18:20:27 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB1c24c04e6023f2d2a328dfcdc9f86cd381d029a3

Remove workspace object mode, reverts changes w/ 2.8

This caused too many problems syncing object modes
with multiple objects/windows/workspaces, see: D3130 for details.

===================================================================

M	intern/cycles/blender/blender_curves.cpp
M	release/scripts/modules/bpy_extras/object_utils.py
M	release/scripts/modules/keyingsets_utils.py
M	release/scripts/startup/bl_operators/freestyle.py
M	release/scripts/startup/bl_operators/mesh.py
M	release/scripts/startup/bl_operators/object.py
M	release/scripts/startup/bl_operators/object_quick_effects.py
M	release/scripts/startup/bl_operators/uvcalc_lightmap.py
M	release/scripts/startup/bl_operators/uvcalc_smart_project.py
M	release/scripts/startup/bl_operators/view3d.py
M	release/scripts/startup/bl_ui/properties_constraint.py
M	release/scripts/startup/bl_ui/properties_data_bone.py
M	release/scripts/startup/bl_ui/properties_data_mesh.py
M	release/scripts/startup/bl_ui/properties_data_modifier.py
M	release/scripts/startup/bl_ui/properties_material.py
M	release/scripts/startup/bl_ui/space_image.py
M	release/scripts/startup/bl_ui/space_info.py
M	release/scripts/startup/bl_ui/space_view3d.py
M	release/scripts/startup/bl_ui/space_view3d_toolbar.py
M	release/scripts/startup/keyingsets_builtins.py
M	source/blender/blenkernel/BKE_DerivedMesh.h
M	source/blender/blenkernel/BKE_cloth.h
M	source/blender/blenkernel/BKE_modifier.h
M	source/blender/blenkernel/BKE_multires.h
M	source/blender/blenkernel/BKE_object.h
M	source/blender/blenkernel/BKE_paint.h
M	source/blender/blenkernel/BKE_particle.h
M	source/blender/blenkernel/BKE_shrinkwrap.h
M	source/blender/blenkernel/BKE_workspace.h
M	source/blender/blenkernel/intern/DerivedMesh.c
M	source/blender/blenkernel/intern/cdderivedmesh.c
M	source/blender/blenkernel/intern/cloth.c
M	source/blender/blenkernel/intern/context.c
M	source/blender/blenkernel/intern/modifier.c
M	source/blender/blenkernel/intern/multires.c
M	source/blender/blenkernel/intern/object.c
M	source/blender/blenkernel/intern/object_dupli.c
M	source/blender/blenkernel/intern/object_update.c
M	source/blender/blenkernel/intern/paint.c
M	source/blender/blenkernel/intern/particle.c
M	source/blender/blenkernel/intern/particle_system.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenkernel/intern/shrinkwrap.c
M	source/blender/blenkernel/intern/subsurf_ccg.c
M	source/blender/blenkernel/intern/workspace.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/versioning_250.c
M	source/blender/bmesh/intern/bmesh_mesh.c
M	source/blender/collada/AnimationExporter.cpp
M	source/blender/collada/SkinInfo.cpp
M	source/blender/depsgraph/DEG_depsgraph.h
M	source/blender/depsgraph/intern/depsgraph_eval.cc
M	source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
M	source/blender/draw/DRW_engine.h
M	source/blender/draw/intern/draw_manager.c
M	source/blender/draw/intern/draw_view.c
M	source/blender/editors/animation/keyframing.c
M	source/blender/editors/armature/armature_relations.c
M	source/blender/editors/armature/armature_skinning.c
M	source/blender/editors/armature/meshlaplacian.c
M	source/blender/editors/armature/meshlaplacian.h
M	source/blender/editors/armature/pose_edit.c
M	source/blender/editors/armature/pose_select.c
M	source/blender/editors/gpencil/gpencil_convert.c
M	source/blender/editors/include/ED_armature.h
M	source/blender/editors/include/ED_image.h
M	source/blender/editors/include/ED_info.h
M	source/blender/editors/include/ED_mesh.h
M	source/blender/editors/include/ED_object.h
M	source/blender/editors/include/ED_screen.h
M	source/blender/editors/include/ED_uvedit.h
M	source/blender/editors/interface/interface_handlers.c
M	source/blender/editors/interface/interface_icons.c
M	source/blender/editors/interface/interface_templates.c
M	source/blender/editors/mesh/editmesh_select.c
M	source/blender/editors/mesh/mesh_data.c
M	source/blender/editors/mesh/mesh_navmesh.c
M	source/blender/editors/mesh/meshtools.c
M	source/blender/editors/object/object_add.c
M	source/blender/editors/object/object_bake.c
M	source/blender/editors/object/object_bake_api.c
M	source/blender/editors/object/object_constraint.c
M	source/blender/editors/object/object_edit.c
M	source/blender/editors/object/object_facemap_ops.c
M	source/blender/editors/object/object_modes.c
M	source/blender/editors/object/object_modifier.c
M	source/blender/editors/object/object_ops.c
M	source/blender/editors/object/object_relations.c
M	source/blender/editors/object/object_select.c
M	source/blender/editors/object/object_shapekey.c
M	source/blender/editors/object/object_transform.c
M	source/blender/editors/object/object_vgroup.c
M	source/blender/editors/physics/particle_edit.c
M	source/blender/editors/physics/particle_object.c
M	source/blender/editors/render/render_shading.c
M	source/blender/editors/render/render_update.c
M	source/blender/editors/scene/scene_edit.c
M	source/blender/editors/screen/screen_context.c
M	source/blender/editors/screen/screen_ops.c
M	source/blender/editors/screen/workspace_edit.c
M	source/blender/editors/sculpt_paint/paint_curve.c
M	source/blender/editors/sculpt_paint/paint_hide.c
M	source/blender/editors/sculpt_paint/paint_image.c
M	source/blender/editors/sculpt_paint/paint_image_proj.c
M	source/blender/editors/sculpt_paint/paint_image_undo.c
M	source/blender/editors/sculpt_paint/paint_ops.c
M	source/blender/editors/sculpt_paint/paint_utils.c
M	source/blender/editors/sculpt_paint/paint_vertex.c
M	source/blender/editors/sculpt_paint/paint_vertex_color_ops.c
M	source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c
M	source/blender/editors/sculpt_paint/sculpt.c
M	source/blender/editors/sculpt_paint/sculpt_undo.c
M	source/blender/editors/space_buttons/CMakeLists.txt
M	source/blender/editors/space_buttons/buttons_context.c
M	source/blender/editors/space_image/image_edit.c
M	source/blender/editors/space_image/image_ops.c
M	source/blender/editors/space_image/space_image.c
M	source/blender/editors/space_info/info_stats.c
M	source/blender/editors/space_outliner/outliner_draw.c
M	source/blender/editors/space_outliner/outliner_edit.c
M	source/blender/editors/space_outliner/outliner_intern.h
M	source/blender/editors/space_outliner/outliner_select.c
M	source/blender/editors/space_outliner/outliner_tree.c
M	source/blender/editors/space_time/space_time.c
M	source/blender/editors/space_view3d/drawarmature.c
M	source/blender/editors/space_view3d/drawmesh.c
M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/editors/space_view3d/view3d_buttons.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/editors/space_view3d/view3d_draw_legacy.c
M	source/blender/editors/space_view3d/view3d_edit.c
M	source/blender/editors/space_view3d/view3d_header.c
M	source/blender/editors/space_view3d/view3d_intern.h
M	source/blender/editors/space_view3d/view3d_select.c
M	source/blender/editors/space_view3d/view3d_snap.c
M	source/blender/editors/space_view3d/view3d_view.c
M	source/blender/editors/transform/transform.h
M	source/blender/editors/transform/transform_conversions.c
M	source/blender/editors/transform/transform_generics.c
M	source/blender/editors/transform/transform_manipulator.c
M	source/blender/editors/transform/transform_orientations.c
M	source/blender/editors/transform/transform_snap.c
M	source/blender/editors/transform/transform_snap_object.c
M	source/blender/editors/undo/memfile_undo.c
M	source/blender/editors/util/ed_util.c
M	source/blender/editors/uvedit/uvedit_draw.c
M	source/blender/gpu/GPU_draw.h
M	source/blender/gpu/intern/gpu_draw.c
M	source/blender/makesdna/DNA_object_types.h
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesdna/DNA_workspace_types.h
M	source/blender/makesrna/intern/rna_brush.c
M	source/blender/makesrna/intern/rna_layer.c
M	source/blender/makesrna/intern/rna_material.c
M	source/blender/makesrna/intern/rna_object.c
M	source/blender/makesrna/intern/rna_object_force.c
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/makesrna/intern/rna_scene_api.c
M	source/blender/makesrna/intern/rna_sculpt_paint.c
M	source/blender/makesrna/intern/rna_space.c
M	source/blender/makesrna/intern/rna_texture.c
M	source/blender/makesrna/intern/rna_userdef.c
M	source/blender/makesrna/intern/rna_wm.c
M	source/blender/makesrna/intern/rna_workspace.c
M	source/blender/modifiers/intern/MOD_meshdeform.c
M	source/blender/modifiers/intern/MOD_multires.c
M	source/blender/modifiers/intern/MOD_shrinkwrap.c
M	source/blender/modifiers/intern/MOD_subsurf.c
M	source/blender/modifiers/intern/MOD_surfacedeform.c
M	source/blender/nodes/texture/node_texture_tree.c
M	source/blender/render/intern/source/convertblender.c
M	source/blender/windowmanager/WM_api.h
M	source/blender/windowmanager/intern/wm_event_system.c
M	source/blender/windowmanager/intern/wm_window.c
M	source/blenderplayer/bad_level_call_stubs/stubs.c

===================================================================

diff --git a/intern/cycles/blender/blender_curves.cpp b/intern/cycles/blender/blender_curves.cpp
index 984442fb08c..ba936a3f369 100644
--- a/intern/cycles/blender/blender_curves.cpp
+++ b/intern/cycles/blender/blender_curves.cpp
@@ -903,8 +903,7 @@ void BlenderSync::sync_curves(BL::Depsgraph& b_depsgraph,
 	/* obtain general settings */
 	const bool use_curves = scene->curve_system_manager->use_curves;
 
-	/* TODO/OBMODE, make cycles mode aware. */
-	if(!(use_curves /* && b_ob.mode() != b_ob.mode_PARTICLE_EDIT */ )) {
+	if(!(use_curves && b_ob.mode() != b_ob.mode_PARTICLE_EDIT)) {
 		if(!motion)
 			mesh->compute_bounds();
 		return;
diff --git a/release/scripts/modules/bpy_extras/object_utils.py b/release/scripts/modules/bpy_extras/object_utils.py
index 31938f3ad3e..04b3858bb0d 100644
--- a/release/scripts/modules/bpy_extras/object_utils.py
+++ b/release/scripts/modules/bpy_extras/object_utils.py
@@ -119,7 +119,6 @@ def object_data_add(context, obdata, operator=None, name=None):
     :return: the newly created object in the scene.
     :rtype: :class:`bpy.types.Object`
     """
-    workspace = context.workspace
     scene = context.scene
     layer = context.view_layer
     layer_collection = context.layer_collection
@@ -147,9 +146,9 @@ def object_data_add(context, obdata, operator=None, name=None):
     # caused because entering edit-mode does not add a empty undo slot!
     if context.user_preferences.edit.use_enter_edit_mode:
         if not (obj_act and
-                obj_act.type == obj_new.type and
-                workspace.object_mode == 'EDIT'
-        ):
+                obj_act.mode == 'EDIT' and
+                obj_act.type == obj_new.type):
+
             _obdata = bpy.data.meshes.new(name)
             obj_act = bpy.data.objects.new(_obdata.name, _obdata)
             obj_act.matrix_world = obj_new.matrix_world
@@ -160,10 +159,7 @@ def object_data_add(context, obdata, operator=None, name=None):
             bpy.ops.ed.undo_push(message="Enter Editmode")
     # XXX
 
-    if (obj_act and
-        obj_act.type == obj_new.type and
-        workspace.object_mode == 'EDIT'
-    ):
+    if obj_act and obj_act.mode == 'EDIT' and obj_act.type == obj_new.type:
         bpy.ops.mesh.select_all(action='DESELECT')
         obj_act.select_set(action='SELECT')
         bpy.ops.object.mode_set(mode='OBJECT')
@@ -253,10 +249,9 @@ def object_image_guess(obj, bm=None):
     first checking the texture-faces, then the material.
     """
     # TODO, cycles/nodes materials
-    workspace = context.workspace
     me = obj.data
     if bm is None:
-        if workspace.object_mode == 'EDIT':
+        if obj.mode == 'EDIT':
             import bmesh
             bm = bmesh.from_edit_mesh(me)
 
diff --git a/release/scripts/modules/keyingsets_utils.py b/release/scripts/modules/keyingsets_utils.py
index 40e74e27ed2..7ce5f3e029b 100644
--- a/release/scripts/modules/keyingsets_utils.py
+++ b/release/scripts/modules/keyingsets_utils.py
@@ -57,10 +57,9 @@ def path_add_property(path, prop):
 
 # selected objects (active object must be in object mode)
 def RKS_POLL_selected_objects(ksi, context):
-    workspace = context.workspace
     ob = context.active_object
     if ob:
-        return workspace.object_mode == 'OBJECT'
+        return ob.mode == 'OBJECT'
     else:
         return bool(context.selected_objects)
 
@@ -68,9 +67,8 @@ def RKS_POLL_selected_objects(ksi, context):
 # selected bones
 def RKS_POLL_selected_bones(ksi, context):
     # we must be in Pose Mode, and there must be some bones selected
-    workspace = context.workspace
     ob = context.active_object
-    if ob and workspace.object_mode == 'POSE':
+    if ob and ob.mode == 'POSE':
         if context.active_pose_bone or context.selected_pose_bones:
             return True
 
@@ -89,9 +87,8 @@ def RKS_POLL_selected_items(ksi, context):
 
 # all selected objects or pose bones, depending on which we've got
 def RKS_ITER_selected_item(ksi, context, ks):
-    workspace = context.workspace
     ob = context.active_object
-    if ob and workspace.object_mode == 'POSE':
+    if ob and ob.mode == 'POSE':
         for bone in context.selected_pose_bones:
             ksi.generate(context, ks, bone)
     else:
diff --git a/release/scripts/startup/bl_operators/freestyle.py b/release/scripts/startup/bl_operators/freestyle.py
index 9b1d054cc15..0cfe78879db 100644
--- a/release/scripts/startup/bl_operators/freestyle.py
+++ b/release/scripts/startup/bl_operators/freestyle.py
@@ -53,7 +53,6 @@ class SCENE_OT_freestyle_fill_range_by_selection(bpy.types.Operator):
     def execute(self, context):
         import sys
 
-        workspace = context.workspace
         scene = context.scene
         view_layer = scene.view_layers.active
         lineset = view_layer.freestyle_settings.linesets.active
@@ -80,7 +79,7 @@ class SCENE_OT_freestyle_fill_range_by_selection(bpy.types.Operator):
             return {'CANCELLED'}
         # Find selected vertices in editmesh
         ob = context.active_object
-        if ob.type == 'MESH' and workspace.object_mode == 'EDIT' and ob.name != ref.name:
+        if ob.type == 'MESH' and ob.mode == 'EDIT' and ob.name != ref.name:
             bpy.ops.object.mode_set(mode='OBJECT')
             selected_verts = [v for v in ob.data.vertices if v.select]
             bpy.ops.object.mode_set(mode='EDIT')
@@ -144,7 +143,6 @@ class SCENE_OT_freestyle_add_edge_marks_to_keying_set(bpy.types.Operator):
 
     def execute(self, context):
         # active keying set
-        workspace = context.workspace
         scene = context.scene
         ks = scene.keying_sets.active
         if ks is None:
@@ -152,7 +150,7 @@ class SCENE_OT_freestyle_add_edge_marks_to_keying_set(bpy.types.Operator):
             ks.bl_description = ""
         # add data paths to the keying set
         ob = context.active_object
-        ob_mode = workspace.object_mode
+        ob_mode = ob.mode
         mesh = ob.data
         bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
         for i, edge in enumerate(mesh.edges):
@@ -176,7 +174,6 @@ class SCENE_OT_freestyle_add_face_marks_to_keying_set(bpy.types.Operator):
 
     def execute(self, context):
         # active keying set
-        workspace = context.workspace
         scene = context.scene
         ks = scene.keying_sets.active
         if ks is None:
@@ -184,7 +181,7 @@ class SCENE_OT_freestyle_add_face_marks_to_keying_set(bpy.types.Operator):
             ks.bl_description = ""
         # add data paths to the keying set
         ob = context.active_object
-        ob_mode = workspace.object_mode
+        ob_mode = ob.mode
         mesh = ob.data
         bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
         for i, polygon in enumerate(mesh.polygons):
diff --git a/release/scripts/startup/bl_operators/mesh.py b/release/scripts/startup/bl_operators/mesh.py
index ccc592e80b8..c7a11c23c3f 100644
--- a/release/scripts/startup/bl_operators/mesh.py
+++ b/release/scripts/startup/bl_operators/mesh.py
@@ -57,9 +57,8 @@ class MeshMirrorUV(Operator):
         precision = self.precision
         double_warn = 0
 
-        workspace = context.workspace
         ob = context.active_object
-        is_editmode = (workspace.object_mode == 'EDIT')
+        is_editmode = (ob.mode == 'EDIT')
         if is_editmode:
             bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
 
diff --git a/release/scripts/startup/bl_operators/object.py b/release/scripts/startup/bl_operators/object.py
index 58f3afa3d6c..566487d9d0e 100644
--- a/release/scripts/startup/bl_operators/object.py
+++ b/release/scripts/startup/bl_operators/object.py
@@ -63,13 +63,12 @@ class SelectPattern(Operator):
             pattern_match = (lambda a, b:
                              fnmatch.fnmatchcase(a.upper(), b.upper()))
         is_ebone = False
-        workspace = context.workspace
         obj = context.object
-        if obj and workspace.object_mode == 'POSE':
+        if obj and obj.mode == 'POSE':
             items = obj.data.bones
             if not self.extend:
                 bpy.ops.pose.select_all(action='DESELECT')
-        elif obj and obj.type == 'ARMATURE' and workspace.object_mode == 'EDIT':
+        elif obj and obj.type == 'ARMATURE' and obj.mode == 'EDIT':
             items = obj.data.edit_bones
             if not self.extend:
                 bpy.ops.armature.select_all(action='DESELECT')
@@ -249,8 +248,6 @@ class SubdivisionSet(Operator):
         if not relative and level < 0:
             self.level = level = 0
 
-        workspace = context.workspace
-
         def set_object_subd(obj):
             for mod in obj.modifiers:
                 if mod.type == 'MULTIRES':
@@ -260,18 +257,18 @@ class SubdivisionSet(Operator):
                             for i in range(sub):
                                 bpy.ops.object.multires_subdivide(modifier="Multires")
 
-                        if workspace.object_mode == 'SCULPT':
+                        if obj.mode == 'SCULPT':
                             if mod.sculpt_levels != level:
                                 mod.sculpt_levels = level
-                        elif workspace.object_mode == 'OBJECT':
+                        elif obj.mode == 'OBJECT':
                             if mod.levels != level:
                                 mod.levels = level
                         return
                     else:
-                        if workspace.object_mode == 'SCULPT':
+                        if obj.mode == 'SCULPT':
                             if mod.sculpt_levels + level <= mod.total_levels:
                                 mod.sculpt_levels += level
-                        elif workspace.object_mode == 'OBJECT':
+                        elif obj.mode == 'OBJECT':
                             if mod.levels + level <= mod.total_levels:
                                 mod.levels += level
                         return
@@ -287,7 +284,7 @@ class SubdivisionSet(Operator):
 
             # add a new modifier
             try:
-                if workspace.object_mode == 'SCULPT':
+                if obj.mode == 'SCULPT':
                     mod = obj.modifiers.new("Multires", 'MULTIRES')
        

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list