diff options
author | Tim E. Real <termtech@rogers.com> | 2012-08-15 00:24:29 +0000 |
---|---|---|
committer | Tim E. Real <termtech@rogers.com> | 2012-08-15 00:24:29 +0000 |
commit | 6c642a1cff928c183d80af7ab4fad6910466a091 (patch) | |
tree | ab534d2203486d681398b7197635861ae65160c1 /muse2/muse/functions.cpp | |
parent | 345fb0cc41b94b08134dc1f40020b4bf26e1d46b (diff) |
Introducing: Improved Wave Editor. Class WaveView is replaced by WaveCanvas.
Wave Events can be selected, added, moved and deleted.
TODO: Bunch o' stuff, but currently it should be as good or better than the old editor.
Diffstat (limited to 'muse2/muse/functions.cpp')
-rw-r--r-- | muse2/muse/functions.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/muse2/muse/functions.cpp b/muse2/muse/functions.cpp index 1a6927e8..da5826e5 100644 --- a/muse2/muse/functions.cpp +++ b/muse2/muse/functions.cpp @@ -1286,12 +1286,22 @@ void schedule_resize_all_same_len_clone_parts(Part* part, unsigned new_len, Undo if (op_it->type==UndoOp::ModifyPart || op_it->type==UndoOp::DeletePart) already_done.insert(op_it->nPart); - unsigned old_len=part->lenTick(); + unsigned old_len= part->type() == Pos::FRAMES ? part->lenFrame() : part->lenTick(); if (old_len!=new_len) { Part* part_it=part; do { + if (part->type() == Pos::FRAMES) + { + if (part_it->lenFrame()==old_len && !already_done.contains(part_it)) + { + WavePart* new_part = new WavePart(*(WavePart*)part_it); + new_part->setLenFrame(new_len); + operations.push_back(UndoOp(UndoOp::ModifyPart, part_it, new_part, true, false)); + } + } + else if (part_it->lenTick()==old_len && !already_done.contains(part_it)) { MidiPart* new_part = new MidiPart(*(MidiPart*)part_it); |