From 32b97031cfdb35b4c75abe2967d2513a1486d575 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 10 Oct 2019 23:59:55 +0200 Subject: [PATCH] Preset-Browser: highlight only unmodified presets --- gtk2_ardour/plugin_presets_ui.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/plugin_presets_ui.cc b/gtk2_ardour/plugin_presets_ui.cc index 526cdaad08..71523bcdd0 100644 --- a/gtk2_ardour/plugin_presets_ui.cc +++ b/gtk2_ardour/plugin_presets_ui.cc @@ -67,6 +67,7 @@ PluginPresetsUI::PluginPresetsUI (boost::shared_ptr insert) plugin->PresetAdded.connect (_preset_connections, invalidator (*this), boost::bind (&PluginPresetsUI::update_preset_list, this), gui_context ()); plugin->PresetRemoved.connect (_preset_connections, invalidator (*this), boost::bind (&PluginPresetsUI::update_preset_list, this), gui_context ()); plugin->PresetLoaded.connect (_preset_connections, invalidator (*this), boost::bind (&PluginPresetsUI::update_preset_list, this), gui_context ()); + plugin->PresetDirty.connect (_preset_connections, invalidator (*this), boost::bind (&PluginPresetsUI::update_preset_list, this), gui_context ()); update_preset_list (); } @@ -91,9 +92,11 @@ PluginPresetsUI::update_preset_list () bool found_active = false; + bool const modified = plugin->parameter_changed_since_last_preset (); + for (std::vector::const_iterator i = presets.begin (); i != presets.end (); ++i) { Gtk::TreeModel::Row row = *(_plugin_preset_model->append ()); - if (p.uri == i->uri) { + if (p.uri == i->uri && !modified) { row[_plugin_preset_columns.name] = string_compose ("%1", Gtkmm2ext::markup_escape_text (i->label)); found_active = true; } else { @@ -105,7 +108,7 @@ PluginPresetsUI::update_preset_list () { Gtk::TreeModel::Row row = *(_plugin_preset_model->prepend ()); - if (found_active) { + if (found_active || modified) { row[_plugin_preset_columns.name] = _("(none)"); } else { row[_plugin_preset_columns.name] = string_compose ("%1", _("(none)")); @@ -122,7 +125,6 @@ PluginPresetsUI::update_preset_list () break; } } - } void