* fixed missing track color mode persistence
authorHans Baier <hansfbaier@googlemail.com>
Mon, 29 Dec 2008 01:02:41 +0000 (01:02 +0000)
committerHans Baier <hansfbaier@googlemail.com>
Mon, 29 Dec 2008 01:02:41 +0000 (01:02 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@4357 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/midi_time_axis.cc
gtk2_ardour/midi_time_axis.h
gtk2_ardour/route_time_axis.cc
libs/ardour/enums.cc

index 709f740bf0c4ce1a4f9f8127748f61bbee442dda..0911b7198eb596dc49a44a11a80676975643e9b4 100644 (file)
@@ -28,6 +28,7 @@
 #include <pbd/error.h>
 #include <pbd/stl_delete.h>
 #include <pbd/whitespace.h>
+#include <pbd/enumwriter.h>
 
 #include <gtkmm2ext/gtk_ui.h>
 #include <gtkmm2ext/selector.h>
@@ -181,6 +182,13 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess, boost::shar
        _channel_selector.mode_changed.connect(
                mem_fun(*midi_track()->midi_diskstream(), &MidiDiskstream::set_channel_mode));
 
+       XMLProperty *prop;
+       if ((prop = xml_node->property ("color-mode")) != 0) {
+               _color_mode = ColorMode (string_2_enum(prop->value(), _color_mode));
+               if (_color_mode == ChannelColors) {
+                       _channel_selector.set_channel_colors(CanvasNoteEvent::midi_channel_colors);
+               }
+       }
 }
 
 MidiTimeAxisView::~MidiTimeAxisView ()
@@ -306,7 +314,7 @@ MidiTimeAxisView::build_automation_action_menu ()
 }
 
 Gtk::Menu*
-MidiTimeAxisView::build_mode_menu()
+MidiTimeAxisView::build_note_mode_menu()
 {
        using namespace Menu_Helpers;
 
@@ -377,6 +385,7 @@ MidiTimeAxisView::set_color_mode(ColorMode mode)
                }
 
                _color_mode = mode;
+               xml_node->add_property ("color-mode", enum_2_string(_color_mode));
                _view->redisplay_diskstream();
        }
 }
index 54fe47a555fec5d3e040f1cbbbc8b110d872130f..f535fd6322e8bad806d454119fd0c8b416f80905 100644 (file)
@@ -94,7 +94,7 @@ class MidiTimeAxisView : public RouteTimeAxisView
        
        void append_extra_display_menu_items ();
        void build_automation_action_menu ();
-       Gtk::Menu* build_mode_menu();
+       Gtk::Menu* build_note_mode_menu();
        Gtk::Menu* build_color_mode_menu();
 
        void set_note_mode (ARDOUR::NoteMode mode);
index 17ed5c91333b09af4a02e5fffc3202e7ff88236d..460213759a04c254806239ece4e1a0715891bd46 100644 (file)
@@ -575,8 +575,6 @@ RouteTimeAxisView::build_display_menu ()
                if (mode_menu)
                        items.push_back (MenuElem (_("Mode"), *mode_menu));
                        
-               items.push_back (SeparatorElem());
-
                color_mode_menu = build_color_mode_menu();
                if (color_mode_menu)
                        items.push_back (MenuElem (_("Color Mode"), *color_mode_menu));
index 350c6dba9ada4e2fd941cb2f8ddae4ccc77ea1f7..0c307d060565239caeb1b0d12bc07bcfa19f61ba 100644 (file)
@@ -50,6 +50,7 @@ setup_enum_writer ()
        TrackMode _TrackMode;
        NoteMode _NoteMode;
        ChannelMode _ChannelMode;
+       ColorMode _ColorMode;
        MeterFalloff _MeterFalloff;
        MeterHold _MeterHold;
        EditMode _EditMode;
@@ -163,6 +164,11 @@ setup_enum_writer ()
        REGISTER_ENUM (ForceChannel);
        REGISTER (_ChannelMode);
 
+       REGISTER_ENUM (MeterColors);
+       REGISTER_ENUM (ChannelColors);
+       REGISTER_ENUM (TrackColor);
+       REGISTER (_ColorMode);
+       
        REGISTER_ENUM (MeterFalloffOff);
        REGISTER_ENUM (MeterFalloffSlowest);
        REGISTER_ENUM (MeterFalloffSlow);