[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