diff options
author | rj <rj@rj> | 2013-10-09 19:45:37 +0200 |
---|---|---|
committer | rj <rj@rj> | 2013-10-09 19:45:37 +0200 |
commit | 8825155b467098cb14a0f23af079bda62da4f5d2 (patch) | |
tree | cc6387fdab06e771dd4db6b69a214cca358a05f8 /muse2/muse/song.cpp | |
parent | 60e9415153a33eb6545ecf560e4b3b73864d1d2c (diff) |
changed track drag to move instead of swap
Diffstat (limited to 'muse2/muse/song.cpp')
-rw-r--r-- | muse2/muse/song.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/muse2/muse/song.cpp b/muse2/muse/song.cpp index 3c5b8fa7..5d821301 100644 --- a/muse2/muse/song.cpp +++ b/muse2/muse/song.cpp @@ -1062,16 +1062,29 @@ void Song::setStopPlay(bool f) } //--------------------------------------------------------- -// swapTracks +// moveTrack +// //--------------------------------------------------------- -void Song::swapTracks(int i1, int i2) - { - addUndo(UndoOp(UndoOp::SwapTrack, i1, i2)); - Track* track = _tracks[i1]; - _tracks[i1] = _tracks[i2]; - _tracks[i2] = track; - } +void Song::moveTrack(int fromI, int toI) +{ + //addUndo(UndoOp(UndoOp::MoveTrack, fromI, toI)); + Track* toTrack = _tracks[toI]; + Track* fromTrack = _tracks[fromI]; + for(TrackList::iterator toIt = _tracks.begin(); toIt != _tracks.end(); ++toIt) + { + if ((*toIt) == toTrack) { + for(TrackList::iterator fromIt = _tracks.begin(); fromIt != _tracks.end(); ++fromIt) + { + if ((*fromIt) == fromTrack) { + _tracks.erase(fromIt); + _tracks.insert(toIt,fromTrack); + } + } + + } + } +} //--------------------------------------------------------- // seekTo |