Mackie control panel: display the profile name when any button action is changed.
authorBen Loftis <ben@harrisonconsoles.com>
Fri, 5 May 2017 21:38:19 +0000 (16:38 -0500)
committerRobin Gareus <robin@gareus.org>
Fri, 12 May 2017 13:43:44 +0000 (15:43 +0200)
libs/surfaces/mackie/gui.cc
libs/surfaces/mackie/gui.h

index 15be6394ef1b1a2556b14d451cc6520dda2cbfd3..708fc5328c9aa618c3fb6db73a79cd8d674db7d7 100644 (file)
@@ -94,6 +94,7 @@ MackieControlProtocolGUI::MackieControlProtocolGUI (MackieControlProtocol& p)
        , ipmidi_base_port_adjustment (_cp.ipmidi_base(), 0, 32767, 1, 1000)
        , discover_button (_("Discover Mackie Devices"))
        , _device_dependent_widget (0)
+       , _ignore_profile_changed (false)
        , ignore_active_change (false)
 {
        Gtk::Label* l;
@@ -805,6 +806,10 @@ MackieControlProtocolGUI::action_changed (const Glib::ustring &sPath, const Glib
                                _cp.device_profile().set_button_action ((*row)[function_key_columns.id], modifier, i->second);
                        }
 
+                       _ignore_profile_changed = true;
+                       _profile_combo.set_active_text ( _cp.device_profile().name() );
+                       _ignore_profile_changed = false;
+
                } else {
                        std::cerr << "no such action\n";
                }
@@ -834,11 +839,13 @@ MackieControlProtocolGUI::device_changed ()
 void
 MackieControlProtocolGUI::profile_combo_changed ()
 {
-       string profile = _profile_combo.get_active_text();
+       if (!_ignore_profile_changed) {
+               string profile = _profile_combo.get_active_text();
 
-       _cp.set_profile (profile);
+               _cp.set_profile (profile);
 
-       refresh_function_key_editor ();
+               refresh_function_key_editor ();
+       }
 }
 
 void
index 15d266634cc3dcdc56e99c7eef875911ca04b3ac..0f91a32e123d55d5b81c7326a6b2ad1e1c1d8eb8 100644 (file)
@@ -151,6 +151,7 @@ class MackieControlProtocolGUI : public Gtk::Notebook
        void connection_handler ();
 
        Glib::RefPtr<Gtk::ListStore> build_midi_port_list (std::vector<std::string> const & ports, bool for_input);
+       bool _ignore_profile_changed;
        bool ignore_active_change;
        void active_port_changed (Gtk::ComboBox* combo, boost::weak_ptr<Mackie::Surface> ws, bool for_input);
 };