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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-10-30 03:11:55 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-10-30 03:11:55 +0400
commitb8e68c08cbaf7b372d81aee271696bdfe2aa9283 (patch)
treeff1040bf8e3ba34cec1291ad75cc9010d1b13de6 /release/scripts/startup/bl_ui/properties_render_layer.py
parent15ed8343437c6b304de72cd14591455da1d5b3ec (diff)
Further tweaking of the recent UI changes (new layer context), mostly by splitting
the big layers panel in three, and fixing Freestyle's panels poll function to hide them when Freestyle is disabled. Patch contribution by Bastien Montagne, thanks!
Diffstat (limited to 'release/scripts/startup/bl_ui/properties_render_layer.py')
-rw-r--r--release/scripts/startup/bl_ui/properties_render_layer.py102
1 files changed, 64 insertions, 38 deletions
diff --git a/release/scripts/startup/bl_ui/properties_render_layer.py b/release/scripts/startup/bl_ui/properties_render_layer.py
index b8c76fea7e8..342f87c7779 100644
--- a/release/scripts/startup/bl_ui/properties_render_layer.py
+++ b/release/scripts/startup/bl_ui/properties_render_layer.py
@@ -35,7 +35,7 @@ class RenderLayerButtonsPanel():
class RENDERLAYER_PT_layers(RenderLayerButtonsPanel, Panel):
bl_label = "Layers"
- bl_options = {'DEFAULT_CLOSED'}
+ bl_options = {'HIDE_HEADER'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
def draw(self, context):
@@ -57,11 +57,24 @@ class RENDERLAYER_PT_layers(RenderLayerButtonsPanel, Panel):
row.prop(rl, "name")
row.prop(rd, "use_single_layer", text="", icon_only=True)
+
+class RENDERLAYER_PT_layer_options(RenderLayerButtonsPanel, Panel):
+ bl_label = "Layer"
+ bl_options = {'DEFAULT_CLOSED'}
+ COMPAT_ENGINES = {'BLENDER_RENDER'}
+
+ def draw(self, context):
+ layout = self.layout
+
+ scene = context.scene
+ rd = scene.render
+ rl = rd.layers.active
+
split = layout.split()
col = split.column()
col.prop(scene, "layers", text="Scene")
- col.label(text="")
+# col.label(text="")
col.prop(rl, "light_override", text="Light")
col.prop(rl, "material_override", text="Material")
@@ -93,12 +106,31 @@ class RENDERLAYER_PT_layers(RenderLayerButtonsPanel, Panel):
col.prop(rl, "use_strand")
col.prop(rl, "use_freestyle")
- layout.separator()
+
+class RENDERLAYER_PT_layer_passes(RenderLayerButtonsPanel, Panel):
+ bl_label = "Render Passes"
+ bl_options = {'DEFAULT_CLOSED'}
+ COMPAT_ENGINES = {'BLENDER_RENDER'}
+
+ def draw_pass_type_buttons(self, box, rl, pass_type):
+ # property names
+ use_pass_type = "use_pass_" + pass_type
+ exclude_pass_type = "exclude_" + pass_type
+ # draw pass type buttons
+ row = box.row()
+ row.prop(rl, use_pass_type)
+ row.prop(rl, exclude_pass_type, text="")
+
+ def draw(self, context):
+ layout = self.layout
+
+ scene = context.scene
+ rd = scene.render
+ rl = rd.layers.active
split = layout.split()
col = split.column()
- col.label(text="Passes:")
col.prop(rl, "use_pass_combined")
col.prop(rl, "use_pass_z")
col.prop(rl, "use_pass_vector")
@@ -110,32 +142,15 @@ class RENDERLAYER_PT_layers(RenderLayerButtonsPanel, Panel):
col.prop(rl, "use_pass_color")
col = split.column()
- col.label()
col.prop(rl, "use_pass_diffuse")
- row = col.row()
- row.prop(rl, "use_pass_specular")
- row.prop(rl, "exclude_specular", text="")
- row = col.row()
- row.prop(rl, "use_pass_shadow")
- row.prop(rl, "exclude_shadow", text="")
- row = col.row()
- row.prop(rl, "use_pass_emit")
- row.prop(rl, "exclude_emit", text="")
- row = col.row()
- row.prop(rl, "use_pass_ambient_occlusion")
- row.prop(rl, "exclude_ambient_occlusion", text="")
- row = col.row()
- row.prop(rl, "use_pass_environment")
- row.prop(rl, "exclude_environment", text="")
- row = col.row()
- row.prop(rl, "use_pass_indirect")
- row.prop(rl, "exclude_indirect", text="")
- row = col.row()
- row.prop(rl, "use_pass_reflection")
- row.prop(rl, "exclude_reflection", text="")
- row = col.row()
- row.prop(rl, "use_pass_refraction")
- row.prop(rl, "exclude_refraction", text="")
+ self.draw_pass_type_buttons(col, rl, "specular")
+ self.draw_pass_type_buttons(col, rl, "shadow")
+ self.draw_pass_type_buttons(col, rl, "emit")
+ self.draw_pass_type_buttons(col, rl, "ambient_occlusion")
+ self.draw_pass_type_buttons(col, rl, "environment")
+ self.draw_pass_type_buttons(col, rl, "indirect")
+ self.draw_pass_type_buttons(col, rl, "reflection")
+ self.draw_pass_type_buttons(col, rl, "refraction")
class RENDER_MT_lineset_specials(Menu):
@@ -151,6 +166,15 @@ class RENDERLAYER_PT_freestyle(RenderLayerButtonsPanel, Panel):
bl_label = "Freestyle"
COMPAT_ENGINES = {'BLENDER_RENDER'}
+ @classmethod
+ def poll(cls, context):
+ scene = context.scene
+ if not (scene and (scene.render.engine in cls.COMPAT_ENGINES)):
+ return False
+ rd = scene.render
+ rl = rd.layers.active
+ return rd.use_freestyle and rl
+
def draw(self, context):
rd = context.scene.render
rl = rd.layers.active
@@ -200,16 +224,17 @@ class RENDERLAYER_PT_freestyle(RenderLayerButtonsPanel, Panel):
class RENDERLAYER_PT_freestyle_lineset(RenderLayerButtonsPanel, Panel):
- bl_label = "Freestyle: Line Set"
+ bl_label = "Freestyle Line Set"
COMPAT_ENGINES = {'BLENDER_RENDER'}
@classmethod
def poll(cls, context):
- rd = context.scene.render
- if rd.engine not in cls.COMPAT_ENGINES:
+ scene = context.scene
+ if not (scene and (scene.render.engine in cls.COMPAT_ENGINES)):
return False
+ rd = scene.render
rl = rd.layers.active
- return rl and rl.freestyle_settings.mode == "EDITOR"
+ return rd.use_freestyle and rl and rl.freestyle_settings.mode == "EDITOR"
def draw_edge_type_buttons(self, box, lineset, edge_type):
# property names
@@ -234,7 +259,6 @@ class RENDERLAYER_PT_freestyle_lineset(RenderLayerButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text="Line Sets:")
row = col.row()
rows = 2
if lineset:
@@ -305,16 +329,18 @@ class RENDERLAYER_PT_freestyle_lineset(RenderLayerButtonsPanel, Panel):
class RENDERLAYER_PT_freestyle_linestyle(RenderLayerButtonsPanel, Panel):
- bl_label = "Freestyle: Line Style"
+ bl_label = "Freestyle Line Style"
+ bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@classmethod
def poll(cls, context):
- rd = context.scene.render
- if rd.engine not in cls.COMPAT_ENGINES:
+ scene = context.scene
+ if not (scene and (scene.render.engine in cls.COMPAT_ENGINES)):
return False
+ rd = scene.render
rl = rd.layers.active
- return rl and rl.freestyle_settings.mode == "EDITOR"
+ return rd.use_freestyle and rl and rl.freestyle_settings.mode == "EDITOR"
def draw_modifier_box_header(self, box, modifier):
row = box.row()