Changeset View
Standalone View
release/scripts/startup/bl_ui/space_sequencer.py
| Context not available. | |||||
| col.prop(strip, "color_multiply", text="Multiply") | col.prop(strip, "color_multiply", text="Multiply") | ||||
| layout.prop(strip, "use_float", text="Convert to Float") | layout.prop(strip, "use_float", text="Convert to Float") | ||||
| class SEQUENCER_PT_proxy_global(SequencerButtonsPanel, Panel): | |||||
ISS: These are details, but keep class names and displayed text consistent - not necessarily… | |||||
| bl_label = "Proxy settings" | |||||
Done Inline ActionsPanel with this label already exists. Specify, that this is panel for "global" settings. I would rather use "Proxy settings" or "Sequencer proxy settings". ISS: Panel with this label already exists. Specify, that this is panel for "global" settings. I… | |||||
| bl_category = "Proxy" | |||||
Done Inline ActionsI would create a new category for both proxy panels. "Proxy" would be good name.
ISS: I would create a new category for both proxy panels. "Proxy" would be good name.
- It makes… | |||||
| class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel): | @classmethod | ||||
| bl_label = "Proxy/Timecode" | def poll(cls, context): | ||||
| bl_category = "Strip" | return cls.has_sequencer(context) | ||||
| def draw(self, context): | |||||
Done Inline ActionsYou can do return cls.has_sequencer(context) ISS: You can do `return cls.has_sequencer(context)`
Haven't seen explicit `return True` in this file. | |||||
| layout = self.layout | |||||
Done Inline ActionsThis method placeholder should be removed, if not used ISS: This method placeholder should be removed, if not used | |||||
| ed = context.scene.sequence_editor | |||||
| flow = layout.column_flow() | |||||
| flow.prop(ed, "proxy_storage", text="Storage") | |||||
| if ed.proxy_storage == 'PROJECT': | |||||
| flow.prop(ed, "proxy_dir", text="Directory") | |||||
| col = layout.column() | |||||
| col.operator("sequencer.enable_proxies") | |||||
| col.operator("sequencer.rebuild_proxy") | |||||
| class SEQUENCER_PT_proxy_strip(SequencerButtonsPanel, Panel): | |||||
ISSUnsubmitted Done Inline ActionsThese are details, but keep class names and displayed text consistent - not necessarily verbatim, but at least word order ISS: These are details, but keep class names and displayed text consistent - not necessarily… | |||||
| bl_label = "Strip Proxy/Timecode" | |||||
| bl_category = "Proxy" | |||||
Done Inline ActionsIssue here is, that these operators do work on selection. Even worse is, that they don't have poll function defined, so user can click it and it makes a visible action, that has no effect. There are few ways to solve this:
Any of first two options will do for me. ISS: Issue here is, that these operators do work on selection. Even worse is, that they don't have… | |||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
Done Inline ActionsI would also change class name SEQUENCER_PT_strip_proxy ISS: I would also change class name `SEQUENCER_PT_strip_proxy` | |||||
Done Inline ActionsI would create a new category for both proxy panels. "Proxy" would be good name. ISS: I would create a new category for both proxy panels. "Proxy" would be good name. | |||||
| Context not available. | |||||
| if not strip: | if not strip: | ||||
| return False | return False | ||||
| return strip.type in {'MOVIE', 'IMAGE', 'SCENE', 'META', 'MULTICAM'} | return strip.type in {'MOVIE', 'IMAGE', 'META'} | ||||
| def draw_header(self, context): | def draw_header(self, context): | ||||
| strip = act_strip(context) | strip = act_strip(context) | ||||
Done Inline ActionsInclude also image and meta type. Images:
Meta will build proxies for included movies. ISS: Include also image and meta type.
Images:
- it has to be supported somehow
- it works and… | |||||
| Context not available. | |||||
| proxy = strip.proxy | proxy = strip.proxy | ||||
| flow = layout.column_flow() | flow = layout.column_flow() | ||||
| flow.prop(ed, "proxy_storage", text="Storage") | if ed.proxy_storage == 'PER_STRIP': | ||||
| if ed.proxy_storage == 'PROJECT': | |||||
| flow.prop(ed, "proxy_dir", text="Directory") | |||||
| else: | |||||
| flow.prop(proxy, "use_proxy_custom_directory") | flow.prop(proxy, "use_proxy_custom_directory") | ||||
| flow.prop(proxy, "use_proxy_custom_file") | flow.prop(proxy, "use_proxy_custom_file") | ||||
| Context not available. | |||||
| col.prop(proxy, "timecode") | col.prop(proxy, "timecode") | ||||
| col = layout.column() | |||||
| col.operator("sequencer.enable_proxies") | |||||
| col.operator("sequencer.rebuild_proxy") | |||||
| class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, Panel): | class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, Panel): | ||||
| bl_label = "Scene Preview/Render" | bl_label = "Scene Preview/Render" | ||||
| Context not available. | |||||
| SEQUENCER_PT_scene, | SEQUENCER_PT_scene, | ||||
| SEQUENCER_PT_mask, | SEQUENCER_PT_mask, | ||||
| SEQUENCER_PT_filter, | SEQUENCER_PT_filter, | ||||
| SEQUENCER_PT_proxy, | SEQUENCER_PT_proxy_global, | ||||
| SEQUENCER_PT_proxy_strip, | |||||
| SEQUENCER_PT_preview, | SEQUENCER_PT_preview, | ||||
| SEQUENCER_PT_view, | SEQUENCER_PT_view, | ||||
| SEQUENCER_PT_view_safe_areas, | SEQUENCER_PT_view_safe_areas, | ||||
| Context not available. | |||||
These are details, but keep class names and displayed text consistent - not necessarily verbatim, but at least word order