[Bf-blender-cvs] [f0c8a1641c2] temp-workspace-object-mode-removal: Initial move of Object.mode to workspace

Campbell Barton noreply at git.blender.org
Sat Feb 3 12:13:15 CET 2018


Commit: f0c8a1641c2261e02d925d8e7e2894ea6cc886bf
Author: Campbell Barton
Date:   Sat Feb 3 21:41:50 2018 +1100
Branches: temp-workspace-object-mode-removal
https://developer.blender.org/rBf0c8a1641c2261e02d925d8e7e2894ea6cc886bf

Initial move of Object.mode to workspace

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

M	release/scripts/startup/bl_operators/view3d.py
M	release/scripts/startup/bl_ui/properties_data_mesh.py
M	release/scripts/startup/bl_ui/properties_material.py
M	release/scripts/startup/bl_ui/space_info.py
M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/blenkernel/BKE_DerivedMesh.h
M	source/blender/blenkernel/BKE_cloth.h
M	source/blender/blenkernel/BKE_context.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/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/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/engines/clay/clay_engine.c
M	source/blender/draw/engines/eevee/eevee_materials.c
M	source/blender/draw/engines/eevee/eevee_motion_blur.c
M	source/blender/draw/intern/DRW_render.h
M	source/blender/draw/intern/draw_armature.c
M	source/blender/draw/intern/draw_common.c
M	source/blender/draw/intern/draw_common.h
M	source/blender/draw/intern/draw_manager.c
M	source/blender/draw/intern/draw_view.c
M	source/blender/draw/modes/object_mode.c
M	source/blender/draw/modes/pose_mode.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/curve/editcurve.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/editmesh_utils.c
M	source/blender/editors/mesh/mesh_data.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_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/screen/screen_context.c
M	source/blender/editors/screen/screen_edit.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_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_intern.h
M	source/blender/editors/sculpt_paint/sculpt_undo.c
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/transform/transform.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/util/ed_util.c
M	source/blender/editors/util/undo.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_workspace_types.h
M	source/blender/makesrna/intern/rna_brush.c
M	source/blender/makesrna/intern/rna_object.c
M	source/blender/makesrna/intern/rna_object_api.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_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_multires.c
M	source/blender/modifiers/intern/MOD_shrinkwrap.c
M	source/blender/modifiers/intern/MOD_subsurf.c
M	source/blender/nodes/texture/node_texture_tree.c
M	source/blender/render/intern/source/convertblender.c
M	source/blender/windowmanager/intern/wm_event_system.c
M	source/blenderplayer/bad_level_call_stubs/stubs.c

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

diff --git a/release/scripts/startup/bl_operators/view3d.py b/release/scripts/startup/bl_operators/view3d.py
index 18f91110053..e54ead6a5fc 100644
--- a/release/scripts/startup/bl_operators/view3d.py
+++ b/release/scripts/startup/bl_operators/view3d.py
@@ -30,8 +30,9 @@ class VIEW3D_OT_edit_mesh_extrude_individual_move(Operator):
 
     @classmethod
     def poll(cls, context):
+        workspace = context.workspace
         obj = context.active_object
-        return (obj is not None and obj.mode == 'EDIT')
+        return (obj is not None and workspace.object_mode == 'EDIT')
 
     def execute(self, context):
         mesh = context.object.data
@@ -68,8 +69,9 @@ class VIEW3D_OT_edit_mesh_extrude_move(Operator):
 
     @classmethod
     def poll(cls, context):
+        workspace = context.workspace
         obj = context.active_object
-        return (obj is not None and obj.mode == 'EDIT')
+        return (obj is not None and workspace.object_mode == 'EDIT')
 
     @staticmethod
     def extrude_region(context, use_vert_normals):
@@ -117,8 +119,9 @@ class VIEW3D_OT_edit_mesh_extrude_shrink_fatten(Operator):
 
     @classmethod
     def poll(cls, context):
+        workspace = context.workspace
         obj = context.active_object
-        return (obj is not None and obj.mode == 'EDIT')
+        return (obj is not None and workspace.object_mode == 'EDIT')
 
     def execute(self, context):
         return VIEW3D_OT_edit_mesh_extrude_move.extrude_region(context, True)
