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:
Diffstat (limited to 'release/scripts/ui/space_sequencer.py')
-rw-r--r--release/scripts/ui/space_sequencer.py457
1 files changed, 237 insertions, 220 deletions
diff --git a/release/scripts/ui/space_sequencer.py b/release/scripts/ui/space_sequencer.py
index 4680c5c1d19..ec607629757 100644
--- a/release/scripts/ui/space_sequencer.py
+++ b/release/scripts/ui/space_sequencer.py
@@ -50,10 +50,10 @@ class SEQUENCER_HT_header(bpy.types.Header):
sub.menu("SEQUENCER_MT_add")
sub.menu("SEQUENCER_MT_strip")
- layout.prop(st, "view_type", text="")
+ layout.prop(st, "view_type", expand=True, text="")
if (st.view_type == 'PREVIEW') or (st.view_type == 'SEQUENCER_PREVIEW'):
- layout.prop(st, "display_mode", text="")
+ layout.prop(st, "display_mode", expand=True, text="")
if (st.view_type == 'SEQUENCER'):
row = layout.row(align=True)
@@ -69,6 +69,14 @@ class SEQUENCER_HT_header(bpy.types.Header):
else:
layout.prop(st, "display_channel", text="Channel")
+ ed = context.scene.sequence_editor
+ if ed:
+ row = layout.row(align=True)
+ row.prop(ed, "show_overlay", text="", icon='GHOST_ENABLED')
+ if ed.show_overlay:
+ row.prop(ed, "overlay_frame", text="")
+ row.prop(ed, "overlay_lock", text="", icon='LOCKED')
+
class SEQUENCER_MT_view_toggle(bpy.types.Menu):
bl_label = "View Type"
@@ -90,6 +98,10 @@ class SEQUENCER_MT_view(bpy.types.Menu):
st = context.space_data
layout.column()
+
+ layout.operator("sequencer.properties", icon='MENU_PANEL')
+
+ layout.separator()
"""
uiBlock *block= uiBeginBlock(C, ar, "seq_viewmenu", UI_EMBOSSP);
@@ -119,21 +131,24 @@ class SEQUENCER_MT_view(bpy.types.Menu):
menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
"""
- layout.separator()
if (st.view_type == 'SEQUENCER') or (st.view_type == 'SEQUENCER_PREVIEW'):
layout.operator("sequencer.view_all", text='View all Sequences')
if (st.view_type == 'PREVIEW') or (st.view_type == 'SEQUENCER_PREVIEW'):
layout.operator_context = 'INVOKE_REGION_PREVIEW'
layout.operator("sequencer.view_all_preview", text='Fit preview in window')
layout.operator_context = 'INVOKE_DEFAULT'
+
+ # # XXX, invokes in the header view
+ # layout.operator("sequencer.view_ghost_border", text='Overlay Border')
+
layout.operator("sequencer.view_selected")
- layout.prop(st, "draw_frames")
- layout.prop(st, "show_cframe_indicator")
+ layout.prop(st, "show_frames")
+ layout.prop(st, "show_frame_indicator")
if st.display_mode == 'IMAGE':
- layout.prop(st, "draw_safe_margin")
+ layout.prop(st, "show_safe_margin")
if st.display_mode == 'WAVEFORM':
- layout.prop(st, "separate_color_preview")
+ layout.prop(st, "show_separate_color")
layout.separator()
layout.prop(st, "use_marker_sync")
@@ -217,6 +232,7 @@ class SEQUENCER_MT_add_effect(bpy.types.Menu):
layout.operator("sequencer.effect_strip_add", text="Transform").type = 'TRANSFORM'
layout.operator("sequencer.effect_strip_add", text="Color").type = 'COLOR'
layout.operator("sequencer.effect_strip_add", text="Speed Control").type = 'SPEED'
+ layout.operator("sequencer.effect_strip_add", text="Multicam Selector").type = 'MULTICAM'
class SEQUENCER_MT_strip(bpy.types.Menu):
@@ -236,6 +252,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
layout.operator("sequencer.cut", text="Cut (hard) at frame").type = 'HARD'
layout.operator("sequencer.cut", text="Cut (soft) at frame").type = 'SOFT'
layout.operator("sequencer.images_separate")
+ layout.operator("sequencer.deinterlace_selected_movies")
layout.separator()
layout.operator("sequencer.duplicate")
@@ -245,7 +262,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
if strip:
stype = strip.type
-
+
# XXX note strip.type is never equal to 'EFFECT', look at seq_type_items within rna_sequencer.c
if stype == 'EFFECT':
pass
@@ -277,6 +294,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
layout.separator()
layout.operator("sequencer.reload")
+ layout.operator("sequencer.reassign_inputs")
layout.separator()
layout.operator("sequencer.lock")
layout.operator("sequencer.unlock")
@@ -289,35 +307,45 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
layout.operator_menu_enum("sequencer.swap", "side")
+ layout.separator()
+
+ layout.operator("sequencer.swap_data")
+
-class SequencerButtonsPanel(bpy.types.Panel):
+class SequencerButtonsPanel():
bl_space_type = 'SEQUENCE_EDITOR'
bl_region_type = 'UI'
- def has_sequencer(self, context):
+ @staticmethod
+ def has_sequencer(context):
return (context.space_data.view_type == 'SEQUENCER') or (context.space_data.view_type == 'SEQUENCER_PREVIEW')
- def poll(self, context):
- return self.has_sequencer(context) and (act_strip(context) is not None)
+ @classmethod
+ def poll(cls, context):
+ return cls.has_sequencer(context) and (act_strip(context) is not None)
-class SequencerButtonsPanel_Output(bpy.types.Panel):
+class SequencerButtonsPanel_Output():
bl_space_type = 'SEQUENCE_EDITOR'
bl_region_type = 'UI'
- def has_preview(self, context):
+ @staticmethod
+ def has_preview(context):
return (context.space_data.view_type == 'PREVIEW') or (context.space_data.view_type == 'SEQUENCER_PREVIEW')
- def poll(self, context):
- return self.has_preview(context)
+ @classmethod
+ def poll(cls, context):
+ return cls.has_preview(context)
-class SEQUENCER_PT_edit(SequencerButtonsPanel):
+class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel):
bl_label = "Edit Strip"
def draw(self, context):
layout = self.layout
+ scene = context.scene
render = context.scene.render
+ frame_current = scene.frame_current
strip = act_strip(context)
split = layout.split(percentage=0.3)
@@ -330,69 +358,39 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel):
split = layout.split(percentage=0.3)
split.label(text="Blend:")
- split.prop(strip, "blend_mode", text="")
-
- row = layout.row()
- if strip.mute == True:
- row.prop(strip, "mute", toggle=True, icon='RESTRICT_VIEW_ON', text="")
- elif strip.mute is False:
- row.prop(strip, "mute", toggle=True, icon='RESTRICT_VIEW_OFF', text="")
+ split.prop(strip, "blend_type", text="")
+ row = layout.row(align=True)
sub = row.row()
sub.active = (not strip.mute)
-
- sub.prop(strip, "blend_opacity", text="Opacity", slider=True)
-
- row = layout.row()
- row.prop(strip, "lock")
- row.prop(strip, "frame_locked", text="Frame Lock")
+ sub.prop(strip, "blend_alpha", text="Opacity", slider=True)
+ row.prop(strip, "mute", toggle=True, icon='RESTRICT_VIEW_ON' if strip.mute else 'RESTRICT_VIEW_OFF', text="")
+ row.prop(strip, "lock", toggle=True, icon='LOCKED' if strip.lock else 'UNLOCKED', text="")
col = layout.column()
- col.enabled = not strip.lock
- col.prop(strip, "channel")
- col.prop(strip, "frame_start")
- subrow = col.split(percentage=0.66)
- subrow.prop(strip, "length")
- subrow.label(text="%.2f sec" % (strip.length / (render.fps / render.fps_base)))
-
- col = layout.column(align=True)
- col.label(text="Offset:")
- col.prop(strip, "frame_offset_start", text="Start")
- col.prop(strip, "frame_offset_end", text="End")
+ sub = col.column()
+ sub.enabled = not strip.lock
+ sub.prop(strip, "channel")
+ sub.prop(strip, "frame_start")
+ sub.prop(strip, "frame_final_duration")
col = layout.column(align=True)
- col.label(text="Still:")
- col.prop(strip, "frame_still_start", text="Start")
- col.prop(strip, "frame_still_end", text="End")
+ row = col.row()
+ row.label(text="Final Length: %s" % bpy.utils.smpte_from_frame(strip.frame_final_duration))
+ row = col.row()
+ row.active = (frame_current >= strip.frame_start and frame_current <= strip.frame_start + strip.frame_duration)
+ row.label(text="Playhead: %d" % (frame_current - strip.frame_start))
+ col.label(text="Frame Offset %d:%d" % (strip.frame_offset_start, strip.frame_offset_end))
+ col.label(text="Frame Still %d:%d" % (strip.frame_still_start, strip.frame_still_end))
-class SEQUENCER_PT_preview(bpy.types.Panel):
- bl_label = "Scene Preview/Render"
- bl_space_type = 'SEQUENCE_EDITOR'
- bl_region_type = 'UI'
-
- def draw(self, context):
- layout = self.layout
- render = context.scene.render
- col = layout.column()
- col.prop(render, "use_sequencer_gl_preview", text="Open GL Preview")
- col = layout.column()
- col.active = render.use_sequencer_gl_preview
- col.prop(render, "sequencer_gl_preview", text="")
-
- col = layout.column()
- col.prop(render, "use_sequencer_gl_render", text="Open GL Render")
- col = layout.column()
- col.active = render.use_sequencer_gl_render
- col.prop(render, "sequencer_gl_render", text="")
-
-
-class SEQUENCER_PT_effect(SequencerButtonsPanel):
+class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
bl_label = "Effect Strip"
- def poll(self, context):
- if not self.has_sequencer(context):
+ @classmethod
+ def poll(cls, context):
+ if not cls.has_sequencer(context):
return False
strip = act_strip(context)
@@ -402,7 +400,8 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
return strip.type in ('ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
'PLUGIN',
- 'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED')
+ 'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED',
+ 'MULTICAM')
def draw(self, context):
layout = self.layout
@@ -429,31 +428,58 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
flow.prop(strip, "threshold", slider=True)
flow.prop(strip, "clamp", slider=True)
flow.prop(strip, "boost_factor")
- flow.prop(strip, "blur_distance")
+ flow.prop(strip, "blur_radius")
row = layout.row()
row.prop(strip, "quality", slider=True)
- row.prop(strip, "only_boost")
+ row.prop(strip, "use_only_boost")
elif strip.type == 'SPEED':
layout.prop(strip, "global_speed")
flow = layout.column_flow()
- flow.prop(strip, "curve_velocity")
- flow.prop(strip, "curve_compress_y")
- flow.prop(strip, "frame_blending")
+ flow.prop(strip, "use_curve_velocity")
+ flow.prop(strip, "use_curve_compress_y")
+ flow.prop(strip, "use_frame_blend")
elif strip.type == 'TRANSFORM':
self.draw_panel_transform(strip)
+ elif strip.type == "MULTICAM":
+ layout.prop(strip, "multicam_source")
+
+ row = layout.row(align=True)
+ sub = row.row()
+ sub.scale_x = 2.0
+
+ sub.operator("screen.animation_play", text="", icon='PAUSE' if context.screen.is_animation_playing else 'PLAY')
+
+ row.label("Cut To")
+ for i in range(1, strip.channel):
+ row.operator("sequencer.cut_multicam", text=str(i)).camera = i
+
col = layout.column(align=True)
if strip.type == 'SPEED':
col.prop(strip, "speed_fader", text="Speed fader")
elif strip.type in ('CROSS', 'GAMMA_CROSS', 'PLUGIN', 'WIPE'):
- col.prop(strip, "use_effect_default_fade", "Default fade")
- if not strip.use_effect_default_fade:
+ col.prop(strip, "use_default_fade", "Default fade")
+ if not strip.use_default_fade:
col.prop(strip, "effect_fader", text="Effect fader")
+
+ layout.prop(strip, "use_translation", text="Image Offset:")
+ if strip.use_translation:
+ col = layout.column(align=True)
+ col.prop(strip.transform, "offset_x", text="X")
+ col.prop(strip.transform, "offset_y", text="Y")
+
+ layout.prop(strip, "use_crop", text="Image Crop:")
+ if strip.use_crop:
+ col = layout.column(align=True)
+ col.prop(strip.crop, "max_y")
+ col.prop(strip.crop, "min_x")
+ col.prop(strip.crop, "min_y")
+ col.prop(strip.crop, "max_x")
def draw_panel_transform(self, strip):
layout = self.layout
@@ -469,8 +495,8 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
layout.separator()
col = layout.column(align=True)
- col.prop(strip, "uniform_scale")
- if (strip.uniform_scale):
+ col.prop(strip, "use_uniform_scale")
+ if (strip.use_uniform_scale):
col = layout.column(align=True)
col.prop(strip, "scale_start_x", text="Scale")
else:
@@ -486,116 +512,87 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
col.prop(strip, "rotation_start", text="Rotation")
-class SEQUENCER_PT_input(SequencerButtonsPanel):
+class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel):
bl_label = "Strip Input"
- def poll(self, context):
- if not self.has_sequencer(context):
+ @classmethod
+ def poll(cls, context):
+ if not cls.has_sequencer(context):
return False
strip = act_strip(context)
if not strip:
return False
- return strip.type in ('MOVIE', 'IMAGE')
-
- def draw_filename(self, context):
- pass
+ return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META',
+ 'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
+ 'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
+ 'PLUGIN',
+ 'WIPE', 'GLOW', 'TRANSFORM', 'COLOR',
+ 'MULTICAM', 'SPEED')
def draw(self, context):
layout = self.layout
strip = act_strip(context)
- self.draw_filename(context)
+ seq_type = strip.type
+
+ # draw a filename if we have one
+ if seq_type == 'IMAGE':
+ split = layout.split(percentage=0.2)
+ col = split.column()
+ col.label(text="Path:")
+ col = split.column()
+ col.prop(strip, "directory", text="")
+
+ # Current element for the filename
+
+ elem = strip.getStripElem(context.scene.frame_current)
+ if elem:
+ split = layout.split(percentage=0.2)
+ col = split.column()
+ col.label(text="File:")
+ col = split.column()
+ col.prop(elem, "filename", text="") # strip.elements[0] could be a fallback
+
+ elif seq_type == 'MOVIE':
+ split = layout.split(percentage=0.2)
+ col = split.column()
+ col.label(text="Path:")
+ col = split.column()
+ col.prop(strip, "filepath", text="")
+ col.prop(strip, "mpeg_preseek", text="MPEG Preseek")
+ # TODO, sound???
+ # end drawing filename
+
layout.prop(strip, "use_translation", text="Image Offset:")
- if strip.transform:
+ if strip.use_translation:
col = layout.column(align=True)
- col.active = strip.use_translation
col.prop(strip.transform, "offset_x", text="X")
col.prop(strip.transform, "offset_y", text="Y")
layout.prop(strip, "use_crop", text="Image Crop:")
- if strip.crop:
+ if strip.use_crop:
col = layout.column(align=True)
- col.active = strip.use_crop
- col.prop(strip.crop, "top")
- col.prop(strip.crop, "left")
- col.prop(strip.crop, "bottom")
- col.prop(strip.crop, "right")
+ col.prop(strip.crop, "max_y")
+ col.prop(strip.crop, "min_x")
+ col.prop(strip.crop, "min_y")
+ col.prop(strip.crop, "max_x")
col = layout.column(align=True)
col.label(text="Trim Duration:")
- col.prop(strip, "animation_start_offset", text="Start")
- col.prop(strip, "animation_end_offset", text="End")
-
-
-class SEQUENCER_PT_input_movie(SEQUENCER_PT_input):
- bl_label = "Strip Input"
-
- def poll(self, context):
- if not self.has_sequencer(context):
- return False
-
- strip = act_strip(context)
- if not strip:
- return False
-
- return strip.type == 'MOVIE'
-
- def draw_filename(self, context):
- layout = self.layout
-
- strip = act_strip(context)
-
- split = layout.split(percentage=0.2)
- col = split.column()
- col.label(text="Path:")
- col = split.column()
- col.prop(strip, "filepath", text="")
-
-
-class SEQUENCER_PT_input_image(SEQUENCER_PT_input):
- bl_label = "Strip Input"
-
- def poll(self, context):
- if not self.has_sequencer(context):
- return False
-
- strip = act_strip(context)
- if not strip:
- return False
-
- return strip.type == 'IMAGE'
-
- def draw_filename(self, context):
- layout = self.layout
-
- strip = act_strip(context)
-
- split = layout.split(percentage=0.2)
- col = split.column()
- col.label(text="Path:")
- col = split.column()
- col.prop(strip, "directory", text="")
-
- # Current element for the filename
-
- elem = strip.getStripElem(context.scene.frame_current)
- if elem:
- split = layout.split(percentage=0.2)
- col = split.column()
- col.label(text="File:")
- col = split.column()
- col.prop(elem, "filename", text="") # strip.elements[0] could be a fallback
+ col.prop(strip, "frame_offset_start", text="Start")
+ col.prop(strip, "frame_offset_end", text="End")
-class SEQUENCER_PT_sound(SequencerButtonsPanel):
+class SEQUENCER_PT_sound(SequencerButtonsPanel, bpy.types.Panel):
bl_label = "Sound"
- def poll(self, context):
- if not self.has_sequencer(context):
+ @classmethod
+ def poll(cls, context):
+ if not cls.has_sequencer(context):
return False
strip = act_strip(context)
@@ -620,16 +617,23 @@ class SEQUENCER_PT_sound(SequencerButtonsPanel):
else:
row.operator("sound.pack", icon='UGLYPACKAGE', text="Pack")
- row.prop(strip.sound, "caching")
+ row.prop(strip.sound, "use_memory_cache")
layout.prop(strip, "volume")
+ layout.prop(strip, "attenuation")
+
+ col = layout.column(align=True)
+ col.label(text="Trim Duration:")
+ col.prop(strip, "animation_offset_start", text="Start")
+ col.prop(strip, "animation_offset_end", text="End")
-class SEQUENCER_PT_scene(SequencerButtonsPanel):
+class SEQUENCER_PT_scene(SequencerButtonsPanel, bpy.types.Panel):
bl_label = "Scene"
- def poll(self, context):
- if not self.has_sequencer(context):
+ @classmethod
+ def poll(cls, context):
+ if not cls.has_sequencer(context):
return False
strip = act_strip(context)
@@ -649,18 +653,24 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel):
layout.template_ID(strip, "scene_camera")
-class SEQUENCER_PT_filter(SequencerButtonsPanel):
+class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel):
bl_label = "Filter"
- def poll(self, context):
- if not self.has_sequencer(context):
+ @classmethod
+ def poll(cls, context):
+ if not cls.has_sequencer(context):
return False
strip = act_strip(context)
if not strip:
return False
- return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META')
+ return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META',
+ 'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
+ 'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
+ 'PLUGIN',
+ 'WIPE', 'GLOW', 'TRANSFORM', 'COLOR',
+ 'MULTICAM', 'SPEED')
def draw(self, context):
layout = self.layout
@@ -670,50 +680,54 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel):
col = layout.column()
col.label(text="Video:")
col.prop(strip, "strobe")
- col.prop(strip, "de_interlace")
+
+ row = layout.row()
+ row.label(text="Flip:")
+ row.prop(strip, "use_flip_x", text="X")
+ row.prop(strip, "use_flip_y", text="Y")
col = layout.column()
- col.label(text="Colors:")
- col.prop(strip, "multiply_colors", text="Multiply")
- col.prop(strip, "premultiply")
- col.prop(strip, "convert_float")
+ col.prop(strip, "use_reverse_frames", text="Backwards")
+ col.prop(strip, "use_deinterlace")
col = layout.column()
- col.label(text="Flip:")
- col.prop(strip, "flip_x", text="X")
- col.prop(strip, "flip_y", text="Y")
- col.prop(strip, "reverse_frames", text="Backwards")
+ col.label(text="Colors:")
+ col.prop(strip, "color_saturation", text="Saturation")
+ col.prop(strip, "color_multiply", text="Multiply")
+ col.prop(strip, "use_premultiply")
+ col.prop(strip, "use_float")
layout.prop(strip, "use_color_balance")
- if strip.color_balance: # TODO - need to add this somehow
+ if strip.use_color_balance and strip.color_balance: # TODO - need to add this somehow
row = layout.row()
row.active = strip.use_color_balance
col = row.column()
- col.template_color_wheel(strip.color_balance, "lift", value_slider=False)
+ col.template_color_wheel(strip.color_balance, "lift", value_slider=False, cubic=True)
col.row().prop(strip.color_balance, "lift")
- col.prop(strip.color_balance, "inverse_lift", text="Inverse")
+ col.prop(strip.color_balance, "invert_lift", text="Inverse")
col = row.column()
- col.template_color_wheel(strip.color_balance, "gamma", value_slider=False)
+ col.template_color_wheel(strip.color_balance, "gamma", value_slider=False, lock_luminosity=True, cubic=True)
col.row().prop(strip.color_balance, "gamma")
- col.prop(strip.color_balance, "inverse_gamma", text="Inverse")
+ col.prop(strip.color_balance, "invert_gamma", text="Inverse")
col = row.column()
- col.template_color_wheel(strip.color_balance, "gain", value_slider=False)
+ col.template_color_wheel(strip.color_balance, "gain", value_slider=False, lock_luminosity=True, cubic=True)
col.row().prop(strip.color_balance, "gain")
- col.prop(strip.color_balance, "inverse_gain", text="Inverse")
+ col.prop(strip.color_balance, "invert_gain", text="Inverse")
-class SEQUENCER_PT_proxy(SequencerButtonsPanel):
+class SEQUENCER_PT_proxy(SequencerButtonsPanel, bpy.types.Panel):
bl_label = "Proxy"
- def poll(self, context):
- if not self.has_sequencer(context):
+ @classmethod
+ def poll(cls, context):
+ if not cls.has_sequencer(context):
return False
strip = act_strip(context)
if not strip:
return False
- return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META')
+ return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META', 'MULTICAM')
def draw_header(self, context):
strip = act_strip(context)
@@ -726,58 +740,61 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel):
strip = act_strip(context)
flow = layout.column_flow()
- flow.prop(strip, "proxy_custom_directory")
+ flow.prop(strip, "use_proxy_custom_directory")
+ flow.prop(strip, "use_proxy_custom_file")
if strip.proxy: # TODO - need to add this somehow
- flow.prop(strip.proxy, "directory")
- flow.prop(strip.proxy, "file")
+ if strip.proxy_custom_directory and not strip.use_proxy_custom_file:
+ flow.prop(strip.proxy, "directory")
+ if strip.use_proxy_custom_file:
+ flow.prop(strip.proxy, "filepath")
-class SEQUENCER_PT_view(SequencerButtonsPanel_Output):
- bl_label = "View Settings"
+class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel):
+ bl_label = "Scene Preview/Render"
+ bl_space_type = 'SEQUENCE_EDITOR'
+ bl_region_type = 'UI'
def draw(self, context):
layout = self.layout
+ render = context.scene.render
- st = context.space_data
+ col = layout.column()
+ col.prop(render, "use_sequencer_gl_preview", text="Open GL Preview")
+ col = layout.column()
+ col.active = render.use_sequencer_gl_preview
+ col.prop(render, "sequencer_gl_preview", text="")
+ '''
+ col = layout.column()
+ col.prop(render, "use_sequencer_gl_render", text="Open GL Render")
col = layout.column()
- col.prop(st, "draw_overexposed") # text="Zebra"
- col.prop(st, "draw_safe_margin")
+ col.active = render.use_sequencer_gl_render
+ col.prop(render, "sequencer_gl_render", text="")
+ '''
-classes = [
- SEQUENCER_HT_header, # header/menu classes
- SEQUENCER_MT_view,
- SEQUENCER_MT_view_toggle,
- SEQUENCER_MT_select,
- SEQUENCER_MT_marker,
- SEQUENCER_MT_add,
- SEQUENCER_MT_add_effect,
- SEQUENCER_MT_strip,
+class SEQUENCER_PT_view(SequencerButtonsPanel_Output, bpy.types.Panel):
+ bl_label = "View Settings"
- SEQUENCER_PT_edit, # sequencer panels
- SEQUENCER_PT_preview,
- SEQUENCER_PT_effect,
- SEQUENCER_PT_input_movie,
- SEQUENCER_PT_input_image,
- SEQUENCER_PT_sound,
- SEQUENCER_PT_scene,
- SEQUENCER_PT_filter,
- SEQUENCER_PT_proxy,
+ def draw(self, context):
+ layout = self.layout
- SEQUENCER_PT_view] # view panels
+ st = context.space_data
+ col = layout.column()
+ if st.display_mode == 'IMAGE':
+ col.prop(st, "draw_overexposed") # text="Zebra"
+ col.prop(st, "show_safe_margin")
+ if st.display_mode == 'WAVEFORM':
+ col.prop(st, "show_separate_color")
+ col.prop(st, "proxy_render_size")
def register():
- register = bpy.types.register
- for cls in classes:
- register(cls)
+ pass
def unregister():
- unregister = bpy.types.unregister
- for cls in classes:
- unregister(cls)
+ pass
if __name__ == "__main__":
register()