Fix 6031: Fix inactive MIDI track headers when reloading session
authorJulien ROGER <gulien.roger@gmail.com>
Thu, 11 Feb 2016 23:25:17 +0000 (00:25 +0100)
committerTim Mayberry <mojofunk@gmail.com>
Sat, 13 Feb 2016 02:52:34 +0000 (12:52 +1000)
Update the visual state of MidiTimeAxisView accordingly to its route in
MidiTimeAxisView::set_route()

gtk2_ardour/midi_time_axis.cc
gtk2_ardour/midi_time_axis.h

index 8ff5d56d70b15be3d8f8d363d6252d4228616778..7d018574d8f64b9ff2e4556616ef02c1f4eac78a 100644 (file)
@@ -169,12 +169,7 @@ MidiTimeAxisView::set_route (boost::shared_ptr<Route> rt)
        ignore_toggle = false;
 
        if (is_midi_track()) {
-               controls_ebox.set_name ("MidiTimeAxisViewControlsBaseUnselected");
-               time_axis_frame.set_name ("MidiTimeAxisViewControlsBaseUnselected");
                _note_mode = midi_track()->note_mode();
-       } else { // MIDI bus (which doesn't exist yet..)
-               controls_ebox.set_name ("MidiBusControlsBaseUnselected");
-               time_axis_frame.set_name ("MidiBusControlsBaseUnselected");
        }
 
        /* if set_state above didn't create a gain automation child, we need to make one */
@@ -193,7 +188,7 @@ MidiTimeAxisView::set_route (boost::shared_ptr<Route> rt)
 
        /* map current state of the route */
        ensure_pan_views (false);
-
+       update_control_names();
        processors_changed (RouteProcessorChange ());
 
        _route->processors_changed.connect (*this, invalidator (*this),
@@ -238,11 +233,6 @@ MidiTimeAxisView::set_route (boost::shared_ptr<Route> rt)
                time_axis_hbox.pack_end(*v, false, false, 0);
                midi_scroomer_size_group->add_widget (*v);
 
-               controls_ebox.set_name ("MidiTrackControlsBaseUnselected");
-               time_axis_frame.set_name ("MidiTrackControlsBaseUnselected");
-               controls_base_selected_name = "MidiTrackControlsBaseSelected";
-               controls_base_unselected_name = "MidiTrackControlsBaseUnselected";
-
                midi_view()->NoteRangeChanged.connect (
                        sigc::mem_fun(*this, &MidiTimeAxisView::update_range));
 
@@ -1287,32 +1277,37 @@ void
 MidiTimeAxisView::route_active_changed ()
 {
        RouteUI::route_active_changed ();
+       update_control_names();
+}
 
+void
+MidiTimeAxisView::update_control_names ()
+{
        if (is_track()) {
                if (_route->active()) {
-                       controls_ebox.set_name ("MidiTrackControlsBaseUnselected");
-                       time_axis_frame.set_name ("MidiTrackControlsBaseUnselected");
                        controls_base_selected_name = "MidiTrackControlsBaseSelected";
                        controls_base_unselected_name = "MidiTrackControlsBaseUnselected";
                } else {
-                       controls_ebox.set_name ("MidiTrackControlsBaseInactiveUnselected");
-                       time_axis_frame.set_name ("MidiTrackControlsBaseInactiveUnselected");
                        controls_base_selected_name = "MidiTrackControlsBaseInactiveSelected";
                        controls_base_unselected_name = "MidiTrackControlsBaseInactiveUnselected";
                }
-       } else {
+       } else { // MIDI bus (which doesn't exist yet..)
                if (_route->active()) {
-                       controls_ebox.set_name ("BusControlsBaseUnselected");
-                       time_axis_frame.set_name ("BusControlsBaseUnselected");
                        controls_base_selected_name = "BusControlsBaseSelected";
                        controls_base_unselected_name = "BusControlsBaseUnselected";
                } else {
-                       controls_ebox.set_name ("BusControlsBaseInactiveUnselected");
-                       time_axis_frame.set_name ("BusControlsBaseInactiveUnselected");
                        controls_base_selected_name = "BusControlsBaseInactiveSelected";
                        controls_base_unselected_name = "BusControlsBaseInactiveUnselected";
                }
        }
+
+       if (get_selected()) {
+               controls_ebox.set_name (controls_base_selected_name);
+               time_axis_frame.set_name (controls_base_selected_name);
+       } else {
+               controls_ebox.set_name (controls_base_unselected_name);
+               time_axis_frame.set_name (controls_base_unselected_name);
+       }
 }
 
 void
index fb95ae94fb3bbaf35c446e968c69ab8d007ab23e..6fe77dc8ac091f46804b2f2cad687f168c7381ff 100644 (file)
@@ -133,6 +133,8 @@ private:
        void note_range_changed ();
        void contents_height_changed ();
 
+       void update_control_names ();
+
        bool                         _ignore_signals;
        MidiScroomer*                _range_scroomer;
        PianoRollHeader*             _piano_roll_header;