- listener for sequencer space panels added for frame changes, now redraws during transform
- invalid pointer was used for getting the sequencer length crashing blender or setting the length to negative values. - printf_strip(seq) for debugging sequence strip locations - Spelling: Cheet Sheet -> Cheat Sheet
This commit is contained in:
@@ -287,7 +287,7 @@ class HELP_OT_user_community(HelpOperator):
|
|||||||
|
|
||||||
class HELP_OT_operator_cheat_sheet(bpy.types.Operator):
|
class HELP_OT_operator_cheat_sheet(bpy.types.Operator):
|
||||||
__idname__ = "help.operator_cheat_sheet"
|
__idname__ = "help.operator_cheat_sheet"
|
||||||
__label__ = "Operator Cheet Sheet (new textblock)"
|
__label__ = "Operator Cheat Sheet (new textblock)"
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
op_strings = []
|
op_strings = []
|
||||||
tot = 0
|
tot = 0
|
||||||
|
@@ -135,6 +135,7 @@ struct SeqEffectHandle {
|
|||||||
/* ********************* prototypes *************** */
|
/* ********************* prototypes *************** */
|
||||||
|
|
||||||
/* sequence.c */
|
/* sequence.c */
|
||||||
|
void printf_strip(struct Sequence *seq);
|
||||||
|
|
||||||
// extern
|
// extern
|
||||||
void seq_free_sequence(struct Scene *scene, struct Sequence *seq);
|
void seq_free_sequence(struct Scene *scene, struct Sequence *seq);
|
||||||
|
@@ -69,6 +69,13 @@ static int blender_test_break() {return 0;}
|
|||||||
/* **** XXX ******** */
|
/* **** XXX ******** */
|
||||||
|
|
||||||
|
|
||||||
|
void printf_strip(Sequence *seq)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "name: '%s', len:%d, start:%d, (startofs:%d, endofs:%d), (startstill:%d, endstill:%d), machine:%d, (startdisp:%d, enddisp:%d)\n",
|
||||||
|
seq->name, seq->len, seq->start, seq->startofs, seq->endofs, seq->startstill, seq->endstill, seq->machine, seq->startdisp, seq->enddisp);
|
||||||
|
fprintf(stderr, "\tseq_tx_set_final_left: %d %d\n\n", seq_tx_get_final_left(seq, 0), seq_tx_get_final_right(seq, 0));
|
||||||
|
}
|
||||||
|
|
||||||
/* **********************************************************************
|
/* **********************************************************************
|
||||||
alloc / free functions
|
alloc / free functions
|
||||||
********************************************************************** */
|
********************************************************************** */
|
||||||
@@ -3238,7 +3245,7 @@ void seq_tx_set_final_left(Sequence *seq, int val)
|
|||||||
{
|
{
|
||||||
if (val < (seq)->start) {
|
if (val < (seq)->start) {
|
||||||
seq->startstill = abs(val - (seq)->start);
|
seq->startstill = abs(val - (seq)->start);
|
||||||
(seq)->startofs = 0;
|
seq->startofs = 0;
|
||||||
} else {
|
} else {
|
||||||
seq->startofs = abs(val - (seq)->start);
|
seq->startofs = abs(val - (seq)->start);
|
||||||
seq->startstill = 0;
|
seq->startstill = 0;
|
||||||
@@ -3249,7 +3256,7 @@ void seq_tx_set_final_right(Sequence *seq, int val)
|
|||||||
{
|
{
|
||||||
if (val > (seq)->start + (seq)->len) {
|
if (val > (seq)->start + (seq)->len) {
|
||||||
seq->endstill = abs(val - (seq->start + (seq)->len));
|
seq->endstill = abs(val - (seq->start + (seq)->len));
|
||||||
(seq)->endofs = 0;
|
seq->endofs = 0;
|
||||||
} else {
|
} else {
|
||||||
seq->endofs = abs(val - ((seq)->start + (seq)->len));
|
seq->endofs = abs(val - ((seq)->start + (seq)->len));
|
||||||
seq->endstill = 0;
|
seq->endstill = 0;
|
||||||
|
@@ -245,6 +245,14 @@ static void sequencer_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
|
|||||||
{
|
{
|
||||||
/* context changes */
|
/* context changes */
|
||||||
switch(wmn->category) {
|
switch(wmn->category) {
|
||||||
|
case NC_SCENE:
|
||||||
|
switch(wmn->data) {
|
||||||
|
case ND_FRAME:
|
||||||
|
case ND_SEQUENCER:
|
||||||
|
ED_region_tag_redraw(ar);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case NC_SPACE:
|
case NC_SPACE:
|
||||||
if(wmn->data == ND_SPACE_SEQUENCER)
|
if(wmn->data == ND_SPACE_SEQUENCER)
|
||||||
ED_region_tag_redraw(ar);
|
ED_region_tag_redraw(ar);
|
||||||
|
@@ -4015,38 +4015,52 @@ static int SeqToTransData_Recursive(TransInfo *t, ListBase *seqbase, TransData *
|
|||||||
static void freeSeqData(TransInfo *t)
|
static void freeSeqData(TransInfo *t)
|
||||||
{
|
{
|
||||||
Editing *ed= seq_give_editing(t->scene, FALSE);
|
Editing *ed= seq_give_editing(t->scene, FALSE);
|
||||||
if (ed && !(t->state == TRANS_CANCEL)) {
|
|
||||||
ListBase *seqbasep= ed->seqbasep;
|
|
||||||
Sequence *seq;
|
|
||||||
|
|
||||||
int a;
|
if(ed != NULL) {
|
||||||
|
ListBase *seqbasep= ed->seqbasep;
|
||||||
TransData *td= t->data;
|
TransData *td= t->data;
|
||||||
|
int a;
|
||||||
|
|
||||||
/* prevent updating the same seq twice
|
/* prevent updating the same seq twice
|
||||||
* if the transdata order is changed this will mess up
|
* if the transdata order is changed this will mess up
|
||||||
* but so will TransDataSeq */
|
* but so will TransDataSeq */
|
||||||
Sequence *seq_prev= NULL;
|
Sequence *seq_prev= NULL;
|
||||||
|
Sequence *seq;
|
||||||
|
|
||||||
/* flush to 2d vector from internally used 3d vector */
|
|
||||||
for(a=0; a<t->total; a++, td++) {
|
if (!(t->state == TRANS_CANCEL)) {
|
||||||
seq= ((TransDataSeq *)td->extra)->seq;
|
|
||||||
if ((seq != seq_prev) && (seq->depth==0) && (seq->flag & SEQ_OVERLAP)) {
|
/* flush to 2d vector from internally used 3d vector */
|
||||||
shuffle_seq(seqbasep, seq);
|
for(a=0; a<t->total; a++, td++) {
|
||||||
|
seq= ((TransDataSeq *)td->extra)->seq;
|
||||||
|
if ((seq != seq_prev) && (seq->depth==0) && (seq->flag & SEQ_OVERLAP)) {
|
||||||
|
shuffle_seq(seqbasep, seq);
|
||||||
|
}
|
||||||
|
|
||||||
|
seq_prev= seq;
|
||||||
}
|
}
|
||||||
|
|
||||||
seq_prev= seq;
|
for(seq= seqbasep->first; seq; seq= seq->next) {
|
||||||
}
|
/* We might want to build a list of effects that need to be updated during transform */
|
||||||
|
if(seq->type & SEQ_EFFECT) {
|
||||||
|
if (seq->seq1 && seq->seq1->flag & SELECT) calc_sequence(seq);
|
||||||
|
else if (seq->seq2 && seq->seq2->flag & SELECT) calc_sequence(seq);
|
||||||
|
else if (seq->seq3 && seq->seq3->flag & SELECT) calc_sequence(seq);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for(seq= seqbasep->first; seq; seq= seq->next) {
|
sort_seq(t->scene);
|
||||||
/* We might want to build a list of effects that need to be updated during transform */
|
}
|
||||||
if(seq->type & SEQ_EFFECT) {
|
else {
|
||||||
if (seq->seq1 && seq->seq1->flag & SELECT) calc_sequence(seq);
|
/* Cancelled, need to update the strips display */
|
||||||
else if (seq->seq2 && seq->seq2->flag & SELECT) calc_sequence(seq);
|
for(a=0; a<t->total; a++, td++) {
|
||||||
else if (seq->seq3 && seq->seq3->flag & SELECT) calc_sequence(seq);
|
seq= ((TransDataSeq *)td->extra)->seq;
|
||||||
|
if ((seq != seq_prev) && (seq->depth==0)) {
|
||||||
|
calc_sequence_disp(seq);
|
||||||
|
}
|
||||||
|
seq_prev= seq;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sort_seq(t->scene);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t->customData) {
|
if (t->customData) {
|
||||||
|
@@ -85,7 +85,7 @@ static void rna_SequenceEditor_length_set(PointerRNA *ptr, int value)
|
|||||||
static int rna_SequenceEditor_length_get(PointerRNA *ptr)
|
static int rna_SequenceEditor_length_get(PointerRNA *ptr)
|
||||||
{
|
{
|
||||||
Sequence *seq= (Sequence*)ptr->data;
|
Sequence *seq= (Sequence*)ptr->data;
|
||||||
return seq_tx_get_final_right(seq, 1)-seq_tx_get_final_left(seq, 1);
|
return seq_tx_get_final_right(seq, 0)-seq_tx_get_final_left(seq, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rna_SequenceEditor_channel_set(PointerRNA *ptr, int value)
|
static void rna_SequenceEditor_channel_set(PointerRNA *ptr, int value)
|
||||||
|
Reference in New Issue
Block a user