[Bf-extensions-cvs] [6888525a] master: archipack: fix icons not correctly unregister
Stephen Leger
noreply at git.blender.org
Wed Jun 7 04:33:14 CEST 2017
Commit: 6888525a09906245fc3dfd236fa2430485c98b8a
Author: Stephen Leger
Date: Wed Jun 7 04:31:55 2017 +0200
Branches: master
https://developer.blender.org/rBAC6888525a09906245fc3dfd236fa2430485c98b8a
archipack: fix icons not correctly unregister
===================================================================
M archipack/__init__.py
===================================================================
diff --git a/archipack/__init__.py b/archipack/__init__.py
index 371bbd94..56c0bcc4 100644
--- a/archipack/__init__.py
+++ b/archipack/__init__.py
@@ -112,7 +112,7 @@ from bpy.props import (
IntProperty, FloatProperty, FloatVectorProperty
)
from bpy.utils import previews
-icons_coll = {}
+icons_collection = {}
# ----------------------------------------------------
@@ -280,13 +280,15 @@ class TOOLS_PT_Archipack_PolyLib(Panel):
(context.object is not None and context.object.type == 'CURVE'))
def draw(self, context):
+ global icons_collection
+ icons = icons_collection["main"]
layout = self.layout
row = layout.row(align=True)
box = row.box()
row = box.row(align=True)
row.operator(
"archipack.polylib_detect",
- icon_value=icons_coll["detect"].icon_id,
+ icon_value=icons["detect"].icon_id,
text='Detect'
).extend = context.window_manager.archipack_polylib.extend
row.prop(context.window_manager.archipack_polylib, "extend")
@@ -297,46 +299,46 @@ class TOOLS_PT_Archipack_PolyLib(Panel):
row = box.row(align=True)
row.operator(
"archipack.polylib_pick_2d_polygons",
- icon_value=icons_coll["selection"].icon_id,
+ icon_value=icons["selection"].icon_id,
text='Select'
).action = 'select'
row.operator(
"archipack.polylib_pick_2d_polygons",
- icon_value=icons_coll["union"].icon_id,
+ icon_value=icons["union"].icon_id,
text='Union'
).action = 'union'
row.operator(
"archipack.polylib_output_polygons",
- icon_value=icons_coll["polygons"].icon_id,
+ icon_value=icons["polygons"].icon_id,
text='All')
row = box.row(align=True)
row.operator(
"archipack.polylib_pick_2d_polygons",
text='Wall',
- icon_value=icons_coll["wall"].icon_id).action = 'wall'
+ icon_value=icons["wall"].icon_id).action = 'wall'
row.prop(context.window_manager.archipack_polylib, "solidify_thickness")
row = box.row(align=True)
row.operator("archipack.polylib_pick_2d_polygons",
text='Window',
- icon_value=icons_coll["window"].icon_id).action = 'window'
+ icon_value=icons["window"].icon_id).action = 'window'
row.operator("archipack.polylib_pick_2d_polygons",
text='Door',
- icon_value=icons_coll["door"].icon_id).action = 'door'
+ icon_value=icons["door"].icon_id).action = 'door'
row.operator("archipack.polylib_pick_2d_polygons", text='Rectangle').action = 'rectangle'
row = box.row(align=True)
row.label(text="Lines")
row = box.row(align=True)
row.operator(
"archipack.polylib_pick_2d_lines",
- icon_value=icons_coll["selection"].icon_id,
+ icon_value=icons["selection"].icon_id,
text='Lines').action = 'select'
row.operator(
"archipack.polylib_pick_2d_lines",
- icon_value=icons_coll["union"].icon_id,
+ icon_value=icons["union"].icon_id,
text='Union').action = 'union'
row.operator(
"archipack.polylib_output_lines",
- icon_value=icons_coll["polygons"].icon_id,
+ icon_value=icons["polygons"].icon_id,
text='All')
# row = layout.row(align=True)
# box = row.box()
@@ -347,7 +349,7 @@ class TOOLS_PT_Archipack_PolyLib(Panel):
row = box.row(align=True)
row.operator(
"archipack.polylib_pick_2d_points",
- icon_value=icons_coll["selection"].icon_id,
+ icon_value=icons["selection"].icon_id,
text='Points').action = 'select'
row = layout.row(align=True)
box = row.box()
@@ -413,6 +415,8 @@ class TOOLS_PT_Archipack_Create(Panel):
return True
def draw(self, context):
+ global icons_collection
+ icons = icons_collection["main"]
layout = self.layout
row = layout.row(align=True)
box = row.box()
@@ -421,7 +425,7 @@ class TOOLS_PT_Archipack_Create(Panel):
col = row.column()
subrow = col.row(align=True)
subrow.operator("archipack.window",
- icon_value=icons_coll["window"].icon_id
+ icon_value=icons["window"].icon_id
).mode = 'CREATE'
subrow.operator("archipack.window_draw",
text="",
@@ -429,44 +433,44 @@ class TOOLS_PT_Archipack_Create(Panel):
col = row.column()
subrow = col.row(align=True)
subrow.operator("archipack.door",
- icon_value=icons_coll["door"].icon_id
+ icon_value=icons["door"].icon_id
).mode = 'CREATE'
subrow.operator("archipack.door_draw",
text="",
icon='GREASEPENCIL')
row = box.row(align=True)
row.operator("archipack.stair",
- icon_value=icons_coll["stair"].icon_id
+ icon_value=icons["stair"].icon_id
)
row = box.row(align=True)
row.operator("archipack.wall2",
- icon_value=icons_coll["wall"].icon_id
+ icon_value=icons["wall"].icon_id
)
row.operator("archipack.wall2_draw", text="Draw", icon='GREASEPENCIL')
row.operator("archipack.wall2_from_curve", text="", icon='CURVE_DATA')
row = box.row(align=True)
row.operator("archipack.fence",
- icon_value=icons_coll["fence"].icon_id
+ icon_value=icons["fence"].icon_id
)
row.operator("archipack.fence_from_curve", text="", icon='CURVE_DATA')
# row = box.row(align=True)
# row.operator("archipack.roof", icon='CURVE_DATA')
row = box.row(align=True)
row.operator("archipack.truss",
- icon_value=icons_coll["truss"].icon_id
+ icon_value=icons["truss"].icon_id
)
row = box.row(align=True)
# row.operator("archipack.slab")
row.operator("archipack.slab_from_curve",
- icon_value=icons_coll["slab"].icon_id
+ icon_value=icons["slab"].icon_id
)
row = box.row(align=True)
row.operator("archipack.wall2_from_slab",
- icon_value=icons_coll["wall"].icon_id)
+ icon_value=icons["wall"].icon_id)
row.operator("archipack.slab_from_wall",
- icon_value=icons_coll["slab"].icon_id
+ icon_value=icons["slab"].icon_id
)
@@ -476,32 +480,34 @@ class TOOLS_PT_Archipack_Create(Panel):
# Define "Archipack" menu
def menu_func(self, context):
+ global icons_collection
+ icons = icons_collection["main"]
layout = self.layout
layout.separator()
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("archipack.wall2",
text="Wall",
- icon_value=icons_coll["wall"].icon_id
+ icon_value=icons["wall"].icon_id
)
layout.operator("archipack.window",
text="Window",
- icon_value=icons_coll["window"].icon_id
+ icon_value=icons["window"].icon_id
).mode = 'CREATE'
layout.operator("archipack.door",
text="Door",
- icon_value=icons_coll["door"].icon_id
+ icon_value=icons["door"].icon_id
).mode = 'CREATE'
layout.operator("archipack.stair",
text="Stair",
- icon_value=icons_coll["stair"].icon_id
+ icon_value=icons["stair"].icon_id
)
layout.operator("archipack.fence",
text="Fence",
- icon_value=icons_coll["fence"].icon_id
+ icon_value=icons["fence"].icon_id
)
layout.operator("archipack.truss",
text="Truss",
- icon_value=icons_coll["truss"].icon_id
+ icon_value=icons["truss"].icon_id
)
@@ -525,14 +531,14 @@ class archipack_data(PropertyGroup):
def register():
- global icons_coll
-
- icons_coll = previews.new()
+ global icons_collection
+ icons = previews.new()
icons_dir = os.path.join(os.path.dirname(__file__), "icons")
for icon in os.listdir(icons_dir):
name, ext = os.path.splitext(icon)
- icons_coll.load(name, os.path.join(icons_dir, icon), 'IMAGE')
-
+ icons.load(name, os.path.join(icons_dir, icon), 'IMAGE')
+ icons_collection["main"] = icons
+
archipack_snap.register()
archipack_manipulator.register()
archipack_reference_point.register()
@@ -560,7 +566,7 @@ def register():
def unregister():
- global icons_coll
+ global icons_collection
bpy.types.INFO_MT_mesh_add.remove(menu_func)
bpy.utils.unregister_class(TOOLS_PT_Archipack_PolyLib)
@@ -589,9 +595,9 @@ def unregister():
bpy.utils.unregister_class(archipack_data)
del WindowManager.archipack
- # icons_coll.close()
- previews.remove(icons_coll)
- del icons_coll
+ for icons in icons_collection.values():
+ previews.remove(icons)
+ icons_collection.clear()
# bpy.utils.unregister_module(__name__)
More information about the Bf-extensions-cvs
mailing list