X-Git-Url: http://git.maemo.org/git/?p=demorecorder;a=blobdiff_plain;f=src%2FDemoRecorder.vala;h=56b9001e4eb56bc6ccfd217192aff2937a521207;hp=dec1c0458764e18f2a5a7cec7c78108aec43ab33;hb=HEAD;hpb=8e04456170ce68b0d84ae0457df1266e3fb23ae9 diff --git a/src/DemoRecorder.vala b/src/DemoRecorder.vala index dec1c04..56b9001 100644 --- a/src/DemoRecorder.vala +++ b/src/DemoRecorder.vala @@ -29,7 +29,7 @@ public class DemoRecorder : Hildon.Program { RecordPipeline recordpipeline; PlayerTransport player; MixerBin mixer; - uint track_counter; + uint track_counter { get { return (null != tracks) ? tracks.get_children().length() : 0; }} bool recording; bool playing; bool encoding; @@ -112,7 +112,6 @@ public class DemoRecorder : Hildon.Program { project = SettingsStructures.ProjectSettings(); recording = false; playing = false; - track_counter = 0; window = new Hildon.StackableWindow(); window.destroy.connect(Gtk.main_quit); window.delete_event.connect(on_delete_event); @@ -504,10 +503,25 @@ public class DemoRecorder : Hildon.Program { private void remove_track(TrackTransport tt) { project.tracks.remove(tt.track); tracks.remove(tt); + // rebuild project.tracks + for (int idx = (int)project.tracks.length(); idx >= 0; --idx) { + project.tracks.remove_link(project.tracks.nth(idx)); + } + foreach (var child in tracks.get_children()) { + project.tracks.append(((TrackTransport)child).track); + } + project_dirty = true; tt = null; } private void save_project() { + // rebuild track settings + for (int idx = (int)project.tracks.length(); idx >= 0; --idx) { + project.tracks.remove_link(project.tracks.nth(idx)); + } + foreach (var child in tracks.get_children()) { + project.tracks.append(((TrackTransport)child).track); + } if (0 < project.location.length) { save_project_settings(project.location); }