X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_preset_selector.cc;h=3898916bc05899d767ec871c5a8accf20ad62f97;hb=5932b7903a7c43cc3b5cfd043e64d577e0125799;hp=dab10e335d7c5680d16816cd832b572430178726;hpb=bb9cc45cd22af67ac275a5e73accbe14fee664d8;p=ardour.git diff --git a/gtk2_ardour/export_preset_selector.cc b/gtk2_ardour/export_preset_selector.cc index dab10e335d..3898916bc0 100644 --- a/gtk2_ardour/export_preset_selector.cc +++ b/gtk2_ardour/export_preset_selector.cc @@ -31,6 +31,7 @@ ExportPresetSelector::ExportPresetSelector () : new_button (Gtk::Stock::NEW) { list = Gtk::ListStore::create (cols); + list->set_sort_column (cols.label, Gtk::SORT_ASCENDING); entry.set_model (list); entry.set_text_column (cols.label); @@ -51,7 +52,7 @@ ExportPresetSelector::ExportPresetSelector () : select_connection = entry.signal_changed().connect (sigc::mem_fun (*this, &ExportPresetSelector::update_selection)); save_button.signal_clicked().connect (sigc::mem_fun (*this, &ExportPresetSelector::save_current)); - new_button.signal_clicked().connect (sigc::mem_fun (*this, &ExportPresetSelector::save_current)); + new_button.signal_clicked().connect (sigc::mem_fun (*this, &ExportPresetSelector::create_new)); remove_button.signal_clicked().connect (sigc::mem_fun (*this, &ExportPresetSelector::remove_current)); show_all_children (); @@ -75,7 +76,7 @@ ExportPresetSelector::sync_with_manager () for (PresetList::const_iterator it = presets.begin(); it != presets.end(); ++it) { tree_it = list->append(); tree_it->set_value (cols.preset, *it); - tree_it->set_value (cols.label, Glib::ustring ((*it)->name())); + tree_it->set_value (cols.label, std::string ((*it)->name())); if (*it == current) { select_connection.block (true); @@ -89,7 +90,7 @@ void ExportPresetSelector::update_selection () { Gtk::ListStore::iterator it = entry.get_active (); - Glib::ustring text = entry.get_entry()->get_text(); + std::string text = entry.get_entry()->get_text(); bool preset_name_exists = false; for (PresetList::const_iterator it = profile_manager->get_presets().begin(); it != profile_manager->get_presets().end(); ++it) { @@ -127,6 +128,16 @@ ExportPresetSelector::update_selection () new_button.set_sensitive (!current && !text.empty() && !preset_name_exists); } +void +ExportPresetSelector::create_new () +{ + if (!profile_manager) { return; } + + previous = current = profile_manager->new_preset (entry.get_entry()->get_text()); + sync_with_manager (); + update_selection (); // Update preset widget states +} + void ExportPresetSelector::save_current () {