[Bf-extensions-cvs] [6ec1c46] master: Move named layer manager addon from contrib to community addons (see T41317).
Bastien Montagne
noreply at git.blender.org
Fri Aug 8 12:53:07 CEST 2014
Commit: 6ec1c46f1aa9974db8194572a3d15f12975ebe74
Author: Bastien Montagne
Date: Fri Aug 8 12:52:46 2014 +0200
Branches: master
https://developer.blender.org/rBAC6ec1c46f1aa9974db8194572a3d15f12975ebe74
Move named layer manager addon from contrib to community addons (see T41317).
===================================================================
D ui_layer_manager.py
===================================================================
diff --git a/ui_layer_manager.py b/ui_layer_manager.py
deleted file mode 100644
index 5a94c2c..0000000
--- a/ui_layer_manager.py
+++ /dev/null
@@ -1,557 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-# <pep8 compliant>
-#
-bl_info = {
- "name": "Layer Management",
- "author": "Alfonso Annarumma",
- "version": (1, 5, 1),
- "blender": (2, 70, 0),
- "location": "View3D > Properties panel > Layer Management",
- "warning": "",
- "description": "Display and Edit Layer Name",
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/layer_manager",
- "category": "3D View",
-}
-
-import bpy
-from bpy.types import Menu, Panel, UIList, PropertyGroup
-from bpy.props import StringProperty, BoolProperty, IntProperty, CollectionProperty, BoolVectorProperty, PointerProperty
-from bpy.app.handlers import persistent
-
-EDIT_MODES = {'EDIT_MESH', 'EDIT_CURVE', 'EDIT_SURFACE', 'EDIT_METABALL', 'EDIT_TEXT', 'EDIT_ARMATURE'}
-
-
-class NamedLayer(PropertyGroup):
- name = StringProperty(name="Layer Name")
- use_lock = BoolProperty(name="Lock Layer", default=False)
- use_object_select = BoolProperty(name="Object Select", default=True)
- use_wire = BoolProperty(name="Wire Layer", default=False)
-
-
-class NamedLayers(PropertyGroup):
- layers = CollectionProperty(type=NamedLayer)
- use_hide_empty_layers = BoolProperty(name="Hide Empty Layer", default=False)
- use_extra_options = BoolProperty(name="Show Extra Options", default=True)
- use_layer_indices = BoolProperty(name="Show Layer Indices", default=False)
- use_classic = BoolProperty(name="Classic", default=False, description="Use a classic layer selection visibility")
-
- use_init = BoolProperty(default=True, options={'HIDDEN'})
-
-
-# Stupid, but only solution currently is to use a handler to init that layers collection...
- at persistent
-def check_init_data(scene):
- namedlayers = scene.namedlayers
- if namedlayers.use_init:
- while namedlayers.layers:
- namedlayers.layers.remove(0)
- for i in range(20):
- layer = namedlayers.layers.add()
- layer.name = "Layer%.2d" % i
- namedlayers.use_init = False
-
-
-class LayerGroup(PropertyGroup):
- use_toggle = BoolProperty(name="", default=False)
- use_wire = BoolProperty(name="", default=False)
- use_lock = BoolProperty(name="", default=False)
-
- layers = BoolVectorProperty(name="Layers", default=([False] * 20), size=20, subtype='LAYER')
-
-
-class SCENE_OT_namedlayer_group_add(bpy.types.Operator):
- """Add and select a new layer group"""
- bl_idname = "scene.namedlayer_group_add"
- bl_label = "Add Layer Group"
-
- layers = BoolVectorProperty(name="Layers", default=([False] * 20), size=20)
-
- @classmethod
- def poll(cls, context):
- return bool(context.scene)
-
- def execute(self, context):
- scene = context.scene
- layergroups = scene.layergroups
- layers = self.layers
-
- group_idx = len(layergroups)
- layer_group = layergroups.add()
- layer_group.name = "LayerGroup.%.3d" % group_idx
- layer_group.layers = layers
- scene.layergroups_index = group_idx
-
- return {'FINISHED'}
-
-
-class SCENE_OT_namedlayer_group_remove(bpy.types.Operator):
- """Remove selected layer group"""
- bl_idname = "scene.namedlayer_group_remove"
- bl_label = "Remove Layer Group"
-
- group_idx = bpy.props.IntProperty()
-
- @classmethod
- def poll(cls, context):
- return bool(context.scene)
-
- def execute(self, context):
- scene = context.scene
- group_idx = self.group_idx
-
- scene.layergroups.remove(group_idx)
- if scene.layergroups_index > len(scene.layergroups) - 1:
- scene.layergroups_index = len(scene.layergroups) - 1
-
- return {'FINISHED'}
-
-
-class SCENE_OT_namedlayer_toggle_visibility(bpy.types.Operator):
- """Show or hide given layer (shift to extend)"""
- bl_idname = "scene.namedlayer_toggle_visibility"
- bl_label = "Show/Hide Layer"
-
- layer_idx = IntProperty()
- group_idx = IntProperty()
- use_spacecheck = BoolProperty()
- extend = BoolProperty(options={'SKIP_SAVE'})
-
- @classmethod
- def poll(cls, context):
- return context.scene and (context.area.spaces.active.type == 'VIEW_3D')
-
- def execute(self, context):
- scene = context.scene
- layer_cont = context.area.spaces.active if self.use_spacecheck else context.scene
- layer_idx = self.layer_idx
-
- if layer_idx == -1:
- group_idx = self.group_idx
- layergroups = scene.layergroups[group_idx]
- group_layers = layergroups.layers
- layers = layer_cont.layers
-
- if layergroups.use_toggle:
- layer_cont.layers = [not group_layer and layer for group_layer, layer in zip(group_layers, layers)]
- layergroups.use_toggle = False
- else:
- layer_cont.layers = [group_layer or layer for group_layer, layer in zip(group_layers, layers)]
- layergroups.use_toggle = True
- else:
- if self.extend:
- layer_cont.layers[layer_idx] = not layer_cont.layers[layer_idx]
- else:
- layers = [False] * 20
- layers[layer_idx] = True
- layer_cont.layers = layers
- return {'FINISHED'}
-
- def invoke(self, context, event):
- self.extend = event.shift
- return self.execute(context)
-
-
-class SCENE_OT_namedlayer_move_to_layer(bpy.types.Operator):
- """Move selected objects to this Layer (shift to extend)"""
- bl_idname = "scene.namedlayer_move_to_layer"
- bl_label = "Move Objects To Layer"
-
- layer_idx = IntProperty()
- extend = BoolProperty(options={'SKIP_SAVE'})
-
- @classmethod
- def poll(cls, context):
- return context.scene
-
- def execute(self, context):
- layer_idx = self.layer_idx
- scene = context.scene
-
- # Cycle all objects in the layer
- for obj in scene.objects:
- if obj.select:
- # If object is in at least one of the scene's visible layers...
- if True in {ob_layer and sce_layer for ob_layer, sce_layer in zip(obj.layers, scene.layers)}:
- if self.extend:
- obj.layers[layer_idx] = not obj.layers[layer_idx]
- else:
- layer = [False] * 20
- layer[layer_idx] = True
- obj.layers = layer
- return {'FINISHED'}
-
- def invoke(self, context, event):
- self.extend = event.shift
- return self.execute(context)
-
-
-class SCENE_OT_namedlayer_toggle_wire(bpy.types.Operator):
- """Toggle all objects on this layer draw as wire"""
- bl_idname = "scene.namedlayer_toggle_wire"
- bl_label = "Toggle Objects Draw Wire"
-
- layer_idx = IntProperty()
- use_wire = BoolProperty()
- group_idx = IntProperty()
-
- @classmethod
- def poll(cls, context):
- return context.scene and (context.area.spaces.active.type == 'VIEW_3D')
-
- def execute(self, context):
- scene = context.scene
- layer_idx = self.layer_idx
- use_wire = self.use_wire
-
- view_3d = context.area.spaces.active
-
- # Check if layer have some thing
- if view_3d.layers_used[layer_idx] or layer_idx == -1:
- display = 'WIRE' if use_wire else 'TEXTURED'
- # Cycle all objects in the layer.
- for obj in context.scene.objects:
- if layer_idx == -1:
- group_idx = self.group_idx
- group_layers = scene.layergroups[group_idx].layers
- layers = obj.layers
- if True in {layer and group_layer for layer, group_layer in zip(layers, group_layers)}:
- obj.draw_type = display
- scene.layergroups[group_idx].use_wire = use_wire
- else:
- if obj.layers[layer_idx]:
- obj.draw_type = display
- scene.namedlayers.layers[layer_idx].use_wire = use_wire
-
- return {'FINISHED'}
-
-
-class SCENE_OT_namedlayer_lock_selected(bpy.types.Operator):
- """Lock all selected objects on this layer"""
- bl_idname = "scene.namedlayer_lock_selected"
- bl_label = "Lock Objects"
-
- layer_idx = IntProperty()
- use_lock = BoolProperty()
- group_idx = IntProperty()
-
- @classmethod
- def poll(cls, context):
- return context.scene and (context.area.spaces.active.type == 'VIEW_3D')
-
- def execute(self, context):
- scene = context.scene
- view_3d = context.area.spaces.active
- layer_idx = self.layer_idx
- group_idx = self.group_idx
- group_layers = scene.layergroups[group_idx].layers
- use_lock = self.use_lock
-
- # check if layer have some thing
- if layer_idx == -1 or view_3d.layers_used[layer_idx]:
- # Cycle all objects in the layer.
- for obj in context.scene.objects:
- if layer_idx == -1:
- layers = obj.layers
- if True in {layer and group_layer for layer, group_layer in zip(layers, group_layers)}:
- obj.hide_select = not u
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list