Merging r50147 through r50148 from trunk into soc-2011-tomato
This commit is contained in:
@@ -904,10 +904,19 @@ class SEQUENCER_PT_modifiers(SequencerButtonsPanel, Panel):
|
||||
|
||||
row = box.row()
|
||||
row.prop(mod, "show_expanded", text="", emboss=False)
|
||||
row.prop(mod, "name")
|
||||
row.prop(mod, "name", text="")
|
||||
|
||||
row.prop(mod, "mute", text="")
|
||||
props = row.operator("sequencer.strip_modifier_remove", text="", icon='X')
|
||||
|
||||
sub = row.row(align=True)
|
||||
props = sub.operator("sequencer.strip_modifier_move", text="", icon='TRIA_UP')
|
||||
props.name = mod.name
|
||||
props.direction = 'UP'
|
||||
props = sub.operator("sequencer.strip_modifier_move", text="", icon='TRIA_DOWN')
|
||||
props.name = mod.name
|
||||
props.direction = 'DOWN'
|
||||
|
||||
props = row.operator("sequencer.strip_modifier_remove", text="", icon='X', emboss=False)
|
||||
props.name = mod.name
|
||||
|
||||
if mod.show_expanded:
|
||||
|
||||
@@ -179,6 +179,7 @@ void SEQUENCER_OT_properties(struct wmOperatorType *ot);
|
||||
/* sequencer_modifiers.c */
|
||||
void SEQUENCER_OT_strip_modifier_add(struct wmOperatorType *ot);
|
||||
void SEQUENCER_OT_strip_modifier_remove(struct wmOperatorType *ot);
|
||||
void SEQUENCER_OT_strip_modifier_move(struct wmOperatorType *ot);
|
||||
|
||||
#endif /* __SEQUENCER_INTERN_H__ */
|
||||
|
||||
|
||||
@@ -154,3 +154,69 @@ void SEQUENCER_OT_strip_modifier_remove(wmOperatorType *ot)
|
||||
/* properties */
|
||||
RNA_def_string(ot->srna, "name", "Name", MAX_NAME, "Name", "Name of modifier to remove");
|
||||
}
|
||||
|
||||
/*********************** Move operator *************************/
|
||||
|
||||
enum {
|
||||
SEQ_MODIFIER_MOVE_UP = 0,
|
||||
SEQ_MODIFIER_MOVE_DOWN
|
||||
};
|
||||
|
||||
static int strip_modifier_move_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
Sequence *seq = BKE_sequencer_active_get(scene);
|
||||
char name[MAX_NAME];
|
||||
int direction;
|
||||
SequenceModifierData *smd;
|
||||
|
||||
RNA_string_get(op->ptr, "name", name);
|
||||
direction = RNA_enum_get(op->ptr, "direction");
|
||||
|
||||
smd = BKE_sequence_modifier_find_by_name(seq, name);
|
||||
if (!smd)
|
||||
return OPERATOR_CANCELLED;
|
||||
|
||||
if (direction == SEQ_MODIFIER_MOVE_UP) {
|
||||
if (smd->prev) {
|
||||
BLI_remlink(&seq->modifiers, smd);
|
||||
BLI_insertlink(&seq->modifiers, smd->prev->prev, smd);
|
||||
}
|
||||
}
|
||||
else if (direction == SEQ_MODIFIER_MOVE_DOWN) {
|
||||
if (smd->next) {
|
||||
BLI_remlink(&seq->modifiers, smd);
|
||||
BLI_insertlink(&seq->modifiers, smd->next, smd);
|
||||
}
|
||||
}
|
||||
|
||||
BKE_sequence_invalidate_cache(scene, seq);
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
void SEQUENCER_OT_strip_modifier_move(wmOperatorType *ot)
|
||||
{
|
||||
static EnumPropertyItem direction_items[] = {
|
||||
{SEQ_MODIFIER_MOVE_UP, "UP", 0, "Up", "Move modifier up in the stack"},
|
||||
{SEQ_MODIFIER_MOVE_DOWN, "DOWN", 0, "Down", "Move modifier down in the stack"},
|
||||
{0, NULL, 0, NULL, NULL}
|
||||
};
|
||||
|
||||
/* identifiers */
|
||||
ot->name = "Move Strip Modifier";
|
||||
ot->idname = "SEQUENCER_OT_strip_modifier_move";
|
||||
ot->description = "Move modifier up and down in the stack";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec = strip_modifier_move_exec;
|
||||
ot->poll = strip_modifier_active_poll;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
|
||||
/* properties */
|
||||
RNA_def_string(ot->srna, "name", "Name", MAX_NAME, "Name", "Name of modifier to remove");
|
||||
RNA_def_enum(ot->srna, "direction", direction_items, SEQ_MODIFIER_MOVE_UP, "Type", "");
|
||||
}
|
||||
|
||||
@@ -117,6 +117,7 @@ void sequencer_operatortypes(void)
|
||||
/* sequencer_modifiers.c */
|
||||
WM_operatortype_append(SEQUENCER_OT_strip_modifier_add);
|
||||
WM_operatortype_append(SEQUENCER_OT_strip_modifier_remove);
|
||||
WM_operatortype_append(SEQUENCER_OT_strip_modifier_move);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user