diff options
author | Florian Jung <flo@windfisch.org> | 2011-06-06 18:01:05 +0000 |
---|---|---|
committer | Florian Jung <flo@windfisch.org> | 2011-06-06 18:01:05 +0000 |
commit | 637498c87bf1ac780d8527d0596936fcdd2c6dfc (patch) | |
tree | 5257fadc43d8d8eb44b763b720b5ae373e070d79 /muse2/muse/arranger/pcanvas.cpp | |
parent | 2359a1c010c298eb66b5b03e0e23f55b4fd9ff4b (diff) |
hopefully fixed the "clones aren't treated as clones" bug
fixed stupid behaviour of shrink and expand part
Diffstat (limited to 'muse2/muse/arranger/pcanvas.cpp')
-rw-r--r-- | muse2/muse/arranger/pcanvas.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp index e17d08e1..f7a2abde 100644 --- a/muse2/muse/arranger/pcanvas.cpp +++ b/muse2/muse/arranger/pcanvas.cpp @@ -349,14 +349,15 @@ UndoOp PartCanvas::moveItem(CItem* item, const QPoint& newpos, DragType t) // This increments aref count if cloned, and chains clones. // It also gives the new part a new serial number. dpart = dtrack->newPart(spart, clone); - dpart->events()->incARef(-1); // the later song->applyOperationGroup() will increment it - // so we must decrement it first :/ dpart->setTick(dtick); if(t == MOVE_MOVE) item->setPart(dpart); if (t == MOVE_COPY && !clone) { + dpart->events()->incARef(-1); // the later song->applyOperationGroup() will increment it + // so we must decrement it first :/ + // // Copy Events // @@ -368,6 +369,8 @@ UndoOp PartCanvas::moveItem(CItem* item, const QPoint& newpos, DragType t) de->add(ev); } } + + if (t == MOVE_COPY || t == MOVE_CLONE) { // These will not increment ref count, and will not chain clones... // TODO: is this still correct (by flo93)? |