'Copy To Selected' (right click menu item) now works for sequence strips, useful for copying blend modes & opacity

This commit is contained in:
Campbell Barton 2010-07-04 09:13:00 +00:00
parent 5553f66eb7
commit db4d317f6b
2 changed files with 33 additions and 1 deletions

@ -322,6 +322,8 @@ static int copy_to_selected_list(bContext *C, PointerRNA *ptr, ListBase *lb)
*lb = CTX_data_collection_get(C, "selected_editable_bones");
else if(RNA_struct_is_a(ptr->type, &RNA_PoseBone))
*lb = CTX_data_collection_get(C, "selected_pose_bones");
else if(RNA_struct_is_a(ptr->type, &RNA_Sequence))
*lb = CTX_data_collection_get(C, "selected_editable_sequences");
else
return 0;

@ -29,6 +29,7 @@
#include "DNA_object_types.h"
#include "DNA_armature_types.h"
#include "DNA_sequence_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
@ -36,6 +37,7 @@
#include "BKE_utildefines.h"
#include "BKE_global.h"
#include "BKE_action.h"
#include "BKE_sequencer.h"
#include "RNA_access.h"
@ -66,7 +68,9 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
"visible_pose_bones", "selected_pose_bones", "active_bone", "active_pose_bone",
"active_base", "active_object", "object", "edit_object",
"sculpt_object", "vertex_paint_object", "weight_paint_object",
"texture_paint_object", "particle_edit_object", NULL};
"texture_paint_object", "particle_edit_object",
"selected_sequences", "selected_editable_sequences", /* sequencer */
NULL};
CTX_data_dir_set(result, dir);
return 1;
@ -317,6 +321,32 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
return 1;
}
else if(CTX_data_equals(member, "selected_strips")) {
Editing *ed= seq_give_editing(scene, FALSE);
if(ed) {
Sequence *seq;
for (seq= ed->seqbasep->first; seq; seq= seq->next) {
if (seq->flag & SELECT) {
CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq);
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
}
else if(CTX_data_equals(member, "selected_editable_sequences")) {
Editing *ed= seq_give_editing(scene, FALSE);
if(ed) {
Sequence *seq;
for (seq= ed->seqbasep->first; seq; seq= seq->next) {
if (seq->flag & SELECT && !(seq->flag & SEQ_LOCK)) {
CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq);
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
}
else {
return 0; /* not found */
}