[Bf-extensions-cvs] [73c752ef] master: Povray: Fix bunch of issues after recent refactor.

Bastien Montagne noreply at git.blender.org
Thu May 27 17:31:10 CEST 2021


Commit: 73c752effe0d3ac18d50ec39a1431b5cb24cd5c2
Author: Bastien Montagne
Date:   Thu May 27 17:26:34 2021 +0200
Branches: master
https://developer.blender.org/rBA73c752effe0d3ac18d50ec39a1431b5cb24cd5c2

Povray: Fix bunch of issues after recent refactor.

Those were breaking automated tests, since (un)registering was not
working properly. Mainly:

* Use `hasattr` instead of try/except when batch-assigning to a variable
  that does not always exist.
* Fix some incorrect call to sub-`register()` from parent `unregister()`
  functions.
* Remove double definition (in two different files) of World's pov
  textures.

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

M	render_povray/__init__.py
M	render_povray/base_ui.py
M	render_povray/object_gui.py
M	render_povray/render_gui.py
M	render_povray/scenography_gui.py
M	render_povray/scenography_properties.py
M	render_povray/shading_gui.py
M	render_povray/texturing_gui.py

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

diff --git a/render_povray/__init__.py b/render_povray/__init__.py
index 58f6040d..f0734c5f 100755
--- a/render_povray/__init__.py
+++ b/render_povray/__init__.py
@@ -422,7 +422,7 @@ def unregister():
     scripting.unregister()
     base_ui.unregister()
     render.unregister()
-    scenography.register()
+    scenography.unregister()
     scripting_properties.unregister()
     object_properties.unregister()
     texturing_properties.unregister()
@@ -430,7 +430,7 @@ def unregister():
     scenography_properties.unregister()
     render_properties.unregister()
 
-    for cls in classes:
+    for cls in reversed(classes):
         unregister_class(cls)
 
 
diff --git a/render_povray/base_ui.py b/render_povray/base_ui.py
index f0e2cb2f..85374ba3 100755
--- a/render_povray/base_ui.py
+++ b/render_povray/base_ui.py
@@ -304,4 +304,4 @@ def unregister():
     shading_gui.unregister()
     object_gui.unregister()
     scenography_gui.unregister()
-    render_gui.register()
+    render_gui.unregister()
diff --git a/render_povray/object_gui.py b/render_povray/object_gui.py
index bc7df9f4..9fbf8a8b 100755
--- a/render_povray/object_gui.py
+++ b/render_povray/object_gui.py
@@ -34,11 +34,8 @@ from bl_ui import properties_data_modifier
 
 for member in dir(properties_data_modifier):
     subclass = getattr(properties_data_modifier, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         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/render_gui.py b/render_povray/render_gui.py
index 5148c0d9..018821cb 100755
--- a/render_povray/render_gui.py
+++ b/render_povray/render_gui.py
@@ -36,38 +36,26 @@ from bl_ui import properties_output
 
 for member in dir(properties_output):
     subclass = getattr(properties_output, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         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)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         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)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         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.
