diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-01-19 08:30:35 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-01-19 08:47:57 +0300 |
commit | 09c83d6fea0fc55b54900329c1b81d992d814b9e (patch) | |
tree | bacfcef098e078ee6afb0ce8fc7e417a3ccade00 /release | |
parent | 9f54a73b3283177d478110977c907955ef86e77a (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')
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" |