feat(tracker, gioui): add ability & button to delete tracks.

Refer #46.
This commit is contained in:
vsariola
2021-03-11 22:26:42 +02:00
parent 87f373370e
commit 01226a2910
3 changed files with 36 additions and 0 deletions

View File

@ -203,6 +203,27 @@ func (m *Model) CanAddTrack() bool {
return m.song.Score.NumVoices() < 32
}
func (m *Model) DeleteTrack(forward bool) {
if !m.CanDeleteTrack() {
return
}
m.saveUndo("DeleteTrack", 0)
newTracks := make([]sointu.Track, len(m.song.Score.Tracks)-1)
copy(newTracks, m.song.Score.Tracks[:m.cursor.Track])
copy(newTracks[m.cursor.Track:], m.song.Score.Tracks[m.cursor.Track+1:])
m.song.Score.Tracks = newTracks
if !forward {
m.cursor.Track--
}
m.selectionCorner = m.cursor
m.clampPositions()
m.notifyScoreChange()
}
func (m *Model) CanDeleteTrack() bool {
return len(m.song.Score.Tracks) > 1
}
func (m *Model) SetTrackVoices(value int) {
if value < 1 {
value = 1