labels follow edits fix, group only ungrouped edits, add reset to 7 plugins, add...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / tracks.C
index 0f53df742895db789f82963b445cd5331dbeceb1..4873fac020d351c396da0fb0914c2d8be64ae38c 100644 (file)
@@ -113,14 +113,16 @@ void Tracks::clear_selected_edits()
        }
 }
 
-void Tracks::select_affected_edits(double position, Track *start_track)
+void Tracks::select_affected_edits(double position, Track *start_track, int sense)
 {
        for( Track *track=start_track; track; track=track->next ) {
                if( !track->record ) continue;
                for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+                       if( edit->silence() ) continue;
                        double startproject = track->from_units(edit->startproject);
                        if( edl->equivalent(startproject, position) ) {
-                               edit->is_selected = 1;
+                               edit->is_selected = sense >= 0 ? sense :
+                                       edit->is_selected ? 0 : 1;
                                break;
                        }
                }
@@ -658,6 +660,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;
@@ -672,7 +675,7 @@ int Tracks::set_group_selected(int id, int v)
        for( Track *track=first; track; track=track->next ) {
                for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
                        if( edit->group_id != id ) continue;
-                       edit->is_selected = v;
+                       edit->is_selected = v >= 0 ? v : !edit->is_selected ? 1 : 0;
                        ++count;
                }
        }