split clip at position
This commit is contained in:
parent
078be8e98f
commit
5bdc80a24f
1 changed files with 32 additions and 1 deletions
|
@ -235,7 +235,7 @@ Ox.ClipPanel = function(options, self) {
|
||||||
that.selectClip();
|
that.selectClip();
|
||||||
self.$list.gainFocus();
|
self.$list.gainFocus();
|
||||||
} else if (data.id == 'splitclip') {
|
} else if (data.id == 'splitclip') {
|
||||||
// ...
|
splitClip();
|
||||||
} else if (data.id == 'split') {
|
} else if (data.id == 'split') {
|
||||||
splitClips();
|
splitClips();
|
||||||
} else if (data.id == 'join') {
|
} else if (data.id == 'join') {
|
||||||
|
@ -454,6 +454,13 @@ Ox.ClipPanel = function(options, self) {
|
||||||
'delete': function(data) {
|
'delete': function(data) {
|
||||||
self.options.editable && that.triggerEvent('delete', data);
|
self.options.editable && that.triggerEvent('delete', data);
|
||||||
},
|
},
|
||||||
|
key_backslash: function(data) {
|
||||||
|
that.selectClip();
|
||||||
|
self.$list.gainFocus();
|
||||||
|
},
|
||||||
|
key_shift_backslash: function(data) {
|
||||||
|
splitClip();
|
||||||
|
},
|
||||||
move: function(data) {
|
move: function(data) {
|
||||||
data.ids.forEach(function(id, index) {
|
data.ids.forEach(function(id, index) {
|
||||||
self.$list.value(id, 'index', index);
|
self.$list.value(id, 'index', index);
|
||||||
|
@ -586,6 +593,30 @@ Ox.ClipPanel = function(options, self) {
|
||||||
self.$list.options({selected: self.options.selected});
|
self.$list.options({selected: self.options.selected});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function splitClip() {
|
||||||
|
that.selectClip();
|
||||||
|
var index;
|
||||||
|
Ox.forEach(self.options.clips, function(clip, i) {
|
||||||
|
if (clip.position <= self.options.position) {
|
||||||
|
index = i
|
||||||
|
} else {
|
||||||
|
return false; // break
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var clip = self.options.clips[index];
|
||||||
|
if (clip) {
|
||||||
|
var position = self.options.position - clip.position + clip['in'];
|
||||||
|
if (position != clip['in'] && position != clip['out']) {
|
||||||
|
var ids = [clip.id];
|
||||||
|
var split = [
|
||||||
|
{'in': clip['in'], 'out': position, 'item': clip.item},
|
||||||
|
{'in': position, 'out': clip['out'], 'item': clip.item}
|
||||||
|
];
|
||||||
|
that.triggerEvent('split', {ids: ids, split: split});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function splitClips() {
|
function splitClips() {
|
||||||
var ids = getEditable(self.options.selected).filter(function(id) {
|
var ids = getEditable(self.options.selected).filter(function(id) {
|
||||||
var clip = Ox.getObjectById(self.options.clips, id);
|
var clip = Ox.getObjectById(self.options.clips, id);
|
||||||
|
|
Loading…
Reference in a new issue