[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4298] contrib/py/scripts/addons/ ui_layer_manager.py: Layer Manager addon: Update for API change ( template_list).
Sebastian Nell
codemanx at gmx.de
Mon Feb 18 02:22:57 CET 2013
Revision: 4298
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4298
Author: codemanx
Date: 2013-02-18 01:22:56 +0000 (Mon, 18 Feb 2013)
Log Message:
-----------
Layer Manager addon: Update for API change (template_list). Fixed list index two problems.
Modified Paths:
--------------
contrib/py/scripts/addons/ui_layer_manager.py
Modified: contrib/py/scripts/addons/ui_layer_manager.py
===================================================================
--- contrib/py/scripts/addons/ui_layer_manager.py 2013-02-17 23:55:12 UTC (rev 4297)
+++ contrib/py/scripts/addons/ui_layer_manager.py 2013-02-18 01:22:56 UTC (rev 4298)
@@ -21,8 +21,8 @@
bl_info = {
"name": "Layer Management",
"author": "Alfonso Annarumma",
- "version": (1,4),
- "blender": (2, 63, 0),
+ "version": (1, 5),
+ "blender": (2, 65, 4),
"location": "View3D > Properties panel > Layer Management",
"warning": "",
"description": "Display and Edit Layer Name",
@@ -31,27 +31,27 @@
"tracker_url": "http://projects.blender.org/tracker/index.php?"
"func=detail&aid=32472",
"category": "3D View"}
-
+
import bpy
from bpy.props import StringProperty, BoolProperty, IntProperty, CollectionProperty, BoolVectorProperty
EDIT = ["EDIT_MESH", "EDIT_CURVE", "EDIT_SURFACE", "EDIT_METABALL", "EDIT_TEXT", "EDIT_ARMATURE"]
class LayerGroups(bpy.types.PropertyGroup):
-
- toggle = BoolProperty(name="",default=False)
-
- lock = BoolProperty(name="",default=False)
+ toggle = BoolProperty(name="", default=False)
+
+ lock = BoolProperty(name="", default=False)
+
layer_groups = BoolVectorProperty(name="Layer Groups", default = ([False]*20), size=20, subtype='LAYER')
-
+
# A list of identifiers (colon-separated strings) which property’s controls should be displayed
# in a template_list.
# Note that the order is respected.
#template_list_controls = StringProperty(default="toggle", options={"HIDDEN"})
-
+
bpy.utils.register_class(LayerGroups)
-
+
bpy.types.Scene.layergroups = CollectionProperty(type=LayerGroups)
# Unused, but this is needed for the TemplateList to work…
bpy.types.Scene.layergroups_index = IntProperty(default=-1)
@@ -60,44 +60,45 @@
'''Tooltip'''
bl_idname = "object.layergroup_remove"
bl_label = "Remove select Layer Group"
-
+
index_group = bpy.props.IntProperty()
-
+
@classmethod
def poll(cls, context):
return context.scene is not None
def execute(self, context):
scene = context.scene
-
- index_group =self.index_group
-
+
+ index_group = self.index_group
+
scene.layergroups.remove(index_group)
-
- scene.layergroups_index= index_group-1
-
+
+ if index_group > 0:
+ scene.layergroups_index = index_group - 1
+
return {'FINISHED'}
class AddLayerGroup(bpy.types.Operator):
'''Tooltip'''
bl_idname = "object.layergroup_add"
bl_label = "Add select Layer group"
-
+
index = bpy.props.IntProperty()
layer = layer = BoolVectorProperty(name="Layer", default = ([False]*20), size=20)
-
+
@classmethod
def poll(cls, context):
return context.scene is not None
def execute(self, context):
-
+
scene = context.scene
layergroups = scene.layergroups
-
+
index = self.index
layer = self.layer
-
+
item = layergroups.add()
index_number= str(index)
@@ -109,16 +110,16 @@
index_number = "00"+index_number
item.name= 'LayerGroup.'+index_number
#item.use=True
- scene.layergroups_index= index
+ scene.layergroups_index = index
scene.layergroups[index].layer_groups = layer
-
+
return {'FINISHED'}
class LayerToggle(bpy.types.Operator):
'''Visualize this Layer, Shift-Click to select multiple layers'''
bl_idname = "object.layertoggle"
bl_label = "Visualize this layer"
-
+
#prop definition
#layer number
layerN = bpy.props.IntProperty()
@@ -126,20 +127,20 @@
index_group = bpy.props.IntProperty()
@classmethod
-
+
def poll(cls, context):
-
+
return context.scene
def execute(self, context):
spacecheck = self.spacecheck
scene = context.scene
-
+
layerN = self.layerN
if spacecheck:
-
+
space = context.area.spaces.active
else:
space = context.scene
@@ -148,36 +149,36 @@
index = self.index_group
groups = scene.layergroups[index].layer_groups
layergroups = scene.layergroups[index]
-
+
layers = space.layers
union= [False]*20
-
+
if not layergroups.toggle:
for i in range(0,20):
-
+
union[i]= groups[i] or layers[i]
- space.layers=union
+ space.layers=union
layergroups.toggle=True
else:
for i in range(0,20):
-
+
union[i]= not groups[i] and layers[i]
- space.layers=union
+ space.layers=union
layergroups.toggle=False
-
+
else:
-
+
if self.shift:
-
+
if space.layers[layerN]:
toggle = False
else:
- toggle= True
+ toggle= True
space.layers[layerN]=toggle
-
+
else:
layer = [False]*20
@@ -185,57 +186,57 @@
space.layers=layer
if space.layers[layerN]:
- toggle = False
+ toggle = False
return {'FINISHED'}
def invoke(self, context, event):
self.shift = event.shift
-
+
return self.execute(context)
class MergeSelected(bpy.types.Operator):
'''Move Selected Objects in this Layer Shift-Click to select multiple layers'''
bl_idname = "object.mergeselected"
bl_label = "Merge Selected object in this layer"
-
+
#prop definition
#layer number
layerN = bpy.props.IntProperty()
@classmethod
-
+
def poll(cls, context):
-
+
return context.scene
def execute(self, context):
-
+
layerN = self.layerN
-
+
scene= context.scene
-
- #cyecle all object in the layer
-
+
+ #cyecle all object in the layer
+
for obj in scene.objects:
-
+
if obj.select:
visible=False
-
+
for i in range(0,20):
if obj.layers[i] and scene.layers[i]:
visible=True
break
-
+
if visible:
if self.shift:
-
+
if obj.layers[layerN]:
toggle = False
else:
- toggle= True
+ toggle= True
obj.layers[layerN]=toggle
-
+
else:
layer = [False]*20
@@ -243,60 +244,60 @@
obj.layers=layer
if obj.layers[layerN]:
- toggle = False
+ toggle = False
return {'FINISHED'}
-
+
def invoke(self, context, event):
self.shift = event.shift
-
+
return self.execute(context)
class LockSelected(bpy.types.Operator):
'''Loock All Objects on this Layer'''
bl_idname = "object.lockselected"
bl_label = "Hide Select of Selected"
-
+
#prop definition
#layer number
layerN = bpy.props.IntProperty()
-
+
#lock status
lock = bpy.props.BoolProperty()
index_group = bpy.props.IntProperty()
-
+
@classmethod
-
+
def poll(cls, context):
-
+
return context.scene
def execute(self, context):
-
+
scene = context.scene
layerN = self.layerN
- lock =self.lock
-
+ lock =self.lock
+
view_3d = context.area.spaces.active
-
+
#check if layer have some thing
if view_3d.layers_used[layerN] or layerN==-1:
-
- #cyecle all object in the layer
+
+ #cyecle all object in the layer
for obj in context.scene.objects:
-
+
if layerN==-1:
-
+
index = self.index_group
groups = scene.layergroups[index].layer_groups
layers = obj.layers
-
+
layergroup=[False]*20
for i in range (0,20):
layergroup[i]= layers[i] and groups[i]
-
+
if True in layergroup:
obj.hide_select=not lock
obj.select=False
@@ -316,7 +317,7 @@
'''Select All the Objects on this Layer'''
bl_idname = "object.selectobjectslayer"
bl_label = "Select objects in Layer"
-
+
select_obj = bpy.props.BoolProperty()
layerN = bpy.props.IntProperty()
@@ -325,16 +326,16 @@
return context.scene
def execute(self, context):
-
+
view_3d = context.area.spaces.active
select_obj= self.select_obj
layerN = self.layerN
scene = context.scene
i=0
s=0
- #check if layer have some thing
+ #check if layer have some thing
if view_3d.layers_used[layerN]:
-
+
for obj in context.scene.objects:
if obj.layers[layerN]:
@@ -344,12 +345,12 @@
if s==i:
for obj in context.scene.objects:
-
+
if obj.layers[layerN]:
obj.select=False
else:
- bpy.ops.object.select_by_layer(extend=True, layers=layerN+1)
+ bpy.ops.object.select_by_layer(extend=True, layers=layerN+1)
return {'FINISHED'}
@@ -357,7 +358,7 @@
'''Active all Layer in scene'''
bl_idname = "scene.layersselect"
bl_label = "Select All Layer"
-
+
vis = bpy.props.BoolProperty()
@classmethod
@@ -365,37 +366,37 @@
return context.scene
def execute(self, context):
-
+
scene = context.scene
vis = self.vis
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list