[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20673] branches/blender2.5/blender: initial support for sequencer UI layout, anyone wants some monkey-work there are quite a few effects panels to do.

Campbell Barton ideasman42 at gmail.com
Sat Jun 6 13:34:19 CEST 2009


Revision: 20673
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20673
Author:   campbellbarton
Date:     2009-06-06 13:34:18 +0200 (Sat, 06 Jun 2009)

Log Message:
-----------
initial support for sequencer UI layout, anyone wants some monkey-work there are quite a few effects panels to do.
- buttons_context_path_sequencer() is a place holder
- ipo_frame_locked renamed to frame_locked
- added scene.sequence_editor.active_strip

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_header.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_sequence.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c

Added Paths:
-----------
    branches/blender2.5/blender/release/ui/buttons_sequencer.py

Added: branches/blender2.5/blender/release/ui/buttons_sequencer.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_sequencer.py	                        (rev 0)
+++ branches/blender2.5/blender/release/ui/buttons_sequencer.py	2009-06-06 11:34:18 UTC (rev 20673)
@@ -0,0 +1,162 @@
+
+
+import bpy
+
+def act_strip(context):
+	try:
+		print(dir(context.scene.sequence_editor.active_strip))
+		return context.scene.sequence_editor.active_strip
+	except:return None
+	
+
+class SequencerButtonsPanel(bpy.types.Panel):
+	__space_type__ = "BUTTONS_WINDOW"
+	__region_type__ = "WINDOW"
+	__context__ = "sequencer"
+
+	def poll(self, context):
+		return act_strip(context) != None
+
+class SEQUENCER_PT_edit(SequencerButtonsPanel):
+	__label__ = "Edit Strip"
+	__idname__ = "SEQUENCER_PT_edit"
+
+	def draw(self, context):
+		layout = self.layout
+		
+		strip = act_strip(context)
+		
+		row = layout.row()
+		row.itemR(strip, "name")
+		
+		row = layout.row()
+		row.itemR(strip, "blend_mode")
+		
+		row = layout.row()
+		row.itemR(strip, "blend_opacity")
+		
+		row = layout.row()
+		row.itemR(strip, "mute")
+		row.itemR(strip, "lock")
+		row.itemR(strip, "frame_locked")
+		
+		row = layout.row()
+		row.itemR(strip, "channel")
+		row.itemR(strip, "start_frame")
+		
+		row = layout.row()
+		row.itemR(strip, "length")
+		row.itemR(strip, "type")
+		
+class SEQUENCER_PT_effect(SequencerButtonsPanel):
+	__label__ = "Effect Strip"
+	__idname__ = "SEQUENCER_PT_effect"
+
+	def poll(self, context):
+		strip = act_strip(context)
+		if not strip:
+			return False
+		
+		# This is a crummy way to detect effects
+		return strip.type in ('REPLACE', 'CROSS', 'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER', 'GAMMA_ACROSS', 'MULTIPLY', 'OVER_DROP', 'PLUGIN', 'WIPE', 'GLOW', 'COLOR', 'SPEED')
+		
+	def draw(self, context):
+		layout = self.layout
+		
+		strip = act_strip(context)
+		
+		if strip.type == 'COLOR':
+			row = layout.row()
+			row.itemR(strip, "color")
+		# More Todo - maybe give each its own panel?
+
+class SEQUENCER_PT_input(SequencerButtonsPanel):
+	__label__ = "Strip Input"
+	__idname__ = "SEQUENCER_PT_input"
+	
+	def poll(self, context):
+		strip = act_strip(context)
+		if not strip:
+			return False
+		
+		return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META')
+	
+	def draw(self, context):
+		layout = self.layout
+		
+		strip = act_strip(context)
+		
+		row = layout.row()
+		row.itemR(strip, "directory")
+		
+		# TODO - get current element!
+		row = layout.row()
+		row.itemR(strip.elements[0], "filename")
+		
+		
+class SEQUENCER_PT_filter(SequencerButtonsPanel):
+	__label__ = "Filter"
+	__idname__ = "SEQUENCER_PT_filter"
+	
+	def poll(self, context):
+		strip = act_strip(context)
+		if not strip:
+			return False
+		
+		return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META')
+	
+	def draw(self, context):
+		layout = self.layout
+		
+		strip = act_strip(context)
+		
+		row = layout.row()
+		row.itemR(strip, "premultiply")
+		row.itemR(strip, "convert_float")
+		row.itemR(strip, "de_interlace")
+		
+		row = layout.row()
+		row.itemR(strip, "flip_x")
+		row.itemR(strip, "flip_y")
+		row.itemR(strip, "reverse_frames")
+		
+		row = layout.row()
+		row.itemR(strip, "multiply_colors")
+		row.itemR(strip, "strobe")
+		
+		row = layout.row()
+		row.itemR(strip, "use_color_balance")
+			
+	
+class SEQUENCER_PT_proxy(SequencerButtonsPanel):
+	__label__ = "Proxy"
+	__idname__ = "SEQUENCER_PT_proxy"
+	
+	def poll(self, context):
+		strip = act_strip(context)
+		if not strip:
+			return False
+		
+		return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META')
+	
+	def draw_header(self, context):
+		strip = act_strip(context)
+
+		layout = self.layout
+		
+		layout.itemR(strip, "use_proxy", text="")
+
+	def draw(self, context):
+		strip = act_strip(context)
+		
+		layout = self.layout
+		
+		row = layout.row()
+		row.itemR(strip, "proxy_custom_directory")
+		# row.itemR(strip.proxy, "dir") # TODO
+	
+bpy.types.register(SEQUENCER_PT_edit)
+bpy.types.register(SEQUENCER_PT_effect)
+bpy.types.register(SEQUENCER_PT_input)
+bpy.types.register(SEQUENCER_PT_filter)
+bpy.types.register(SEQUENCER_PT_proxy)

