Fix problem with turning off 'disable-disarm-during-roll' during roll
authorCarl Hetherington <carl@carlh.net>
Sun, 14 Jun 2009 17:56:29 +0000 (17:56 +0000)
committerCarl Hetherington <carl@carlh.net>
Sun, 14 Jun 2009 17:56:29 +0000 (17:56 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@5190 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/route_ui.cc
gtk2_ardour/route_ui.h

index 7926c9c4681a153ddd648cfa7ff4714c403d3c95..6c56ab132c3413c88783726b857327f444a366dc 100644 (file)
@@ -129,6 +129,8 @@ RouteUI::init ()
 
        _session.SoloChanged.connect (mem_fun(*this, &RouteUI::solo_changed_so_update_mute));
        _session.TransportStateChange.connect (mem_fun (*this, &RouteUI::check_rec_enable_sensitivity));
+
+       Config->ParameterChanged.connect (mem_fun (*this, &RouteUI::parameter_changed));
 }
 
 void
@@ -1364,13 +1366,19 @@ RouteUI::save_as_template ()
 void
 RouteUI::check_rec_enable_sensitivity ()
 {
-       if (Config->get_disable_disarm_during_roll () == false) {
-               return;
-       }
-
-       if (_session.transport_rolling() && rec_enable_button->get_active()) {
+       if (_session.transport_rolling() && rec_enable_button->get_active() && Config->get_disable_disarm_during_roll()) {
                rec_enable_button->set_sensitive (false);
        } else {
                rec_enable_button->set_sensitive (true);
        }
 }
+
+void
+RouteUI::parameter_changed (string const & p)
+{
+       ENSURE_GUI_THREAD (bind (mem_fun (*this, &RouteUI::parameter_changed), p));
+       
+       if (p == "disable-disarm-during-roll") {
+               check_rec_enable_sensitivity ();
+       }
+}
index 42a373ae7bedd52d48edaefe3d326ca4778b36c2..f08495a7c6a1918bc95bdcb1673ffeb71a07ffba 100644 (file)
@@ -183,8 +183,6 @@ class RouteUI : public virtual AxisView
        void save_as_template ();
  
    protected:
-       void check_rec_enable_sensitivity ();
-       
        std::vector<sigc::connection> connections;
        std::string s_name;
        std::string m_name;
@@ -194,6 +192,10 @@ class RouteUI : public virtual AxisView
 
        void init ();
        void reset ();
+
+  private:
+       void check_rec_enable_sensitivity ();
+       void parameter_changed (std::string const &);
 };
 
 #endif /* __ardour_route_ui__ */