[Bf-extensions-cvs] [e8b8f0c] master: If you hold CTRL when press select object in the layer, the last object will be active Moved the script in Tool and add the Tab Layer for more intuitive interface

anfeo noreply at git.blender.org
Thu Apr 10 16:05:15 CEST 2014


Commit: e8b8f0cfbd5f792d63126548ac585e7dd6ec57ba
Author: anfeo
Date:   Wed Apr 9 17:59:45 2014 +0200
https://developer.blender.org/rBACe8b8f0cfbd5f792d63126548ac585e7dd6ec57ba

If you hold CTRL when press select object in the layer, the last object will be active
Moved the script in Tool and add the Tab Layer for more intuitive interface

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

M	ui_layer_manager.py

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

diff --git a/ui_layer_manager.py b/ui_layer_manager.py
index 8c031e9..8d3523a 100644
--- a/ui_layer_manager.py
+++ b/ui_layer_manager.py
@@ -28,13 +28,14 @@ bl_info = {
     "description": "Display and Edit Layer Name",
     "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
                 "Scripts/3D_interaction/layer_manager",
-    "tracker_url": "https://developer.blender.org/T32472",
+    "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"}
+EDIT = ["EDIT_MESH", "EDIT_CURVE", "EDIT_SURFACE", "EDIT_METABALL", "EDIT_TEXT", "EDIT_ARMATURE"]
 
 class LayerGroups(bpy.types.PropertyGroup):
 
@@ -42,20 +43,25 @@ class LayerGroups(bpy.types.PropertyGroup):
 
     lock = BoolProperty(name="", default=False)
 
-    layer_groups = BoolVectorProperty(name="Layer Groups", default=([False]*20), size=20, subtype='LAYER')
+    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)
 
 class RemoveLayerGroup(bpy.types.Operator):
     '''Tooltip'''
     bl_idname = "object.layergroup_remove"
     bl_label = "Remove select Layer Group"
 
-    index_group = IntProperty()
+    index_group = bpy.props.IntProperty()
 
     @classmethod
     def poll(cls, context):
@@ -78,8 +84,8 @@ class AddLayerGroup(bpy.types.Operator):
     bl_idname = "object.layergroup_add"
     bl_label = "Add select Layer group"
 
-    index = IntProperty()
-    layer = layer = BoolVectorProperty(name="Layer", default=([False]*20), size=20)
+    index = bpy.props.IntProperty()
+    layer = layer = BoolVectorProperty(name="Layer", default = ([False]*20), size=20)
 
     @classmethod
     def poll(cls, context):
@@ -94,15 +100,15 @@ class AddLayerGroup(bpy.types.Operator):
         layer = self.layer
 
         item = layergroups.add()
-        index_number = str(index)
+        index_number= str(index)
 
-        if len(index_number) == 2:
-            index_number = "0" + index_number
-            if len(index_number) == 3:
+        if len(index_number)==2:
+            index_number = "0"+index_number
+            if len(index_number)==3:
                 index_number = index_number
         else:
-            index_number = "00" + index_number
-        item.name = 'LayerGroup.' + index_number
+            index_number = "00"+index_number
+        item.name= 'LayerGroup.'+index_number
         #item.use=True
         scene.layergroups_index = index
         scene.layergroups[index].layer_groups = layer
@@ -116,9 +122,9 @@ class LayerToggle(bpy.types.Operator):
 
     #prop definition
     #layer number
-    layerN = IntProperty()
-    spacecheck = BoolProperty()
-    index_group = IntProperty()
+    layerN = bpy.props.IntProperty()
+    spacecheck = bpy.props.BoolProperty()
+    index_group = bpy.props.IntProperty()
 
     @classmethod
 
@@ -139,28 +145,28 @@ class LayerToggle(bpy.types.Operator):
         else:
             space = context.scene
 
-        if layerN == -1:
+        if layerN==-1:
             index = self.index_group
             groups = scene.layergroups[index].layer_groups
             layergroups = scene.layergroups[index]
 
             layers = space.layers
-            union = [False]*20
+            union= [False]*20
 
             if not layergroups.toggle:
-                for i in range(0, 20):
+                for i in range(0,20):
 
-                    union[i] = groups[i] or layers[i]
+                    union[i]= groups[i] or layers[i]
 
-                space.layers = union
-                layergroups.toggle = True
+                space.layers=union
+                layergroups.toggle=True
             else:
-                for i in range(0, 20):
+                for i in range(0,20):
 
