diff options
author | lijenstina <lijenstina@gmail.com> | 2017-05-05 01:12:41 +0300 |
---|---|---|
committer | lijenstina <lijenstina@gmail.com> | 2017-05-05 01:12:41 +0300 |
commit | 70529875c67383939025bc03a06f19989eee2925 (patch) | |
tree | 928b05e38827cf530541d41d838e9ac6db261377 /archimesh | |
parent | efa2c23a7e0512fd8b9d97c1a2295e7a45731a8e (diff) |
Archimesh: Update panel Rename, replace deprecated imp call
Bumped version to 1.1.4
Replace the deprecated imp import with importlib
As a part of the task T50726:
Update the Panel rename code to more generic one
Note: there is the import sys and os that should be maybe
removed
Diffstat (limited to 'archimesh')
-rw-r--r-- | archimesh/__init__.py | 81 |
1 files changed, 52 insertions, 29 deletions
diff --git a/archimesh/__init__.py b/archimesh/__init__.py index 59ef314f..e9ba3883 100644 --- a/archimesh/__init__.py +++ b/archimesh/__init__.py @@ -29,7 +29,7 @@ bl_info = { "name": "Archimesh", "author": "Antonio Vazquez (antonioya)", "location": "View3D > Add > Mesh > Archimesh", - "version": (1, 1, 3), + "version": (1, 1, 4), "blender": (2, 6, 8), "description": "Generate rooms, doors, windows, and other architecture objects", "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Add_Mesh/Archimesh", @@ -43,21 +43,21 @@ import os # Import modules # ---------------------------------------------- if "bpy" in locals(): - import imp - imp.reload(achm_room_maker) - imp.reload(achm_door_maker) - imp.reload(achm_window_maker) - imp.reload(achm_roof_maker) - imp.reload(achm_column_maker) - imp.reload(achm_stairs_maker) - imp.reload(achm_kitchen_maker) - imp.reload(achm_shelves_maker) - imp.reload(achm_books_maker) - imp.reload(achm_lamp_maker) - imp.reload(achm_curtain_maker) - imp.reload(achm_venetian_maker) - imp.reload(achm_main_panel) - imp.reload(achm_window_panel) + import importlib + importlib.reload(achm_room_maker) + importlib.reload(achm_door_maker) + importlib.reload(achm_window_maker) + importlib.reload(achm_roof_maker) + importlib.reload(achm_column_maker) + importlib.reload(achm_stairs_maker) + importlib.reload(achm_kitchen_maker) + importlib.reload(achm_shelves_maker) + importlib.reload(achm_books_maker) + importlib.reload(achm_lamp_maker) + importlib.reload(achm_curtain_maker) + importlib.reload(achm_venetian_maker) + importlib.reload(achm_main_panel) + importlib.reload(achm_window_panel) print("archimesh: Reloaded multifiles") else: from . import achm_books_maker @@ -80,9 +80,21 @@ else: # noinspection PyUnresolvedReferences import bpy # noinspection PyUnresolvedReferences -from bpy.props import BoolProperty, FloatVectorProperty, IntProperty, FloatProperty +from bpy.props import ( + BoolProperty, + FloatVectorProperty, + IntProperty, + FloatProperty, + StringProperty, + ) # noinspection PyUnresolvedReferences -from bpy.types import Menu, Scene, INFO_MT_mesh_add, WindowManager +from bpy.types import ( + AddonPreferences, + Menu, + Scene, + INFO_MT_mesh_add, + WindowManager, + ) # ---------------------------------------------------------- # Decoration assets @@ -128,24 +140,34 @@ class AchmInfoMtMeshCustomMenuAdd(Menu): # Register all operators and panels # -------------------------------------------------------------- -## Addons Preferences Update Panel -from bpy.types import ( - AddonPreferences, - ) -from bpy.props import ( - StringProperty, + +# Add-ons Preferences Update Panel + +# Define Panel classes for updating +panels = ( + achm_main_panel.ArchimeshMainPanel, ) + def update_panel(self, context): + message = "Archimesh: Updating Panel locations has failed" try: - bpy.utils.unregister_class(achm_main_panel.ArchimeshMainPanel) - 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 - achm_main_panel.ArchimeshMainPanel.bl_category = context.user_preferences.addons[__name__].preferences.category - bpy.utils.register_class(achm_main_panel.ArchimeshMainPanel) class Archi_Pref(AddonPreferences): + # this must match the addon name, use '__package__' + # when defining this in a submodule of a python package. bl_idname = __name__ category = StringProperty( @@ -156,13 +178,14 @@ class Archi_Pref(AddonPreferences): ) def draw(self, context): - layout = self.layout + row = layout.row() col = row.column() col.label(text="Tab Category:") col.prop(self, "category", text="") + # Define menu # noinspection PyUnusedLocal def AchmMenu_func(self, context): |