[Bf-extensions-cvs] [a8859502] master: POV : fix registering

Maurice Raybaud noreply at git.blender.org
Thu May 27 18:36:26 CEST 2021


Commit: a885950276ea98dfa6a67c6d035198b59692a658
Author: Maurice Raybaud
Date:   Thu May 27 18:36:18 2021 +0200
Branches: master
https://developer.blender.org/rBAa885950276ea98dfa6a67c6d035198b59692a658

POV : fix registering

Fix : Removed some duplicate class that caused addon register /
unregister to fail after previous commit

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

M	render_povray/__init__.py
M	render_povray/object_gui.py
M	render_povray/object_primitives.py
M	render_povray/render.py
M	render_povray/render_gui.py
M	render_povray/render_properties.py
M	render_povray/scenography.py
M	render_povray/scenography_gui.py
M	render_povray/scenography_properties.py
M	render_povray/scripting.py
M	render_povray/scripting_gui.py
M	render_povray/scripting_properties.py
M	render_povray/shading_gui.py
M	render_povray/shading_nodes.py
M	render_povray/texturing_gui.py
M	render_povray/texturing_properties.py

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

diff --git a/render_povray/__init__.py b/render_povray/__init__.py
index f0734c5f..21de6ff8 100755
--- a/render_povray/__init__.py
+++ b/render_povray/__init__.py
@@ -250,7 +250,8 @@ class POV_OT_update_addon(bpy.types.Operator):
         with tempfile.TemporaryDirectory() as temp_dir_path:
             temp_zip_path = os.path.join(temp_dir_path, 'master.zip')
 
-            # Download zip archive of latest addons master branch commit (So we also get presets)
+            # Download zip archive of latest addons master branch commit
+            # More work needed so we also get the pov presets from addons shared folder.
             # switch this URL back to the BF hosted one as soon as gitweb snapshot gets fixed
             url = 'https://github.com/blender/blender-addons/archive/refs/heads/master.zip'
             try:
@@ -397,7 +398,10 @@ class PovrayPreferences(bpy.types.AddonPreferences):
         layout.operator("pov.update_addon", icon='FILE_REFRESH')
 
 
-classes = (POV_OT_update_addon, PovrayPreferences)
+classes = (
+    POV_OT_update_addon, # already registered as a subclass
+    PovrayPreferences
+)
 
 
 def register():
@@ -410,7 +414,7 @@ def register():
     texturing_properties.register()
     object_properties.register()
     scripting_properties.register()
-    scenography.register()
+    #scenography.register()
     render.register()
     base_ui.register()
     scripting.register()
@@ -422,7 +426,7 @@ def unregister():
     scripting.unregister()
     base_ui.unregister()
     render.unregister()
-    scenography.unregister()
+    #scenography.unregister()
     scripting_properties.unregister()
     object_properties.unregister()
     texturing_properties.unregister()
@@ -430,7 +434,7 @@ def unregister():
     scenography_properties.unregister()
     render_properties.unregister()
 
-    for cls in reversed(classes):
+    for cls in classes:
         unregister_class(cls)
 
 
diff --git a/render_povray/object_gui.py b/render_povray/object_gui.py
index 9fbf8a8b..bc7df9f4 100755
--- a/render_povray/object_gui.py
+++ b/render_povray/object_gui.py
@@ -34,8 +34,11 @@ from bl_ui import properties_data_modifier
 
 for member in dir(properties_data_modifier):
     subclass = getattr(properties_data_modifier, member)
-    if hasattr(subclass, "COMPAT_ENGINES"):
+    try:
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
+    except BaseException as e:
+        print(e.__doc__)
+        print('An exception occurred: {}'.format(e))
 del properties_data_modifier
 
 
diff --git a/render_povray/object_primitives.py b/render_povray/object_primitives.py
index 4556f2df..fc6bafde 100755
--- a/render_povray/object_primitives.py
+++ b/render_povray/object_primitives.py
@@ -1769,5 +1769,5 @@ def register():
 
 
 def unregister():
