[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