Modified: branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c	2009-06-06 11:26:43 UTC (rev 20672)
+++ branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c	2009-06-06 11:34:18 UTC (rev 20673)
@@ -96,6 +96,16 @@
 	return 0;
 }
 
+// XXX - place holder, need to get this working
+static int buttons_context_path_sequencer(ButsContextPath *path)
+{
+	PointerRNA *ptr= &path->ptr[path->len-1];
+
+	/* this one just verifies */
+	return RNA_struct_is_a(ptr->type, &RNA_Scene);
+}
+
+
 static int buttons_context_path_object(ButsContextPath *path)
 {
 	Scene *scene;
@@ -302,6 +312,9 @@
 		case BCONTEXT_WORLD:
 			found= buttons_context_path_world(path);
 			break;
+		case BCONTEXT_SEQUENCER:
+			found= buttons_context_path_sequencer(path); // XXX - place holder
+			break;
 		case BCONTEXT_OBJECT:
 		case BCONTEXT_PHYSICS:
 		case BCONTEXT_MODIFIER:

Modified: branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_header.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_header.c	2009-06-06 11:26:43 UTC (rev 20672)
+++ branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_header.c	2009-06-06 11:34:18 UTC (rev 20673)
@@ -182,6 +182,9 @@
 	
 	 if(!ob && !ELEM(sbuts->mainb, (float)BCONTEXT_SCENE, (float)BCONTEXT_WORLD))
 		sbuts->mainb = (float)BCONTEXT_WORLD;
+	 
+	if(!ob && !ELEM(sbuts->mainb, (float)BCONTEXT_SCENE, (float)BCONTEXT_SEQUENCER))
+		sbuts->mainb = (float)BCONTEXT_SEQUENCER;
 		
 	if((ob && ELEM5(ob->type, OB_EMPTY, OB_MBALL, OB_LAMP, OB_CAMERA, OB_ARMATURE)) && (sbuts->mainb == (float) BCONTEXT_MODIFIER))
 		sbuts->mainb = (float)BCONTEXT_DATA;
@@ -190,6 +193,7 @@
 	uiBlockBeginAlign(block);
 	uiDefIconButS(block, ROW, B_CONTEXT_SWITCH,	ICON_SCENE,			xco, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_SCENE, 0, 0, "Scene");
 	uiDefIconButS(block, ROW, B_CONTEXT_SWITCH,	ICON_WORLD,		xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_WORLD, 0, 0, "World");
+	uiDefIconButS(block, ROW, B_CONTEXT_SWITCH,	ICON_SEQUENCE,	xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_SEQUENCER, 0, 0, "Sequencer");
 	
 	// Specific panels, check on active object seletion
 	if(ob) {

Modified: branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c	2009-06-06 11:26:43 UTC (rev 20672)
+++ branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c	2009-06-06 11:34:18 UTC (rev 20673)
@@ -176,6 +176,8 @@
 		ED_region_panels(C, ar, vertical, "scene");
 	else if(sbuts->mainb == BCONTEXT_WORLD)
 		ED_region_panels(C, ar, vertical, "world");
+	else if(sbuts->mainb == BCONTEXT_SEQUENCER)
+		ED_region_panels(C, ar, vertical, "sequencer");
 	else if(sbuts->mainb == BCONTEXT_OBJECT)
 		ED_region_panels(C, ar, vertical, "object");
 	else if(sbuts->mainb == BCONTEXT_DATA)

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h	2009-06-06 11:26:43 UTC (rev 20672)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h	2009-06-06 11:34:18 UTC (rev 20673)
@@ -477,6 +477,7 @@
 #define BCONTEXT_GAME		8
 #define BCONTEXT_BONE		9
 #define BCONTEXT_MODIFIER	10
+#define BCONTEXT_SEQUENCER	11
 
 
 /* sbuts->flag */

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_sequence.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_sequence.c	2009-06-06 11:26:43 UTC (rev 20672)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_sequence.c	2009-06-06 11:34:18 UTC (rev 20673)
@@ -308,9 +308,9 @@
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MUTE);
 	RNA_def_property_ui_text(prop, "Mute", "");
 
-	prop= RNA_def_property(srna, "ipo_frame_locked", PROP_BOOLEAN, PROP_NONE);
+	prop= RNA_def_property(srna, "frame_locked", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_IPO_FRAME_LOCKED);
-	RNA_def_property_ui_text(prop, "IPO Frame Locked", "Lock the IPO coordinates to the global frame counter.");
+	RNA_def_property_ui_text(prop, "Frame Locked", "Lock the animation curve to the global frame counter.");
 
 	prop= RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LOCK);
