add left/right side trim cursors and use them for region trimming, as appropriate
[ardour.git] / gtk2_ardour / editor_route_groups.cc
index c6ee08fae60da426826d6870126e566320101df6..c30132a3b883ab4d4537be7e9080b696c7f0d5c7 100644 (file)
@@ -20,7 +20,6 @@
 #include <cstdlib>
 #include <cmath>
 
-#include <gtkmm2ext/stop_signal.h>
 #include <gtkmm2ext/gtk_ui.h>
 #include "ardour/route_group.h"
 
@@ -536,7 +535,7 @@ EditorRouteGroups::row_change (const Gtk::TreeModel::Path&, const Gtk::TreeModel
        } else {
                for (TrackViewList::const_iterator j = _editor->get_track_views().begin(); j != _editor->get_track_views().end(); ++j) {
                        if ((*j)->route_group() == group) {
-                               _editor->hide_track_in_display (**j);
+                               _editor->hide_track_in_display (*j);
                        }
                }
        }
@@ -556,6 +555,8 @@ EditorRouteGroups::row_change (const Gtk::TreeModel::Path&, const Gtk::TreeModel
        plist.add (Properties::edit, val);
        plist.add (Properties::name, string ((*iter)[_columns.text]));
        
+       group->set_hidden (!(*iter)[_columns.is_visible], this);
+       
        group->set_properties (plist);
 }
 
@@ -586,7 +587,7 @@ EditorRouteGroups::add (RouteGroup* group)
                focus = true;
        }
 
-       group->FlagsChanged.connect (flags_connection, ui_bind (&EditorRouteGroups::flags_changed, this, _1, group), gui_context());
+       group->PropertyChanged.connect (property_changed_connection, MISSING_INVALIDATOR, ui_bind (&EditorRouteGroups::property_changed, this, group, _1), gui_context());
 
        if (focus) {
                TreeViewColumn* col = _display.get_column (0);
@@ -622,10 +623,8 @@ EditorRouteGroups::groups_changed ()
 }
 
 void
-EditorRouteGroups::flags_changed (void*, RouteGroup* group)
+EditorRouteGroups::property_changed (RouteGroup* group, const PropertyChange& change)
 {
-        ENSURE_GUI_THREAD (*this, &EditorRouteGroups::flags_changed, src, group)
-
        _in_row_change = true;
 
         Gtk::TreeModel::Children children = _model->children();
@@ -645,7 +644,9 @@ EditorRouteGroups::flags_changed (void*, RouteGroup* group)
 
        _in_row_change = false;
 
-       _editor->_group_tabs->set_dirty ();
+       if (change.contains (Properties::name) || change.contains (Properties::active)) {
+               _editor->_group_tabs->set_dirty ();
+       }
 }
 
 void
@@ -680,8 +681,8 @@ EditorRouteGroups::set_session (Session* s)
        EditorComponent::set_session (s);
 
        if (_session) {
-               _session->route_group_added.connect (_session_connections, ui_bind (&EditorRouteGroups::add, this, _1), gui_context());
-               _session->route_group_removed.connect (_session_connections, boost::bind (&EditorRouteGroups::groups_changed, this), gui_context());
+               _session->route_group_added.connect (_session_connections, MISSING_INVALIDATOR, ui_bind (&EditorRouteGroups::add, this, _1), gui_context());
+               _session->route_group_removed.connect (_session_connections, MISSING_INVALIDATOR, boost::bind (&EditorRouteGroups::groups_changed, this), gui_context());
        }
 
        groups_changed ();