add prof sigusr1 feature, tweak amdgup tooltip, fix colorpicker handle_new_color...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / tracks.C
index b0305edf4eccb0fd468be52abd5e97cea4555506..7feb1f99cfc1febeec05653ee8843c244ec52f1f 100644 (file)
@@ -170,6 +170,8 @@ void Tracks::copy_from(Tracks *tracks)
        Track *new_track = 0;
 
        delete_all_tracks();
+       int solo_track_id = tracks->edl->local_session->solo_track_id;
+
        for(Track *current = tracks->first; current; current = NEXT)
        {
                switch(current->data_type)
@@ -187,6 +189,9 @@ void Tracks::copy_from(Tracks *tracks)
                        continue;
                }
                new_track->copy_from(current);
+
+               if( current->get_id() == solo_track_id )
+                       edl->local_session->solo_track_id = new_track->get_id();
        }
 }
 
@@ -625,6 +630,12 @@ Track* Tracks::number(int number)
        return current;
 }
 
+Track* Tracks::get_track_by_id(int id)
+{
+       Track *track = edl->tracks->first;
+       while( track && track->get_id() != id ) track = track->next;
+       return track;
+}
 
 int Tracks::total_playable_vtracks()
 {
@@ -660,6 +671,7 @@ int Tracks::new_group(int id)
        for( Track *track=first; track; track=track->next ) {
                if( !track->record ) continue;
                for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+                       if( edit->group_id > 0 ) continue;
                        if( !edit->is_selected ) continue;
                        edit->group_id = id;
                        ++count;