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:
authorCampbell Barton <ideasman42@gmail.com>2015-01-19 08:30:35 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-01-19 08:47:57 +0300
commit09c83d6fea0fc55b54900329c1b81d992d814b9e (patch)
treebacfcef098e078ee6afb0ce8fc7e417a3ccade00 /release
parent9f54a73b3283177d478110977c907955ef86e77a (diff)
Viewport: Add adjustable safe areas, 3d-view & VSE
Also adds safe-area presets. D325 by Diego Gangl with own edits.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py7
-rw-r--r--release/scripts/presets/safe_areas/16_colon_9.py7
-rw-r--r--release/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py7
-rw-r--r--release/scripts/startup/bl_operators/presets.py20
-rw-r--r--release/scripts/startup/bl_ui/properties_data_camera.py57
-rw-r--r--release/scripts/startup/bl_ui/space_sequencer.py31
6 files changed, 126 insertions, 3 deletions
diff --git a/release/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py b/release/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py
new file mode 100644
index 00000000000..e486b413de8
--- /dev/null
+++ b/release/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py
@@ -0,0 +1,7 @@
+import bpy
+safe_areas = bpy.context.scene.safe_areas
+
+safe_areas.title = (0.035, 0.035)
+safe_areas.action = (0.1, 0.05)
+safe_areas.title_center = (0.15, 0.05)
+safe_areas.action_center = (0.1, 0.05)
diff --git a/release/scripts/presets/safe_areas/16_colon_9.py b/release/scripts/presets/safe_areas/16_colon_9.py
new file mode 100644
index 00000000000..221b8db84bd
--- /dev/null
+++ b/release/scripts/presets/safe_areas/16_colon_9.py
@@ -0,0 +1,7 @@
+import bpy
+safe_areas = bpy.context.scene.safe_areas
+
+safe_areas.title = (0.035, 0.035)
+safe_areas.action = (0.1, 0.05)
+safe_areas.title_center = (0.0, 0.0)
+safe_areas.action_center = (0.0, 0.0)
diff --git a/release/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py b/release/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py
new file mode 100644
index 00000000000..c10bc6cf285
--- /dev/null
+++ b/release/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py
@@ -0,0 +1,7 @@
+import bpy
+safe_areas = bpy.context.scene.safe_areas
+
+safe_areas.title = (0.035, 0.035)
+safe_areas.action = (0.1, 0.05)
+safe_areas.title_center = (0.175, 0.05)
+safe_areas.action_center = (0.15, 0.05)
diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py
index f89792bea6e..5e3485a27a4 100644
--- a/release/scripts/startup/bl_operators/presets.py
+++ b/release/scripts/startup/bl_operators/presets.py
@@ -277,6 +277,26 @@ class AddPresetCamera(AddPresetBase, Operator):
return preset_values
+class AddPresetSafeAreas(AddPresetBase, Operator):
+ """Add or remove a Safe Areas Preset"""
+ bl_idname = "safe_areas.preset_add"
+ bl_label = "Add Safe Area Preset"
+ preset_menu = "SAFE_AREAS_MT_presets"
+
+ preset_defines = [
+ "safe_areas = bpy.context.scene.safe_areas"
+ ]
+
+ preset_values = [
+ "safe_areas.title",
+ "safe_areas.action",
+ "safe_areas.title_center",
+ "safe_areas.action_center",
+ ]
+
+ preset_subdir = "safe_areas"
+
+
class AddPresetSSS(AddPresetBase, Operator):
"""Add or remove a Subsurface Scattering Preset"""
bl_idname = "material.sss_preset_add"
diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py
index fee3e589074..9c94c9cf7d5 100644
--- a/release/scripts/startup/bl_ui/properties_data_camera.py
+++ b/release/scripts/startup/bl_ui/properties_data_camera.py
@@ -41,6 +41,14 @@ class CAMERA_MT_presets(Menu):
draw = Menu.draw_preset
+class SAFE_AREAS_MT_presets(Menu):
+ bl_label = "Camera Presets"
+ preset_subdir = "safe_areas"
+ preset_operator = "script.execute_preset"
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+ draw = Menu.draw_preset
+
+
class DATA_PT_context_camera(CameraButtonsPanel, Panel):
bl_label = ""
bl_options = {'HIDE_HEADER'}
@@ -195,7 +203,7 @@ class DATA_PT_camera_display(CameraButtonsPanel, Panel):
col = split.column()
col.prop(cam, "show_limits", text="Limits")
col.prop(cam, "show_mist", text="Mist")
- col.prop(cam, "show_title_safe", text="Safe Areas")
+
col.prop(cam, "show_sensor", text="Sensor")
col.prop(cam, "show_name", text="Name")
@@ -210,10 +218,57 @@ class DATA_PT_camera_display(CameraButtonsPanel, Panel):
sub.prop(cam, "passepartout_alpha", text="Alpha", slider=True)
+class DATA_PT_camera_safe_areas(CameraButtonsPanel, Panel):
+ bl_label = "Safe Areas"
+ bl_options = {'DEFAULT_CLOSED'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+
+ def draw_header(self, context):
+ cam = context.camera
+
+ self.layout.prop(cam, "show_safe_areas", text="")
+
+ def draw(self, context):
+ layout = self.layout
+ cam = context.camera
+
+ draw_display_safe_settings(layout, cam)
+
+
class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, Panel):
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
_context_path = "object.data"
_property_type = bpy.types.Camera
+
+def draw_display_safe_settings(layout, settings):
+
+ safe_data = bpy.context.scene.safe_areas
+ show_safe_areas = settings.show_safe_areas
+ show_safe_center = settings.show_safe_center
+
+ split = layout.split()
+
+ col = split.column()
+ row = col.row(align=True)
+ row.menu("SAFE_AREAS_MT_presets", text=bpy.types.SAFE_AREAS_MT_presets.bl_label)
+ row.operator("safe_areas.preset_add", text="", icon='ZOOMIN')
+ row.operator("safe_areas.preset_add", text="", icon='ZOOMOUT').remove_active = True
+
+ col = split.column()
+ col.prop(settings, "show_safe_center", text="Center-Cut Safe Areas")
+
+ split = layout.split()
+ col = split.column()
+ col.active = show_safe_areas
+ col.prop(safe_data, "title", slider=True)
+ col.prop(safe_data, "action", slider=True)
+
+ col = split.column()
+ col.active = show_safe_areas and show_safe_center
+ col.prop(safe_data, "title_center", slider=True)
+ col.prop(safe_data, "action_center", slider=True)
+
+
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index 66b3cbe73d9..bf63b847996 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -22,6 +22,7 @@ from bpy.types import Header, Menu, Panel
from bl_ui.properties_grease_pencil_common import GreasePencilDataPanel, GreasePencilToolsPanel
from bpy.app.translations import pgettext_iface as iface_
+from bl_ui.properties_data_camera import draw_display_safe_settings
def act_strip(context):
try:
@@ -205,7 +206,7 @@ class SEQUENCER_MT_view(Menu):
if is_preview:
if st.display_mode == 'IMAGE':
- layout.prop(st, "show_safe_margin")
+ layout.prop(st, "show_safe_areas")
elif st.display_mode == 'WAVEFORM':
layout.prop(st, "show_separate_color")
@@ -973,12 +974,38 @@ class SEQUENCER_PT_view(SequencerButtonsPanel_Output, Panel):
col = layout.column()
if st.display_mode == 'IMAGE':
col.prop(st, "draw_overexposed")
- col.prop(st, "show_safe_margin")
+ col.separator()
+
elif st.display_mode == 'WAVEFORM':
col.prop(st, "show_separate_color")
+
+ col = layout.column()
+ col.separator()
col.prop(st, "proxy_render_size")
+class SEQUENCER_PT_view_safe_areas(SequencerButtonsPanel_Output, Panel):
+ bl_label = "Safe Areas"
+ bl_options = {'DEFAULT_CLOSED'}
+
+ @classmethod
+ def poll(cls, context):
+ st = context.space_data
+ is_preview = st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'}
+ return is_preview and (st.display_mode == 'IMAGE')
+
+ def draw_header(self, context):
+ st = context.space_data
+
+ self.layout.prop(st, "show_safe_areas", text="")
+
+ def draw(self, context):
+ layout = self.layout
+ st = context.space_data
+
+ draw_display_safe_settings(layout, st)
+
+
class SEQUENCER_PT_modifiers(SequencerButtonsPanel, Panel):
bl_label = "Modifiers"