[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30664] trunk/blender/source/blender/ makesrna/intern/rna_sequencer.c: Bugfix: [#21479] Insert Keyframe in some Sequence strip properties does

Peter Schlaile peter at schlaile.de
Fri Jul 23 19:48:16 CEST 2010


Revision: 30664
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30664
Author:   schlaile
Date:     2010-07-23 19:48:16 +0200 (Fri, 23 Jul 2010)

Log Message:
-----------
Bugfix: [#21479] Insert Keyframe in some Sequence strip properties does 
nothing

This fixes Crop and Transform the same hacky way like Color Balance.

Will do a real fix, if I find a clever way. (Those structures must 
provide a Sequence struct backpointer!!)

Cheers,
Peter

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c	2010-07-23 17:26:00 UTC (rev 30663)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c	2010-07-23 17:48:16 UTC (rev 30664)
@@ -253,6 +253,70 @@
 		seq->flag ^= SEQ_USE_CROP;
 	}
 }
+
+static int transform_seq_cmp_cb(Sequence *seq, void *arg_pt)
+{
+	struct { Sequence *seq; void *transform; } *data= arg_pt;
+
+	if(seq->strip && seq->strip->transform == data->transform) {
+		data->seq= seq;
+		return -1; /* done so bail out */
+	}
+	return 1;
+}
+
+static char *rna_SequenceTransform_path(PointerRNA *ptr)
+{
+	Scene *scene= ptr->id.data;
+	Editing *ed= seq_give_editing(scene, FALSE);
+	Sequence *seq;
+
+	struct { Sequence *seq; void *transform; } data;
+	data.seq= NULL;
+	data.transform= ptr->data;
+
+	/* irritating we need to search for our sequence! */
+	seqbase_recursive_apply(&ed->seqbase, transform_seq_cmp_cb, &data);
+	seq= data.seq;
+
+	if (seq && seq->name+2)
+		return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].transform", seq->name+2);
+	else
+		return BLI_strdup("");
+}
+
+static int crop_seq_cmp_cb(Sequence *seq, void *arg_pt)
+{
+	struct { Sequence *seq; void *crop; } *data= arg_pt;
+
+	if(seq->strip && seq->strip->crop == data->crop) {
+		data->seq= seq;
+		return -1; /* done so bail out */
+	}
+	return 1;
+}
+
+static char *rna_SequenceCrop_path(PointerRNA *ptr)
+{
+	Scene *scene= ptr->id.data;
+	Editing *ed= seq_give_editing(scene, FALSE);
+	Sequence *seq;
+
+	struct { Sequence *seq; void *crop; } data;
+	data.seq= NULL;
+	data.crop= ptr->data;
+
+	/* irritating we need to search for our sequence! */
+	seqbase_recursive_apply(&ed->seqbase, crop_seq_cmp_cb, &data);
+	seq= data.seq;
+
+	if (seq && seq->name+2)
+		return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].crop", seq->name+2);
+	else
+		return BLI_strdup("");
+}
+
+
 /* name functions that ignore the first two characters */
 static void rna_Sequence_name_get(PointerRNA *ptr, char *value)
 {
@@ -625,6 +689,8 @@
 	RNA_def_property_ui_text(prop, "Right", "");
 	RNA_def_property_ui_range(prop, 0, 4096, 1, 0);
 	RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
+
+	RNA_def_struct_path_func(srna, "rna_SequenceCrop_path");
 }
 
 static void rna_def_strip_transform(BlenderRNA *brna)
@@ -647,6 +713,9 @@
 	RNA_def_property_ui_text(prop, "Offset Y", "");
 	RNA_def_property_ui_range(prop, -4096, 4096, 1, 0);
 	RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
+
+	RNA_def_struct_path_func(srna, "rna_SequenceTransform_path");
+
 }
 
 static void rna_def_strip_proxy(BlenderRNA *brna)





More information about the Bf-blender-cvs mailing list