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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-12-08 16:57:51 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-12-08 16:57:51 +0300
commitf2452c1fd6fe2009e2ecd794b13b1de1fade277b (patch)
tree488a6640c2d6e96ea24c5ff5b8175141274e4b3b /source/blender/editors
parent0151be0210bf58a108d90f2c36b2ab3be2294d5a (diff)
Sequencer:
* Sound strips now respect metastrips for muting. That means they are muted if the metastrip is muted, and don't play when located outside of the current metastrip. * Operators now use notifiers instead of redraw tagging, added a separate notifier for selection as well, but that is not used to do less redraws yet.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/space_sequencer/sequencer_add.c10
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c81
-rw-r--r--source/blender/editors/space_sequencer/sequencer_select.c31
-rw-r--r--source/blender/editors/space_sequencer/space_sequencer.c2
4 files changed, 67 insertions, 57 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index ba3735834bc..ac341e40de9 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -218,7 +218,7 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
seq->flag |= SELECT;
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -297,8 +297,9 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad
}
sort_seq(scene);
+ seq_update_muting(ed);
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -425,7 +426,7 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
/* last active name */
strncpy(ed->act_imagedir, strip->dir, FILE_MAXDIR-1);
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -557,7 +558,8 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
seq->flag |= SELECT;
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 5dd453b9e30..96d4ed06ead 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -1399,7 +1399,7 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
/* as last: */
sort_seq(scene);
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1451,21 +1451,18 @@ static int sequencer_mute_exec(bContext *C, wmOperator *op)
for(seq= ed->seqbasep->first; seq; seq= seq->next) {
if ((seq->flag & SEQ_LOCK)==0) {
if(selected){ /* mute unselected */
- if (seq->flag & SELECT) {
+ if(seq->flag & SELECT)
seq->flag |= SEQ_MUTE;
- seq_update_sound(seq);
- }
}
else {
- if ((seq->flag & SELECT)==0) {
+ if((seq->flag & SELECT)==0)
seq->flag |= SEQ_MUTE;
- seq_update_sound(seq);
- }
}
}
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ seq_update_muting(ed);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1505,21 +1502,18 @@ static int sequencer_unmute_exec(bContext *C, wmOperator *op)
for(seq= ed->seqbasep->first; seq; seq= seq->next) {
if ((seq->flag & SEQ_LOCK)==0) {
if(selected){ /* unmute unselected */
- if (seq->flag & SELECT) {
+ if(seq->flag & SELECT)
seq->flag &= ~SEQ_MUTE;
- seq_update_sound(seq);
- }
}
else {
- if ((seq->flag & SELECT)==0) {
+ if((seq->flag & SELECT)==0)
seq->flag &= ~SEQ_MUTE;
- seq_update_sound(seq);
- }
}
}
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ seq_update_muting(ed);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1559,7 +1553,7 @@ static int sequencer_lock_exec(bContext *C, wmOperator *op)
}
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1596,7 +1590,7 @@ static int sequencer_unlock_exec(bContext *C, wmOperator *op)
}
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1633,7 +1627,7 @@ static int sequencer_reload_exec(bContext *C, wmOperator *op)
}
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1665,7 +1659,7 @@ static int sequencer_refresh_all_exec(bContext *C, wmOperator *op)
free_imbuf_seq(scene, &ed->seqbase, FALSE);
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1741,9 +1735,7 @@ static int sequencer_cut_exec(bContext *C, wmOperator *op)
sort_seq(scene);
}
- if (changed) {
- ED_area_tag_redraw(CTX_wm_area(C));
- }
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1803,7 +1795,7 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator *op)
recurs_dupli_seq(scene, ed->seqbasep, &new);
addlisttolist(ed->seqbasep, &new);
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1894,8 +1886,7 @@ static int sequencer_delete_exec(bContext *C, wmOperator *op)
ms= ms->prev;
}
- //ED_area_tag_redraw(CTX_wm_area(C));
- WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, NULL); /* redraw other sequencer views */
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -1986,7 +1977,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
/* as last: */
sort_seq(scene);
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}
@@ -2063,7 +2054,9 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator *op)
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ seq_update_muting(ed);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
return OPERATOR_FINISHED;
}
@@ -2164,7 +2157,9 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op)
if( seq_test_overlap(ed->seqbasep, seqm) ) shuffle_seq(ed->seqbasep, seqm);
- ED_area_tag_redraw(CTX_wm_area(C));
+ seq_update_muting(ed);
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
return OPERATOR_FINISHED;
}
@@ -2233,8 +2228,10 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *op)
SEQ_END;
sort_seq(scene);
+ seq_update_muting(ed);
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
- ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
}
@@ -2459,16 +2456,16 @@ static int next_prev_edit_internal(Scene *scene, int side)
return change;
}
-/* select less operator */
+/* move frame to next edit point operator */
static int sequencer_next_edit_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- if (next_prev_edit_internal(scene, SEQ_SIDE_RIGHT)) {
- ED_area_tag_redraw(CTX_wm_area(C));
- WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
- }
-
+ if(!next_prev_edit_internal(scene, SEQ_SIDE_RIGHT))
+ return OPERATOR_CANCELLED;
+
+ WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
+
return OPERATOR_FINISHED;
}
@@ -2494,9 +2491,10 @@ static int sequencer_previous_edit_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- if (next_prev_edit_internal(scene, SEQ_SIDE_LEFT)) {
- ED_area_tag_redraw(CTX_wm_area(C));
- }
+ if(!next_prev_edit_internal(scene, SEQ_SIDE_LEFT))
+ return OPERATOR_CANCELLED;
+
+ WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
return OPERATOR_FINISHED;
}
@@ -2578,10 +2576,13 @@ static int sequencer_swap_internal_exec(bContext *C, int side)
swap_sequence(active_seq, seq);
break;
}
- ED_area_tag_redraw(CTX_wm_area(C));
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+ return OPERATOR_FINISHED;
}
- return OPERATOR_FINISHED;
+ return OPERATOR_CANCELLED;
}
static int sequencer_swap_right_exec(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index b197077c68d..7afe320322c 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -256,7 +256,8 @@ static int sequencer_deselect_exec(bContext *C, wmOperator *op)
seq->flag |= SELECT;
}
}
- ED_area_tag_redraw(CTX_wm_area(C));
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
return OPERATOR_FINISHED;
}
@@ -297,7 +298,8 @@ static int sequencer_select_inverse_exec(bContext *C, wmOperator *op)
seq->flag |= SELECT;
}
}
- ED_area_tag_redraw(CTX_wm_area(C));
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
return OPERATOR_FINISHED;
}
@@ -508,7 +510,8 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
#endif
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
+
/* allowing tweaks */
return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
}
@@ -594,9 +597,10 @@ static int sequencer_select_more_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- if (select_more_less_seq__internal(scene, 0, 0)) {
- ED_area_tag_redraw(CTX_wm_area(C));
- }
+ if(!select_more_less_seq__internal(scene, 0, 0))
+ return OPERATOR_CANCELLED;
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
return OPERATOR_FINISHED;
}
@@ -624,9 +628,10 @@ static int sequencer_select_less_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- if (select_more_less_seq__internal(scene, 1, 0)) {
- ED_area_tag_redraw(CTX_wm_area(C));
- }
+ if(!select_more_less_seq__internal(scene, 1, 0))
+ return OPERATOR_CANCELLED;
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
return OPERATOR_FINISHED;
}
@@ -681,7 +686,7 @@ static int sequencer_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEv
selected = select_more_less_seq__internal(scene, 1, 1);
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
return OPERATOR_FINISHED;
}
@@ -716,7 +721,7 @@ static int sequencer_select_linked_exec(bContext *C, wmOperator *op)
selected = select_more_less_seq__internal(scene, 1, 1);
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
return OPERATOR_FINISHED;
}
@@ -768,7 +773,7 @@ static int sequencer_select_handles_exec(bContext *C, wmOperator *op)
}
}
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
return OPERATOR_FINISHED;
}
@@ -805,7 +810,7 @@ static int sequencer_select_active_side_exec(bContext *C, wmOperator *op)
select_active_side(ed->seqbasep, RNA_enum_get(op->ptr, "side"), seq_act->machine, seq_act->startdisp);
- ED_area_tag_redraw(CTX_wm_area(C));
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER_SELECT, scene);
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index b8adaf23f73..00df314df6c 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -232,6 +232,7 @@ static void sequencer_main_area_listener(ARegion *ar, wmNotifier *wmn)
case ND_FRAME:
case ND_MARKERS:
case ND_SEQUENCER:
+ case ND_SEQUENCER_SELECT:
ED_region_tag_redraw(ar);
break;
}
@@ -266,6 +267,7 @@ static void sequencer_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
switch(wmn->data) {
case ND_FRAME:
case ND_SEQUENCER:
+ case ND_SEQUENCER_SELECT:
ED_region_tag_redraw(ar);
break;
}