[Bf-extensions-cvs] [eab3c9b] master: Fix T42328: Layer manager error when locking layer objects.
Bastien Montagne
noreply at git.blender.org
Tue Oct 21 13:58:27 CEST 2014
Commit: eab3c9b2cb347e46c6de4d83091ae727c305e037
Author: Bastien Montagne
Date: Tue Oct 21 13:56:25 2014 +0200
Branches: master
https://developer.blender.org/rBAeab3c9b2cb347e46c6de4d83091ae727c305e037
Fix T42328: Layer manager error when locking layer objects.
Own mistake in refactor prior to commit to 'main' addon repo...
Also, some general cleanup (getting rid of stupid literal use of '20' as layer num everywhere!)
and fix for 'separator' in layers UI.
===================================================================
M ui_layer_manager.py
===================================================================
diff --git a/ui_layer_manager.py b/ui_layer_manager.py
index a2e086b..5bb69f5 100644
--- a/ui_layer_manager.py
+++ b/ui_layer_manager.py
@@ -20,9 +20,9 @@
#
bl_info = {
"name": "Layer Management",
- "author": "Alfonso Annarumma",
- "version": (1, 5, 1),
- "blender": (2, 71, 0),
+ "author": "Alfonso Annarumma, Bastien Montagne",
+ "version": (1, 5, 2),
+ "blender": (2, 72, 0),
"location": "Toolshelf > Layers Tab",
"warning": "",
"description": "Display and Edit Layer Name",
@@ -37,6 +37,9 @@ from bpy.app.handlers import persistent
EDIT_MODES = {'EDIT_MESH', 'EDIT_CURVE', 'EDIT_SURFACE', 'EDIT_METABALL', 'EDIT_TEXT', 'EDIT_ARMATURE'}
+NUM_LAYERS = 20
+
+FAKE_LAYER_GROUP = [True] * NUM_LAYERS
class NamedLayer(PropertyGroup):
name = StringProperty(name="Layer Name")
@@ -62,7 +65,7 @@ def check_init_data(scene):
if namedlayers.use_init:
while namedlayers.layers:
namedlayers.layers.remove(0)
- for i in range(20):
+ for i in range(NUM_LAYERS):
layer = namedlayers.layers.add()
layer.name = "Layer%.2d" % (i + 1) # Blender use layer nums starting from 1, not 0.
namedlayers.use_init = False
@@ -73,7 +76,7 @@ class LayerGroup(PropertyGroup):
use_wire = BoolProperty(name="", default=False)
use_lock = BoolProperty(name="", default=False)
- layers = BoolVectorProperty(name="Layers", default=([False] * 20), size=20, subtype='LAYER')
+ layers = BoolVectorProperty(name="Layers", default=([False] * NUM_LAYERS), size=NUM_LAYERS, subtype='LAYER')
class SCENE_OT_namedlayer_group_add(bpy.types.Operator):
@@ -81,7 +84,7 @@ class SCENE_OT_namedlayer_group_add(bpy.types.Operator):
bl_idname = "scene.namedlayer_group_add"
bl_label = "Add Layer Group"
- layers = BoolVectorProperty(name="Layers", default=([False] * 20), size=20)
+ layers = BoolVectorProperty(name="Layers", default=([False] * NUM_LAYERS), size=NUM_LAYERS)
@classmethod
def poll(cls, context):
@@ -158,7 +161,7 @@ class SCENE_OT_namedlayer_toggle_visibility(bpy.types.Operator):
if self.extend:
layer_cont.layers[layer_idx] = not layer_cont.layers[layer_idx]
else:
- layers = [False] * 20
+ layers = [False] * NUM_LAYERS
layers[layer_idx] = True
layer_cont.layers = layers
return {'FINISHED'}
@@ -192,7 +195,7 @@ class SCENE_OT_namedlayer_move_to_layer(bpy.types.Operator):
if self.extend:
obj.layers[layer_idx] = not obj.layers[layer_idx]
else:
- layer = [False] * 20
+ layer = [False] * NUM_LAYERS
layer[layer_idx] = True
obj.layers = layer
return {'FINISHED'}
@@ -260,7 +263,7 @@ class SCENE_OT_namedlayer_lock_selected(bpy.types.Operator):
view_3d = context.area.spaces.active
layer_idx = self.layer_idx
group_idx = self.group_idx
- group_layers = scene.layergroups[group_idx].layers
+ group_layers = FAKE_LAYER_GROUP if group_idx < 0 else scene.layergroups[group_idx].layers
use_lock = self.use_lock
# check if layer have some thing
@@ -350,12 +353,12 @@ class SCENE_OT_namedlayer_show_all(bpy.types.Operator):
layer_cont = scene if view_3d.lock_camera_and_layers else view_3d
if show:
- layer_cont.layers[:] = [True] * 20
+ layer_cont.layers[:] = [True] * NUM_LAYERS
# Restore active layer (stupid, but Scene.active_layer is readonly).
layer_cont.layers[active_layer] = False
layer_cont.layers[active_layer] = True
else:
- layers = [False] * 20
+ layers = [False] * NUM_LAYERS
# Keep selection of active layer
layers[active_layer] = True
layer_cont.layers[:] = layers
@@ -411,7 +414,7 @@ class SCENE_PT_namedlayer_layers(bpy.types.Panel):
col.prop(namedlayers, "use_hide_empty_layers", text="Hide Empty")
col = layout.column()
- for layer_idx in range(20):
+ for layer_idx in range(NUM_LAYERS):
namedlayer = namedlayers.layers[layer_idx]
is_layer_used = view_3d.layers_used[layer_idx]
@@ -454,6 +457,7 @@ class SCENE_PT_namedlayer_layers(bpy.types.Panel):
icon = 'LOCKED' if use_lock else 'UNLOCKED'
op = row.operator("scene.namedlayer_lock_selected", text="", emboss=True, icon=icon)
op.layer_idx = layer_idx
+ op.group_idx = -1
op.use_lock = use_lock
# Merge layer
@@ -469,9 +473,8 @@ class SCENE_PT_namedlayer_layers(bpy.types.Panel):
op.layer_idx = layer_idx
op.use_wire = not use_wire
- if not is_layer_used:
- if not (layer_idx + 1) % 5:
- col.separator()
+ if not (layer_idx + 1) % 5:
+ col.separator()
if len(scene.objects) == 0:
layout.label(text="No objects in scene")
More information about the Bf-extensions-cvs
mailing list