-    for cls in classes:
+    for cls in reversed(classes):
         unregister_class(cls)
diff --git a/render_povray/render.py b/render_povray/render.py
index 45a94912..7b6e5810 100755
--- a/render_povray/render.py
+++ b/render_povray/render.py
@@ -17,7 +17,9 @@
 # #**** END GPL LICENSE BLOCK #****
 
 # <pep8 compliant>
+
 """Wirte the POV file using this file's functions and some from other modules then render it."""
+
 import bpy
 import subprocess
 import os
@@ -1807,7 +1809,11 @@ class RunPovTextRender(Operator):
         return {'FINISHED'}
 
 
-classes = (PovrayRender, RenderPovTexturePreview, RunPovTextRender)
+classes = (
+    PovrayRender,
+    RenderPovTexturePreview,
+    RunPovTextRender,
+)
 
 
 def register():
diff --git a/render_povray/render_gui.py b/render_povray/render_gui.py
index 018821cb..464ba367 100755
--- a/render_povray/render_gui.py
+++ b/render_povray/render_gui.py
@@ -36,26 +36,38 @@ from bl_ui import properties_output
 
 for member in dir(properties_output):
     subclass = getattr(properties_output, member)
-    if hasattr(subclass, "COMPAT_ENGINES"):
+    try:
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
+    except BaseException as e:
+        print(e.__doc__)
+        print('An exception occurred: {}'.format(e))
+        pass
 del properties_output
 
 from bl_ui import properties_freestyle
 
 for member in dir(properties_freestyle):
     subclass = getattr(properties_freestyle, member)
-    if hasattr(subclass, "COMPAT_ENGINES"):
+    try:
         if not (subclass.bl_space_type == 'PROPERTIES' and subclass.bl_context == "render"):
             subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
             # subclass.bl_parent_id = "RENDER_PT_POV_filter"
+    except BaseException as e:
+        print(e.__doc__)
+        print('An exception occurred: {}'.format(e))
+        pass
 del properties_freestyle
 
 from bl_ui import properties_view_layer
 
 for member in dir(properties_view_layer):
     subclass = getattr(properties_view_layer, member)
-    if hasattr(subclass, "COMPAT_ENGINES"):
+    try:
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
+    except BaseException as e:
+        print(e.__doc__)
+        print('An exception occurred: {}'.format(e))
+        pass
 del properties_view_layer
 
 # Use some of the existing buttons.
