Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2017-09-20 13:28:38 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2018-01-01 18:21:23 +0300
commit7b2369de9e777e279f111169b43eef78729004f6 (patch)
tree3f8de0c2f8978cf6b4b758cb8efae65646c85139
parent8bd2c6d90d2de39de865abfa81084a0f394f0994 (diff)
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...
-rw-r--r--render_copy_settings/__init__.py52
-rw-r--r--render_copy_settings/data.py68
-rw-r--r--render_copy_settings/panel.py11
3 files changed, 80 insertions, 51 deletions
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/data.py b/render_copy_settings/data.py
new file mode 100644
index 00000000..d370d7b7
--- /dev/null
+++ b/render_copy_settings/data.py
@@ -0,0 +1,68 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+
+import bpy
+from bpy.props import (
+ StringProperty,
+ BoolProperty,
+ IntProperty,
+ CollectionProperty,
+ )
+
+########################################################################################################################
+# 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,
+)
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)