[Bf-extensions-cvs] [267662e0] master: Fix T52839: "Copy Render Settings" doesn't work.

Bastien Montagne noreply at git.blender.org
Wed Sep 20 12:29:51 CEST 2017


Commit: 267662e07a7377a21269be30123629006e2d49f1
Author: Bastien Montagne
Date:   Wed Sep 20 12:28:38 2017 +0200
Branches: master
https://developer.blender.org/rBA267662e07a7377a21269be30123629006e2d49f1

Fix T52839: "Copy Render Settings" doesn't work.

Recent removing of registered types from bpy.types broke this, had to
twist a bit around to get it working again...

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

M	render_copy_settings/__init__.py
A	render_copy_settings/data.py
M	render_copy_settings/panel.py

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

diff --git a/render_copy_settings/__init__.py b/render_copy_settings/__init__.py
index abd01299..5f7d8781 100644
--- a/render_copy_settings/__init__.py
+++ b/render_copy_settings/__init__.py
@@ -21,8 +21,8 @@
 bl_info = {
     "name": "Copy Settings",
     "author": "Bastien Montagne",
-    "version": (0, 1, 6),
-    "blender": (2, 65, 9),
+    "version": (0, 1, 7),
+    "blender": (2, 79, 1),
     "location": "Render buttons (Properties window)",
     "description": "Allows to copy a selection of render settings "
                    "from current scene to others.",
@@ -34,12 +34,14 @@ bl_info = {
 
 if "bpy" in locals():
     import importlib
+    importlib.reload(data)
     importlib.reload(operator)
     importlib.reload(panel)
     importlib.reload(translations)
 
 else:
     from . import (
+            data,
             operator,
             panel,
             translations,
@@ -48,59 +50,17 @@ else:
 
 import bpy
 from bpy.props import (
-        StringProperty,
-        BoolProperty,
-        IntProperty,
-        CollectionProperty,
         PointerProperty,
         )
 
-########################################################################################################################
-# Global properties for the script, for UI (as there’s no way to let them in the operator…).
-########################################################################################################################
 
-class RenderCopySettingsDataScene(bpy.types.PropertyGroup):
-    allowed = BoolProperty(default=True)
-
-
-class RenderCopySettingsDataSetting(bpy.types.PropertyGroup):
-    strid = StringProperty(default="")
-    copy = BoolProperty(default=False)
-
-
-class RenderCopySettingsData(bpy.types.PropertyGroup):
-    # XXX: The consistency of this collection is delegated to the UI code.
-    #      It should only contain one element for each render setting.
-    affected_settings = CollectionProperty(type=RenderCopySettingsDataSetting,
-                                           name="Affected Settings",
-                                           description="The list of all available render settings")
-    # XXX Unused, but needed for template_list…
-    affected_settings_idx = IntProperty()
-
-    # XXX: The consistency of this collection is delegated to the UI code.
-    #      It should only contain one element for each scene.
-    allowed_scenes = CollectionProperty(type=RenderCopySettingsDataScene,
-                                        name="Allowed Scenes",
-                                        description="The list all scenes in the file")
-    # XXX Unused, but needed for template_list…
-    allowed_scenes_idx = IntProperty()
-
-    filter_scene = StringProperty(name="Filter Scene",
-                                  description="Regex to only affect scenes which name matches it",
-                                  default="")
-
-
-classes = (
-    RenderCopySettingsDataScene,
-    RenderCopySettingsDataSetting,
-    RenderCopySettingsData,
-) + operator.classes + panel.classes
+classes = data.classes + operator.classes + panel.classes
 
 
 def register():
     for cls in classes:
         bpy.utils.register_class(cls)
-    bpy.types.Scene.render_copy_settings = PointerProperty(type=RenderCopySettingsData)
+    bpy.types.Scene.render_copy_settings = PointerProperty(type=data.RenderCopySettingsData)
 
     bpy.app.translations.register(__name__, translations.translations_dict)
 
diff --git a/render_copy_settings/__init__.py b/render_copy_settings/data.py
similarity index 69%
copy from render_copy_settings/__init__.py
copy to render_copy_settings/data.py
index abd01299..d370d7b7 100644
--- a/render_copy_settings/__init__.py
+++ b/render_copy_settings/data.py
@@ -18,41 +18,12 @@
 
 # <pep8 compliant>
 
-bl_info = {
-    "name": "Copy Settings",
-    "author": "Bastien Montagne",
-    "version": (0, 1, 6),
-    "blender": (2, 65, 9),
-    "location": "Render buttons (Properties window)",
-    "description": "Allows to copy a selection of render settings "
-                   "from current scene to others.",
-    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
-                "Scripts/Render/Copy Settings",
-    "category": "Render",
-}
-
-
-if "bpy" in locals():
-    import importlib
-    importlib.reload(operator)
-    importlib.reload(panel)
-    importlib.reload(translations)
-
-else:
-    from . import (
-            operator,
-            panel,
-            translations,
-            )
-
-
 import bpy
 from bpy.props import (
         StringProperty,
         BoolProperty,
         IntProperty,
         CollectionProperty,
-        PointerProperty,
         )
 
 ########################################################################################################################
@@ -94,24 +65,4 @@ classes = (
     RenderCopySettingsDataScene,
     RenderCopySettingsDataSetting,
     RenderCopySettingsData,
-) + operator.classes + panel.classes
-
-
-def register():
-    for cls in classes:
-        bpy.utils.register_class(cls)
-    bpy.types.Scene.render_copy_settings = PointerProperty(type=RenderCopySettingsData)
-
-    bpy.app.translations.register(__name__, translations.translations_dict)
-
-
-def unregister():
-    bpy.app.translations.unregister(__name__)
-
-    del bpy.types.Scene.render_copy_settings
-    for cls in classes:
-        bpy.utils.unregister_class(cls)
-
-
-if __name__ == "__main__":
-    register()
+)
diff --git a/render_copy_settings/panel.py b/render_copy_settings/panel.py
index db609a15..375e1bd3 100644
--- a/render_copy_settings/panel.py
+++ b/render_copy_settings/panel.py
@@ -20,23 +20,24 @@
 
 import bpy
 from . import presets
+from . import data as data_types
 
 
 class RENDER_UL_copy_settings(bpy.types.UIList):
     def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
-        #assert(isinstance(item, (bpy.types.RenderCopySettingsScene, bpy.types.RenderCopySettingsDataSetting)))
+        #assert(isinstance(item, (data_types.RenderCopySettingsScene, data_types.RenderCopySettingsDataSetting)))
         if self.layout_type in {'DEFAULT', 'COMPACT'}:
-            if isinstance(item, bpy.types.RenderCopySettingsDataSetting):
+            if isinstance(item, data_types.RenderCopySettingsDataSetting):
                 layout.label(item.name, icon_value=icon)
                 layout.prop(item, "copy", text="")
-            else: #elif isinstance(item, bpy.types.RenderCopySettingsDataScene):
+            else: #elif isinstance(item, data_types.RenderCopySettingsDataScene):
                 layout.prop(item, "allowed", text=item.name, toggle=True)
         elif self.layout_type in {'GRID'}:
             layout.alignment = 'CENTER'
-            if isinstance(item, bpy.types.RenderCopySettingsDataSetting):
+            if isinstance(item, data_types.RenderCopySettingsDataSetting):
                 layout.label(item.name, icon_value=icon)
                 layout.prop(item, "copy", text="")
-            else: #elif isinstance(item, bpy.types.RenderCopySettingsDataScene):
+            else: #elif isinstance(item, data_types.RenderCopySettingsDataScene):
                 layout.prop(item, "allowed", text=item.name, toggle=True)



More information about the Bf-extensions-cvs mailing list