@@ -173,7 +176,8 @@ class VIEW3D_OT_select_or_deselect_all(Operator):
     def poll(cls, context):
         active_object = context.active_object
         if active_object:
-            return active_object.mode in {'EDIT', 'OBJECT', 'POSE'}
+            workspace = context.workspace
+            return workspace.object_mode in {'EDIT', 'OBJECT', 'POSE'}
         return True
 
     def invoke(self, context, event):
@@ -184,7 +188,9 @@ class VIEW3D_OT_select_or_deselect_all(Operator):
             active_object = context.active_object
 
             if active_object:
-                if active_object.mode == 'EDIT':
+                workspace = context.workspace
+                object_mode = workspace.object_mode
+                if object_mode == 'EDIT':
                     if active_object.type == 'MESH':
                         bpy.ops.mesh.select_all(action='DESELECT')
                     elif active_object.type == 'CURVE':
@@ -197,9 +203,9 @@ class VIEW3D_OT_select_or_deselect_all(Operator):
                         bpy.ops.mball.select_all(action='DESELECT')
                     elif active_object.type == 'ARMATURE':
                         bpy.ops.armature.select_all(action='DESELECT')
-                elif active_object.mode == 'POSE':
+                elif object_mode == 'POSE':
                     bpy.ops.pose.select_all(action='DESELECT')
-                elif active_object.mode == 'PARTICLE_EDIT':
+                elif object_mode == 'PARTICLE_EDIT':
                     bpy.ops.particle.select_all(action='DESELECT')
                 else:
                     bpy.ops.object.select_all(action='DESELECT')
diff --git a/release/scripts/startup/bl_ui/properties_data_mesh.py b/release/scripts/startup/bl_ui/properties_data_mesh.py
index 9f927fe3368..3651b92d3dc 100644
--- a/release/scripts/startup/bl_ui/properties_data_mesh.py
+++ b/release/scripts/startup/bl_ui/properties_data_mesh.py
@@ -94,10 +94,13 @@ class MESH_UL_shape_keys(UIList):
         # key = data
         key_block = item
         if self.layout_type in {'DEFAULT', 'COMPACT'}:
+            workspace = context.workspace
             split = layout.split(0.66, False)
             split.prop(key_block, "name", text="", emboss=False, icon_value=icon)
             row = split.row(align=True)
-            if key_block.mute or (obj.mode == 'EDIT' and not (obj.use_shape_key_edit_mode and obj.type == 'MESH')):
+            if (key_block.mute or
+                (workspace.object_mode == 'EDIT' and not (obj.use_shape_key_edit_mode and obj.type == 'MESH'))
+            ):
                 row.active = False
             if not item.id_data.use_relative:
                 row.prop(key_block, "frame", text="", emboss=False)
@@ -205,6 +208,7 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, Panel):
     def draw(self, context):
         layout = self.layout
 
+        workspace = context.workspace
         ob = context.object
         group = ob.vertex_groups.active
 
