Don't invalidate AU preset on load
[ardour.git] / gtk2_ardour / export_format_dialog.cc
index 2a3a563005f97b8d09131757a90dc5ac24f85f1a..4d87828d6b9e98eb628cb374aad1c7357a86af39 100644 (file)
@@ -661,6 +661,8 @@ ExportFormatDialog::update_selection (Glib::RefPtr<Gtk::ListStore> & list, Gtk::
                bool selected = selection->is_selected (it);
                it->get_value (cols.ptr)->set_selected (selected);
        }
+
+       set_codec_quality_selection ();
 }
 
 void
@@ -1026,13 +1028,14 @@ ExportFormatDialog::show_linear_enconding_options (boost::shared_ptr<ARDOUR::Exp
 }
 
 void
-ExportFormatDialog::show_ogg_enconding_options (boost::shared_ptr<ARDOUR::ExportFormatOggVorbis> /*ptr*/)
+ExportFormatDialog::show_ogg_enconding_options (boost::shared_ptr<ARDOUR::ExportFormatOggVorbis> ptr)
 {
        encoding_options_label.set_label (_("Ogg Vorbis options"));
 
-       encoding_options_table.resize (1, 1);
-       encoding_options_table.attach (tag_checkbox, 0, 1, 0, 1);
-
+       encoding_options_table.resize (2, 1);
+       encoding_options_table.attach (codec_quality_combo, 0, 1, 0, 1);
+       encoding_options_table.attach (tag_checkbox, 0, 1, 1, 2);
+       fill_codec_quality_lists (ptr);
        show_all_children ();
 }
 
@@ -1075,25 +1078,7 @@ ExportFormatDialog::show_ffmpeg_enconding_options (boost::shared_ptr<ARDOUR::Exp
        encoding_options_label.set_label (_("FFMPEG/MP3 options"));
        encoding_options_table.resize (1, 1);
        encoding_options_table.attach (codec_quality_combo, 0, 1, 0, 1);
-
-       HasCodecQuality::CodecQualityList const & codecs = ptr->get_codec_qualities();
-
-       codec_quality_list->clear();
-       for (HasCodecQuality::CodecQualityList::const_iterator it = codecs.begin(); it != codecs.end(); ++it) {
-
-       Gtk::TreeModel::iterator iter = codec_quality_list->append();
-       Gtk::TreeModel::Row row = *iter;
-               row[codec_quality_cols.quality] = (*it)->quality;
-               row[codec_quality_cols.label] = (*it)->name;
-       }
-
-       for (Gtk::ListStore::Children::iterator it = codec_quality_list->children().begin(); it != codec_quality_list->children().end(); ++it) {
-               if (it->get_value (codec_quality_cols.quality) == format->codec_quality()) {
-                       codec_quality_combo.set_active (it);
-                       break;
-               }
-       }
-
+       fill_codec_quality_lists (ptr);
        show_all_children ();
 }
 
@@ -1140,6 +1125,33 @@ ExportFormatDialog::fill_sample_format_lists (boost::shared_ptr<ARDOUR::HasSampl
        }
 }
 
+void
+ExportFormatDialog::fill_codec_quality_lists (boost::shared_ptr<ARDOUR::HasCodecQuality> ptr)
+{
+       HasCodecQuality::CodecQualityList const & codecs = ptr->get_codec_qualities();
+
+       codec_quality_list->clear();
+       for (HasCodecQuality::CodecQualityList::const_iterator it = codecs.begin(); it != codecs.end(); ++it) {
+
+       Gtk::TreeModel::iterator iter = codec_quality_list->append();
+       Gtk::TreeModel::Row row = *iter;
+               row[codec_quality_cols.quality] = (*it)->quality;
+               row[codec_quality_cols.label] = (*it)->name;
+       }
+       set_codec_quality_selection ();
+}
+
+void
+ExportFormatDialog::set_codec_quality_selection ()
+{
+       for (Gtk::ListStore::Children::iterator it = codec_quality_list->children().begin(); it != codec_quality_list->children().end(); ++it) {
+               if (it->get_value (codec_quality_cols.quality) == format->codec_quality()) {
+                       codec_quality_combo.set_active (it);
+                       break;
+               }
+       }
+}
+
 void
 ExportFormatDialog::end_dialog ()
 {