@@ -452,17 +440,13 @@ if check_render_freestyle_svg():
     '''
     for member in dir(render_freestyle_svg):
         subclass = getattr(render_freestyle_svg, member)
-        try:
+        if hasattr(subclass, "COMPAT_ENGINES"):
             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
 
diff --git a/render_povray/scenography_gui.py b/render_povray/scenography_gui.py
index 307d8f41..6eb5aed9 100755
--- a/render_povray/scenography_gui.py
+++ b/render_povray/scenography_gui.py
@@ -31,12 +31,8 @@ from bl_ui import properties_data_camera
 
 for member in dir(properties_data_camera):
     subclass = getattr(properties_data_camera, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
-    except BaseException as e:
-        print(e.__doc__)
-        print('An exception occurred: {}'.format(e))
-        pass
 del properties_data_camera
 
 # ##################################
@@ -54,12 +50,8 @@ from bl_ui import properties_physics_common
 
 for member in dir(properties_physics_common):
     subclass = getattr(properties_physics_common, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         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'
@@ -67,12 +59,8 @@ from bl_ui import properties_physics_rigidbody
 
 for member in dir(properties_physics_rigidbody):
     subclass = getattr(properties_physics_rigidbody, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         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'
@@ -80,12 +68,8 @@ from bl_ui import properties_physics_rigidbody_constraint
 
 for member in dir(properties_physics_rigidbody_constraint):
     subclass = getattr(properties_physics_rigidbody_constraint, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         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'
@@ -93,12 +77,8 @@ from bl_ui import properties_physics_fluid
 
 for member in dir(properties_physics_fluid):
     subclass = getattr(properties_physics_fluid, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         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'
@@ -106,12 +86,8 @@ from bl_ui import properties_physics_softbody
 
 for member in dir(properties_physics_softbody):
     subclass = getattr(properties_physics_softbody, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
-    except BaseException as e:
-        print(e.__doc__)
-        print('An exception occurred: {}'.format(e))
-        pass
 del properties_physics_softbody
 
 # Physics Field wrapping every class 'as is'
@@ -119,12 +95,8 @@ from bl_ui import properties_physics_field
 
 for member in dir(properties_physics_field):
     subclass = getattr(properties_physics_field, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
-    except BaseException as e:
-        print(e.__doc__)
-        print('An exception occurred: {}'.format(e))
-        pass
 del properties_physics_field
 
 # Physics Cloth wrapping every class 'as is'
@@ -132,12 +104,8 @@ from bl_ui import properties_physics_cloth
 
 for member in dir(properties_physics_cloth):
     subclass = getattr(properties_physics_cloth, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
-    except BaseException as e:
-        print(e.__doc__)
-        print('An exception occurred: {}'.format(e))
-        pass
 del properties_physics_cloth
 
 # Physics Dynamic Paint wrapping every class 'as is'
@@ -145,24 +113,16 @@ from bl_ui import properties_physics_dynamicpaint
 
 for member in dir(properties_physics_dynamicpaint):
     subclass = getattr(properties_physics_dynamicpaint, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
-    except BaseException as e:
-        print(e.__doc__)
-        print('An exception occurred: {}'.format(e))
-        pass
 del properties_physics_dynamicpaint
 
 from bl_ui import properties_particle
 
 for member in dir(properties_particle):  # add all "particle" panels from blender
     subclass = getattr(properties_particle, member)
-    try:
+    if hasattr(subclass, "COMPAT_ENGINES"):
         subclass.COMPAT_ENGINES.add('POVRAY_RENDER')
-    except BaseException as e:
-        print(e.__doc__)
-        print('An exception occurred: {}'.format(e))
-        pass
 del properties_particle
 
 
@@ -795,6 +755,7 @@ def register():
 
 def unregister():
 
+    bpy.types.LIGHT_PT_POV_light.remove(light_panel_func)
     for cls in reversed(classes):
         unregister_class(cls)
-    bpy.types.LIGHT_PT_POV_light.remove(light_panel_func)
+
diff --git a/render_povray/scenography_properties.py b/render_povray/scenography_properties.py
index b45922eb..dd886513 100755
--- a/render_povray/scenography_properties.py
+++ b/render_povray/scenography_properties.py
@@ -353,125 +353,6 @@ class RenderPovSettingsWorld(PropertyGroup):
     )
 
 
-class WorldTextureSlot(PropertyGroup):
-    """Declare world texture slot level properties for UI and translated to POV."""
-
-    bl_idname = ("pov_texture_slots",)
-    bl_description = ("Texture_slots from Blender-2.79",)
-
-    # Adding a "real" texture datablock as property is not possible
-    # (or at least not easy through a dynamically populated EnumProperty).
-    # That's why we'll use a prop_search() UILayout function in texturing_gui.py.
-    # So we'll assign the name of the needed texture datablock to the below StringProperty.
-    texture: StringProperty(update=active_texture_name_from_uilist)
-    # and use another temporary StringPropert

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list