@@ -225,7 +229,7 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, Panel):
             col.operator("object.vertex_group_move", icon='TRIA_UP', text="").direction = 'UP'
             col.operator("object.vertex_group_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
 
-        if ob.vertex_groups and (ob.mode == 'EDIT' or (ob.mode == 'WEIGHT_PAINT' and ob.type == 'MESH' and ob.data.use_paint_mask_vertex)):
+        if ob.vertex_groups and (workspace.object_mode == 'EDIT' or (ob.mode == 'WEIGHT_PAINT' and ob.type == 'MESH' and ob.data.use_paint_mask_vertex)):
             row = layout.row()
 
             sub = row.row(align=True)
@@ -251,6 +255,7 @@ class DATA_PT_face_maps(MeshButtonsPanel, Panel):
     def draw(self, context):
         layout = self.layout
 
+        workspace = context.workspace
         ob = context.object
         facemap = ob.face_maps.active
 
@@ -269,7 +274,7 @@ class DATA_PT_face_maps(MeshButtonsPanel, Panel):
             col.operator("object.face_map_move", icon='TRIA_UP', text="").direction = 'UP'
             col.operator("object.face_map_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
 
-        if ob.face_maps and (ob.mode == 'EDIT' and ob.type == 'MESH'):
+        if ob.face_maps and (workspace.object_mode == 'EDIT' and ob.type == 'MESH'):
             row = layout.row()
 
             sub = row.row(align=True)
@@ -293,11 +298,12 @@ class DATA_PT_shape_keys(MeshButtonsPanel, Panel):
     def draw(self, context):
         layout = self.layout
 
+        workspace = context.workspace
         ob = context.object
         key = ob.data.shape_keys
         kb = ob.active_shape_key
 
-        enable_edit = ob.mode != 'EDIT'
+        enable_edit = workspace.object_mode != 'EDIT'
         enable_edit_value = False
 
         if ob.show_only_shape_key is False:
@@ -419,6 +425,7 @@ class DATA_PT_customdata(MeshButtonsPanel, Panel):
     def draw(self, context):
         layout = self.layout
 
+        workspace = context.workspace
         obj = context.object
         me = context.mesh
         col = layout.column()
@@ -433,7 +440,7 @@ class DATA_PT_customdata(MeshButtonsPanel, Panel):
 
         col = layout.column()
 
-        col.enabled = (obj.mode != 'EDIT')
+        col.enabled = (workspace.object_mode != 'EDIT')
         col.prop(me, "use_customdata_vertex_bevel")
         col.prop(me, "use_customdata_edge_bevel")
         col.prop(me, "use_customdata_edge_crease")
diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py
index 9aed338bad4..2dc7bffa527 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -148,7 +148,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel):
                 col.operator("object.material_slot_move", icon='TRIA_UP', text="").direction = 'UP'
                 col.operator("object.material_slot_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
 
-            if ob.mode == 'EDIT':
+            if context.workspace.object_mode == 'EDIT':
                 row = layout.row(align=True)
                 row.operator("object.material_slot_assign", text="Assign")
                 row.operator("object.material_slot_select", text="Select")
@@ -1094,7 +1094,7 @@ class EEVEE_MATERIAL_PT_context_material(MaterialButtonsPanel, Panel):
                 col.operator("object.material_slot_move", icon='TRIA_UP', text="").direction = 'UP'
                 col.operator("object.material_slot_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
 
-            if ob.mode == 'EDIT':
+            if context.workspace.object_mode == 'EDIT':
                 row = layout.row(align=True)
                 row.operator("object.material_slot_assign", text="Assign")
                 row.operator("object.material_slot_select", text="Select")
diff --git a/release/scripts/startup/bl_ui/space_info.py b/release/scripts/startup/bl_ui/space_info.py
index f032f6a899b..8c69e733a2d 100644
--- a/release/scripts/startup/bl_ui/space_info.py
+++ b/release/scripts/startup/bl_ui/space_info.py
@@ -48,10 +48,7 @@ class INFO_HT_header(Header):
             layout.template_ID(window, "workspace", new="workspace.workspace_add_menu", unlink="workspace.workspace_delete")
             layout.template_search_preview(window, "screen", workspace, "screens", new="screen.new", unlink="screen.delete", rows=2, cols=6)
 
-        if hasattr(window, 'object_mode'):
-            act_mode_item = bpy.types.Object.bl_rna.properties['mode'].enum_items[window.object_mode]
-        else:
-            act_mode_item = bpy.types.Object.bl_rna.properties['mode'].enum_items[layer.objects.active.mode]
+        act_mode_item = bpy.types.WorkSpace.bl_rna.properties['object_mode'].enum_items[workspace.object_mode]
         layout.operator_menu_enum("object.mode_set", "mode", text=act_mode_item.name, icon=act_mode_item.icon)
 
         row = layout.row()
@@ -87,7 +84,7 @@ class INFO_HT_header(Header):
             return
 
         row.operator("wm.splash", text="", icon='BLENDER', emboss=False)
-        row.label(text=scene.statistics(context.view_layer), translate=False)
+        row.label(text=scene.statistics(workspace, context.view_layer), translate=False)
 
 
 class INFO_MT_editor_menus(Menu):
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 9fd620eec76..9c16236e39b 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -48,7 +48,7 @@ class VIEW3D_HT_header(Header):
         layout.template_header_3D()
 
         if obj:
-            mode = obj.mode
+            mode = context.workspace.object_m

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list