@@ -385,6 +385,10 @@
 	RNA_def_property_struct_type(prop, "Sequence");
 	RNA_def_property_ui_text(prop, "Meta Stack", "Meta strip stack, last is currently edited meta strip.");
 	RNA_def_property_collection_funcs(prop, 0, 0, 0, "rna_SequenceEdtior_meta_stack_get", 0, 0, 0);
+	
+	prop= RNA_def_property(srna, "active_strip", PROP_POINTER, PROP_NONE);
+	RNA_def_property_pointer_sdna(prop, NULL, "act_seq");
+	RNA_def_property_ui_text(prop, "Active Strip", "Sequencers active strip");
 }
 
 static void rna_def_filter_video(StructRNA *srna)

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c	2009-06-06 11:26:43 UTC (rev 20672)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c	2009-06-06 11:34:18 UTC (rev 20673)
@@ -488,6 +488,7 @@
 		{BCONTEXT_GAME, "GAME", "Game", ""},
 		{BCONTEXT_BONE, "BONE", "Bone", ""},
 		{BCONTEXT_MODIFIER, "MODIFIER", "Modifier", ""},
+		{BCONTEXT_SEQUENCER, "SEQUENCER", "Sequencer", ""},
 		{0, NULL, NULL, NULL}};
 		
 	static EnumPropertyItem panel_alignment_items[] = {





More information about the Bf-blender-cvs mailing list