[Bf-extensions-cvs] [d775974] master: Layer Management: Update panel Rename, Cleanup

lijenstina noreply at git.blender.org
Fri Mar 24 18:09:40 CET 2017


Commit: d775974cebbd7d66ca0b1a0fafc6ccfeb5c80f3a
Author: lijenstina
Date:   Fri Mar 24 18:08:30 2017 +0100
Branches: master
https://developer.blender.org/rBAd775974cebbd7d66ca0b1a0fafc6ccfeb5c80f3a

Layer Management: Update panel Rename, Cleanup

Bumped version to 1.5.3
As a part of the task T50726:
Update the Panel rename code to more generic one

PEP8 cleanup:
Tuple imports and use them for class types
Consistent Scene props definitions

Flake8 reports two variables being unused:
line 345 - scene
line 347 - select_obj
Haven't removed them yet as that needs some clarification
about their purpose

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

M	ui_layer_manager.py

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

diff --git a/ui_layer_manager.py b/ui_layer_manager.py
index 7367cce..1bae977 100644
--- a/ui_layer_manager.py
+++ b/ui_layer_manager.py
@@ -17,11 +17,11 @@
 # ##### END GPL LICENSE BLOCK #####
 
 # <pep8 compliant>
-#
+
 bl_info = {
     "name": "Layer Management",
     "author": "Alfonso Annarumma, Bastien Montagne",
-    "version": (1, 5, 2),
+    "version": (1, 5, 3),
     "blender": (2, 76, 0),
     "location": "Toolshelf > Layers Tab",
     "warning": "",
@@ -31,8 +31,21 @@ bl_info = {
 }
 
 import bpy
-from bpy.types import Menu, Panel, UIList, PropertyGroup
-from bpy.props import StringProperty, BoolProperty, IntProperty, CollectionProperty, BoolVectorProperty, PointerProperty
+from bpy.types import (
+        Operator,
+        Panel,
+        UIList,
+        PropertyGroup,
+        AddonPreferences,
+        )
+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'}
@@ -41,21 +54,49 @@ NUM_LAYERS = 20
 
 FAKE_LAYER_GROUP = [True] * NUM_LAYERS
 
+
 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)
+    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'})
+    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...
@@ -79,7 +120,7 @@ class LayerGroup(PropertyGroup):
     layers = BoolVectorProperty(name="Layers", default=([False] * NUM_LAYERS), size=NUM_LAYERS, subtype='LAYER')
 
 
-class SCENE_OT_namedlayer_group_add(bpy.types.Operator):
+class SCENE_OT_namedlayer_group_add(Operator):
     """Add and select a new layer group"""
     bl_idname = "scene.namedlayer_group_add"
     bl_label = "Add Layer Group"
