remove debug output from last commit
[ardour.git] / gtk2_ardour / editor_selection.cc
index 56e88d9744cbc8190a986f4684045f9ef2d80fc7..14cacc0996757de98d6051d01dc9b4c2afca05cf 100644 (file)
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: editor.cc 1353 2007-01-18 03:06:15Z paul $
 */
 
+#include <pbd/stacktrace.h>
+
 #include <ardour/diskstream.h>
 #include <ardour/playlist.h>
 #include <ardour/route_group.h>
@@ -152,6 +153,11 @@ Editor::extend_selection_to_track (TimeAxisView& view)
        return false;
 }
 
+void
+Editor::select_all_tracks ()
+{
+       selection->set (track_views);
+}
 
 bool
 Editor::set_selected_track (TimeAxisView& view, Selection::Operation op, bool no_remove)
@@ -313,7 +319,7 @@ Editor::mapped_get_equivalent_regions (RouteTimeAxisView& tv, uint32_t ignored,
        if ((pl = ds->playlist()) != 0) {
                pl->get_equivalent_regions (basis->region(), results);
        }
-       
+
        for (vector<boost::shared_ptr<Region> >::iterator ir = results.begin(); ir != results.end(); ++ir) {
                if ((marv = tv.view()->find_view (*ir)) != 0) {
                        all_equivs->push_back (marv);
@@ -343,17 +349,11 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
 
        if (press) {
                button_release_can_deselect = false;
-       }
-
+       } 
 
        if (op == Selection::Toggle || op == Selection::Set) {
-               
-               if (selection->selected (clicked_audio_trackview)) {
-                       get_equivalent_regions (clicked_regionview, all_equivalent_regions);
-               } else {
-                       all_equivalent_regions.push_back (clicked_regionview);
-               }
-               
+
+
                switch (op) {
                case Selection::Toggle:
                        
@@ -386,8 +386,17 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
                        } else {
 
                                if (press) {
+
+                                       if (selection->selected (clicked_audio_trackview)) {
+                                               get_equivalent_regions (clicked_regionview, all_equivalent_regions);
+                                       } else {
+                                               all_equivalent_regions.push_back (clicked_regionview);
+                                       }
+
                                        /* add all the equivalent regions, but only on button press */
                                        
+
+
                                        if (!all_equivalent_regions.empty()) {
                                                commit = true;
                                        }
@@ -399,6 +408,13 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
                        
                case Selection::Set:
                        if (!clicked_regionview->get_selected()) {
+
+                               if (selection->selected (clicked_audio_trackview)) {
+                                       get_equivalent_regions (clicked_regionview, all_equivalent_regions);
+                               } else {
+                                       all_equivalent_regions.push_back (clicked_regionview);
+                               }
+
                                selection->set (all_equivalent_regions);
                                commit = true;
                        } else {
@@ -484,7 +500,7 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
                set<AudioTimeAxisView*> relevant_tracks;
                
                get_relevant_audio_tracks (relevant_tracks);
-               
+
                for (set<AudioTimeAxisView*>::iterator t = relevant_tracks.begin(); t != relevant_tracks.end(); ++t) {
                        (*t)->get_selectables (first_frame, last_frame, -1.0, -1.0, results);
                }