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>2010-07-21 21:37:40 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-07-21 21:37:40 +0400
commit969c0fd718ed500fedfdeb1b4a5c0026febdb975 (patch)
tree1827fcd5b82602678a79fd80e106384f85c03b63 /source/blender/editors/space_sequencer
parent64de3feb37a3892ff244d63b7ac62a97ab4379f2 (diff)
Fix #22894: sequencer drag & drop wasn't working anymore.
Diffstat (limited to 'source/blender/editors/space_sequencer')
-rw-r--r--source/blender/editors/space_sequencer/sequencer_add.c9
-rw-r--r--source/blender/editors/space_sequencer/space_sequencer.c16
2 files changed, 24 insertions, 1 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index 01a99ed2b1f..c4c3701a18a 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -341,6 +341,9 @@ static int sequencer_add_movie_strip_exec(bContext *C, wmOperator *op)
static int sequencer_add_movie_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ if(RNA_collection_length(op->ptr, "files") || RNA_property_is_set(op->ptr, "filepath"))
+ return sequencer_add_movie_strip_exec(C, op);
+
if(!ED_operator_sequencer_active(C)) {
BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
return OPERATOR_CANCELLED;
@@ -389,6 +392,9 @@ static int sequencer_add_sound_strip_exec(bContext *C, wmOperator *op)
static int sequencer_add_sound_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ if(RNA_collection_length(op->ptr, "files") || RNA_property_is_set(op->ptr, "filepath"))
+ return sequencer_add_sound_strip_exec(C, op);
+
if(!ED_operator_sequencer_active(C)) {
BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
return OPERATOR_CANCELLED;
@@ -486,6 +492,9 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
static int sequencer_add_image_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ if(RNA_collection_length(op->ptr, "files"))
+ return sequencer_add_image_strip_exec(C, op);
+
if(!ED_operator_sequencer_active(C)) {
BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
return OPERATOR_CANCELLED;
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index 586b76268e4..4cf25ab9585 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -35,6 +35,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_path_util.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -322,7 +323,20 @@ static int sound_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
static void sequencer_drop_copy(wmDrag *drag, wmDropBox *drop)
{
/* copy drag path to properties */
- RNA_string_set(drop->ptr, "filepath", drag->path);
+ if(RNA_struct_find_property(drop->ptr, "filepath"))
+ RNA_string_set(drop->ptr, "filepath", drag->path);
+
+ if(RNA_struct_find_property(drop->ptr, "directory")) {
+ PointerRNA itemptr;
+ char dir[FILE_MAX], file[FILE_MAX];
+
+ BLI_split_dirfile(drag->path, dir, file);
+
+ RNA_string_set(drop->ptr, "directory", dir);
+
+ RNA_collection_add(drop->ptr, "files", &itemptr);
+ RNA_string_set(&itemptr, "name", file);
+ }
}
/* this region dropbox definition */