@@ -440,13 +452,17 @@ if check_render_freestyle_svg():
     '''
     for member in dir(render_freestyle_svg):
         subclass = getattr(render_freestyle_svg, member)
-        if hasattr(subclass, "COMPAT_ENGINES"):
+        try:
             subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
             if subclass.bl_idname == "RENDER_PT_SVGExporterPanel":
                 subclass.bl_parent_id = "RENDER_PT_POV_filter"
                 subclass.bl_options = {'HIDE_HEADER'}
                 # subclass.bl_order = 11
                 print(subclass.bl_info)
+        except BaseException as e:
+            print(e.__doc__)
+            print('An exception occurred: {}'.format(e))
+            pass
 
     # del render_freestyle_svg.RENDER_PT_SVGExporterPanel.bl_parent_id
 
@@ -537,10 +553,10 @@ classes = (
 def register():
     for cls in classes:
         register_class(cls)
-    bpy.types.RENDER_PT_POV_radiosity.prepend(rad_panel_func)
+    RENDER_PT_POV_radiosity.prepend(rad_panel_func)
 
 
 def unregister():
-    bpy.types.RENDER_PT_POV_radiosity.remove(rad_panel_func)
+    RENDER_PT_POV_radiosity.remove(rad_panel_func)
     for cls in reversed(classes):
         unregister_class(cls)
diff --git a/render_povray/render_properties.py b/render_povray/render_properties.py
index 9096c986..20e9761d 100755
--- a/render_povray/render_properties.py
+++ b/render_povray/render_properties.py
@@ -672,7 +672,9 @@ class RenderPovSettingsScene(PropertyGroup):
     )
 
 
-classes = (RenderPovSettingsScene,)
+classes = (
+    RenderPovSettingsScene,
+)
 
 
 def register():
diff --git a/render_povray/scenography.py b/render_povray/scenography.py
index 4b0c99e3..6c9aed80 100755
--- a/render_povray/scenography.py
+++ b/render_povray/scenography.py
@@ -23,7 +23,7 @@
 with world, sky, atmospheric effects such as rainbows or smoke """
 
 import bpy
-from bpy.utils import register_class, unregister_class
+
 import os
 from imghdr import what  # imghdr is a python lib to identify image file types
 from math import atan, pi, sqrt, degrees
@@ -832,16 +832,3 @@ def export_smoke(file, smoke_obj_name, smoke_path, comments, global_matrix, writ
         # file.write("               frequency 0\n")
         # file.write("   }\n")
         # file.write("}\n")
-
-
-classes = ()
-
-
-def register():
-    for cls in classes:
-        register_class(cls)
-
-
-def unregister():
-    for cls in classes:
-        unregister_class(cls)
diff --git a/render_povray/scenography_gui.py b/render_povray/scenography_gui.py
index 6eb5aed9..41e25a21 100755
--- a/render_povray/scenography_gui.py
+++ b/render_povray/scenography_gui.py
@@ -31,8 +31,12 @@ from bl_ui import properties_data_camera
 
 for member in dir(properties_data_camera):
     subclass = getattr(properties_data_camera, member)
-    if hasattr(subclass, "COMPAT_ENGINES"):
+    try:
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
+    except BaseException as e:
+        print(e.__doc__)
+        print('An exception occurred: {}'.format(e))
+        pass
 del properties_data_camera
 
 # ##################################
@@ -50,8 +54,12 @@ from bl_ui import properties_physics_common
 
 for member in dir(properties_physics_common):
     subclass = getattr(properties_physics_common, member)
-    if hasattr(subclass, "COMPAT_ENGINES"):
+    try:
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
+    except BaseException as e:
+        print(e.__doc__)
+        print('An exception occurred: {}'.format(e))
+        pass
 del properties_physics_common
 
 # Physics Rigid Bodies wrapping every class 'as is'
@@ -59,8 +67,12 @@ from bl_ui import properties_physics_rigidbody
 
 for member in dir(properties_physics_rigidbody):
     subclass = getattr(properties_physics_rigidbody, member)
-    if hasattr(subclass, "COMPAT_ENGINES"):
+    try:
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
+    except BaseException as e:
+        print(e.__doc__)
+        print('An exception occurred: {}'.format(e))
+        pass
 del properties_physics_rigidbody
 
 # Physics Rigid Body Constraint wrapping every class 'as is'
@@ -68,8 +80,12 @@ from bl_ui import properties_physics_rigidbody_constraint
 
 for member in dir(properties_physics_rigidbody_constraint):
     subclass = getattr(properties_physics_rigidbody_constraint, member)
-    if hasattr(subclass, "COMPAT_ENGINES"):
+    try:
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
+    except BaseException as e:
+        print(e.__doc__)
+        print('An exception occurred: {}'.format(e))
+        pass
 del properties_physics_rigidbody_constraint
 
 # Physics Smoke and fluids wrapping every class 'as is'
@@ -77,8 +93,12 @@ from bl_ui import properties_physics_fluid
 
 for member in dir(properties_physics_fluid):
     subclass = getattr(properties_physics_fluid, member)
-    if hasattr(subclass, "COMPAT_ENGINES"):
+    try:
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
+    except BaseException as e:
+        print(e.__doc__)
+        print('An exception occurred: {}'.format(e))
+        pass
 del properties_physics_fluid
 
 # Physics softbody wrapping every class 'as is'
@@ -86,8 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list