-                    union[i] = not groups[i] and layers[i]
+                    union[i]=  not groups[i]  and layers[i]
 
-                space.layers = union
-                layergroups.toggle = False
+                space.layers=union
+                layergroups.toggle=False
 
         else:
 
@@ -170,26 +176,24 @@ class LayerToggle(bpy.types.Operator):
                     toggle = False
                 else:
 
-                    toggle = True
-                space.layers[layerN] = toggle
+                    toggle= True
+                space.layers[layerN]=toggle
 
             else:
 
-                layer = [False] * 20
-                layer[layerN] = True
-                space.layers = layer
+                layer = [False]*20
+                layer[layerN]=True
+                space.layers=layer
 
                 if space.layers[layerN]:
                     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"
@@ -197,7 +201,7 @@ class MergeSelected(bpy.types.Operator):
 
     #prop definition
     #layer number
-    layerN = IntProperty()
+    layerN = bpy.props.IntProperty()
 
     @classmethod
 
@@ -209,18 +213,18 @@ class MergeSelected(bpy.types.Operator):
 
         layerN = self.layerN
 
-        scene = context.scene
+        scene= context.scene
 
         #cyecle all object in the layer
 
         for obj in scene.objects:
 
             if obj.select:
-                visible = False
+                visible=False
 
-                for i in range(0, 20):
+                for i in range(0,20):
                     if obj.layers[i] and scene.layers[i]:
-                        visible = True
+                        visible=True
                         break
 
                 if visible:
@@ -230,14 +234,14 @@ class MergeSelected(bpy.types.Operator):
                             toggle = False
                         else:
 
-                            toggle = True
-                        obj.layers[layerN] = toggle
+                            toggle= True
+                        obj.layers[layerN]=toggle
 
                     else:
 
-                        layer = [False] * 20
-                        layer[layerN] = True
-                        obj.layers = layer
+                        layer = [False]*20
+                        layer[layerN]=True
+                        obj.layers=layer
 
                         if obj.layers[layerN]:
                             toggle = False
@@ -249,7 +253,6 @@ class MergeSelected(bpy.types.Operator):
 
         return self.execute(context)
 
-
 class LockSelected(bpy.types.Operator):
     '''Loock All Objects on this Layer'''
     bl_idname = "object.lockselected"
@@ -257,12 +260,12 @@ class LockSelected(bpy.types.Operator):
 
     #prop definition
     #layer number
-    layerN = IntProperty()
+    layerN = bpy.props.IntProperty()
 
     #lock status
-    lock = BoolProperty()
+    lock = bpy.props.BoolProperty()
 
-    index_group = IntProperty()
+    index_group = bpy.props.IntProperty()
 
     @classmethod
 
@@ -274,45 +277,44 @@ class LockSelected(bpy.types.Operator):
 
         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:
+        if view_3d.layers_used[layerN] or  layerN==-1:
 
             #cyecle all object in the layer
             for obj in context.scene.objects:
 
-                if layerN == -1:
+                if layerN==-1:
 
                     index = self.index_group
                     groups = scene.layergroups[index].layer_groups
                     layers = obj.layers
 
-                    layergroup=[False] * 20
+                    layergroup=[False]*20
 
-                    for i in range (0, 20):
-                        layergroup[i] = layers[i] and groups[i]
+                    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
+                        obj.hide_select=not lock
+                        obj.select=False
 
-                        scene.layergroups[index].lock = not lock
+                        scene.layergroups[index].lock=not lock
 
                 else:
                     if obj.layers[layerN]:
-                        obj.hide_select = not lock
-                        obj.select = False
+                        obj.hide_select=not lock
+                        obj.select=False
 
-                        scene.LockLayer[layerN] = not lock
+                        scene.LockLayer[layerN]= not lock
 
         return {'FINISHED'}
 
-
 class SelectObjectsLayer(bpy.types.Operator):
-    '''Select All the Objects on this Layer'''
+    '''Select All the Objects on this Layer - Hold SHIFT for multy selection - Hold CTRL to make active the last selected object'''
     bl_idname = "object.selectobjectslayer"
     bl_label = "Select objects in Layer"
 
@@ -333,32 +335,45 @@ class SelectObjectsLayer(bpy.types.Operator):
         s = 0
         #check if layer have some thing
         if view_3d.layers_used[layerN]:
+            
+            
+                
 
             for obj in context.scene.objects:
 
                 if ob

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list