diff options
Diffstat (limited to 'release/scripts/startup/bl_operators/object.py')
-rw-r--r-- | release/scripts/startup/bl_operators/object.py | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/release/scripts/startup/bl_operators/object.py b/release/scripts/startup/bl_operators/object.py index 307764205e6..58f3afa3d6c 100644 --- a/release/scripts/startup/bl_operators/object.py +++ b/release/scripts/startup/bl_operators/object.py @@ -63,12 +63,13 @@ 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 obj.mode == 'POSE': + if obj and workspace.object_mode == 'POSE': items = obj.data.bones if not self.extend: bpy.ops.pose.select_all(action='DESELECT') - elif obj and obj.type == 'ARMATURE' and obj.mode == 'EDIT': + elif obj and obj.type == 'ARMATURE' and workspace.object_mode == 'EDIT': items = obj.data.edit_bones if not self.extend: bpy.ops.armature.select_all(action='DESELECT') @@ -81,16 +82,18 @@ class SelectPattern(Operator): # Can be pose bones or objects for item in items: if pattern_match(item.name, self.pattern): - item.select = True # hrmf, perhaps there should be a utility function for this. if is_ebone: + item.select = True item.select_head = True item.select_tail = True if item.use_connect: item_parent = item.parent if item_parent is not None: item_parent.select_tail = True + else: + item.select_set(action='SELECT') return {'FINISHED'} @@ -136,7 +139,7 @@ class SelectCamera(Operator): bpy.ops.object.select_all(action='DESELECT') scene.objects.active = camera camera.hide = False - camera.select = True + camera.select_set(action='SELECT') return {'FINISHED'} return {'CANCELLED'} @@ -202,7 +205,7 @@ class SelectHierarchy(Operator): bpy.ops.object.select_all(action='DESELECT') for obj in select_new: - obj.select = True + obj.select_set(action='SELECT') scene.objects.active = act_new return {'FINISHED'} @@ -246,6 +249,8 @@ 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': @@ -255,18 +260,18 @@ class SubdivisionSet(Operator): for i in range(sub): bpy.ops.object.multires_subdivide(modifier="Multires") - if obj.mode == 'SCULPT': + if workspace.object_mode == 'SCULPT': if mod.sculpt_levels != level: mod.sculpt_levels = level - elif obj.mode == 'OBJECT': + elif workspace.object_mode == 'OBJECT': if mod.levels != level: mod.levels = level return else: - if obj.mode == 'SCULPT': + if workspace.object_mode == 'SCULPT': if mod.sculpt_levels + level <= mod.total_levels: mod.sculpt_levels += level - elif obj.mode == 'OBJECT': + elif workspace.object_mode == 'OBJECT': if mod.levels + level <= mod.total_levels: mod.levels += level return @@ -282,7 +287,7 @@ class SubdivisionSet(Operator): # add a new modifier try: - if obj.mode == 'SCULPT': + if workspace.object_mode == 'SCULPT': mod = obj.modifiers.new("Multires", 'MULTIRES') if level > 0: for i in range(0, level): @@ -465,8 +470,9 @@ class ShapeTransfer(Operator): @classmethod def poll(cls, context): + workspace = context.workspace obj = context.active_object - return (obj and obj.mode != 'EDIT') + return (obj and workspace.object_mode != 'EDIT') def execute(self, context): ob_act = context.active_object @@ -506,14 +512,15 @@ class JoinUVs(Operator): def _main(self, context): import array + workspace = context.workspace obj = context.active_object mesh = obj.data - is_editmode = (obj.mode == 'EDIT') + is_editmode = (workspace.object_mode == 'EDIT') if is_editmode: bpy.ops.object.mode_set(mode='OBJECT', toggle=False) - if not mesh.uv_textures: + if not mesh.uv_layers: self.report({'WARNING'}, "Object: %s, Mesh: '%s' has no UVs" % (obj.name, mesh.name)) @@ -551,7 +558,7 @@ class JoinUVs(Operator): else: uv_other = mesh_other.uv_layers.active if not uv_other: - mesh_other.uv_textures.new() + mesh_other.uv_layers.new() uv_other = mesh_other.uv_layers.active if not uv_other: self.report({'ERROR'}, "Could not add " @@ -644,8 +651,8 @@ class MakeDupliFace(Operator): ob_new.use_dupli_faces_scale = True ob_new.dupli_faces_scale = 1.0 / SCALE_FAC - ob_inst.select = True - ob_new.select = True + ob_inst.select_set(action='SELECT') + ob_new.select_set(action='SELECT') def execute(self, context): self._main(context) @@ -664,7 +671,7 @@ class IsolateTypeRender(Operator): for obj in context.visible_objects: - if obj.select: + if obj.select_get(): obj.hide_render = False else: if obj.type == act_type: @@ -1029,8 +1036,8 @@ class LodGenerate(Operator): for level in ob.lod_levels[1:]: level.object.hide = level.object.hide_render = True - lod.select = False - ob.select = True + lod.select_set(action='DESELECT') + ob.select_set(action='SELECT') scene.objects.active = ob return {'FINISHED'} |