@@ -104,7 +145,7 @@ class SCENE_OT_namedlayer_group_add(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class SCENE_OT_namedlayer_group_remove(bpy.types.Operator):
+class SCENE_OT_namedlayer_group_remove(Operator):
     """Remove selected layer group"""
     bl_idname = "scene.namedlayer_group_remove"
     bl_label = "Remove Layer Group"
@@ -126,7 +167,7 @@ class SCENE_OT_namedlayer_group_remove(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class SCENE_OT_namedlayer_toggle_visibility(bpy.types.Operator):
+class SCENE_OT_namedlayer_toggle_visibility(Operator):
     """Show or hide given layer (shift to extend)"""
     bl_idname = "scene.namedlayer_toggle_visibility"
     bl_label = "Show/Hide Layer"
@@ -171,7 +212,7 @@ class SCENE_OT_namedlayer_toggle_visibility(bpy.types.Operator):
         return self.execute(context)
 
 
-class SCENE_OT_namedlayer_move_to_layer(bpy.types.Operator):
+class SCENE_OT_namedlayer_move_to_layer(Operator):
     """Move selected objects to this Layer (shift to extend)"""
     bl_idname = "scene.namedlayer_move_to_layer"
     bl_label = "Move Objects To Layer"
@@ -205,7 +246,7 @@ class SCENE_OT_namedlayer_move_to_layer(bpy.types.Operator):
         return self.execute(context)
 
 
-class SCENE_OT_namedlayer_toggle_wire(bpy.types.Operator):
+class SCENE_OT_namedlayer_toggle_wire(Operator):
     """Toggle all objects on this layer draw as wire"""
     bl_idname = "scene.namedlayer_toggle_wire"
     bl_label = "Toggle Objects Draw Wire"
@@ -245,7 +286,7 @@ class SCENE_OT_namedlayer_toggle_wire(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class SCENE_OT_namedlayer_lock_all(bpy.types.Operator):
+class SCENE_OT_namedlayer_lock_all(Operator):
     """Lock all objects on this layer"""
     bl_idname = "scene.namedlayer_lock_all"
     bl_label = "Lock Objects"
@@ -285,7 +326,7 @@ class SCENE_OT_namedlayer_lock_all(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class SCENE_OT_namedlayer_select_objects_by_layer(bpy.types.Operator):
+class SCENE_OT_namedlayer_select_objects_by_layer(Operator):
     """Select all the objects on this Layer (shift for multi selection, ctrl to make active the last selected object)"""
     bl_idname = "scene.namedlayer_select_objects_by_layer"
     bl_label = "Select Objects In Layer"
@@ -332,7 +373,7 @@ class SCENE_OT_namedlayer_select_objects_by_layer(bpy.types.Operator):
         return self.execute(context)
 
 
-class SCENE_OT_namedlayer_show_all(bpy.types.Operator):
+class SCENE_OT_namedlayer_show_all(Operator):
     """Show or hide all layers in the scene"""
     bl_idname = "scene.namedlayer_show_all"
     bl_label = "Select All Layers"
@@ -366,7 +407,7 @@ class SCENE_OT_namedlayer_show_all(bpy.types.Operator):
         return {'FINISHED'}
 
 
-class SCENE_PT_namedlayer_layers(bpy.types.Panel):
+class SCENE_PT_namedlayer_layers(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'TOOLS'
     bl_label = "Layer Management"
@@ -517,7 +558,7 @@ class SCENE_UL_namedlayer_groups(UIList):
             layout.alignment = 'CENTER'
 
 
-class SCENE_PT_namedlayer_groups(bpy.types.Panel):
+class SCENE_PT_namedlayer_groups(Panel):
     bl_space_type = 'VIEW_3D'
     bl_region_type = 'TOOLS'
     bl_context = "objectmode"
@@ -546,37 +587,53 @@ class SCENE_PT_namedlayer_groups(bpy.types.Panel):
             layout.prop(scene.layergroups[group_idx], "layers", text="", toggle=True)
             layout.prop(scene.layergroups[group_idx], "name", text="Name:")
 
-## Addons Preferences Update Panel
+
+# Add-ons Preferences Update Panel
+
+# Define Panel classes for updating
+panels = [
+        SCENE_PT_namedlayer_layers,
+        SCENE_PT_namedlayer_groups
+        ]
+
+
 def update_panel(self, context):
+    message = "Layer Management: Updating Panel locations has failed"
     try:
-        bpy.utils.unregister_class(SCENE_PT_namedlayer_layers)
-        bpy.utils.unregister_class(SCENE_PT_namedlayer_groups)
-    except:
+        for panel in panels:
+            if "bl_rna" in panel.__dict__:
+                bpy.utils.unregister_class(panel)
+
+        for panel in panels:
+            panel.bl_category = context.user_preferences.addons[__name__].preferences.category
+            bpy.utils.register_class(panel)
+
+    except Exception as e:
+        print("\n[{}]\n{}\n\nError:\n{}".format(__name__, message, e))
         pass
-    SCENE_PT_namedlayer_layers.bl_category = context.user_preferences.addons[__name__].preferences.category
-    bpy.utils.register_class(SCENE_PT_namedlayer_layers)
-    SCENE_PT_namedlayer_groups.bl_category = context.user_preferences.addons[__name__].preferences.category
-    bpy.utils.register_class(SCENE_PT_namedlayer_groups)
 
-class LayerMAddonPreferences(bpy.types.AddonPreferences):
+
+class LayerMAddonPreferences(AddonPreferences):
     # this must match the addon name, use '__package__'
     # when defining this in a submodule of a python package.
     bl_idname = __name__
 
-    category = bpy.props.StringProperty(
+    category = StringProperty(
             name="Tab Category",
             description="Choose a name for the category of the panel",
             default="Layers",
-            update=update_panel)
+            update=update_panel
+            )
 
     def draw(self, context):
-
         layout = self.layout
+
         row = layout.row()
         col = row.column()
         col.label(text="Tab Category:")
         col.prop(self, "category", text="")
 
+
 def register():
     bpy.utils.register_module(__name__)
     bpy.types.Scene.layergroups = CollectionProperty(type=LayerGroup)
@@ -586,6 +643,7 @@ def register():
     bpy.app.handlers.scene_update_post.append(check_init_data)
     update_panel(None, bpy.context)
 
+
 def unregister():
     bpy.app.handlers.scene_update_post.remove(check_init_data)
     del bpy.types.Scene.layergroups



More information about the Bf-extensions-cvs mailing list