X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fexport_file_notebook.cc;h=ef0c56f55cb39b7f5356aaec50743b87ba09e3a0;hb=51138ef75b4c59ea5a0c35c23906a093c1e34b2c;hp=9b5136c9a4be1976728227b7849ab1749ac2df0a;hpb=b0b584c2a595bfdf6bb4b980bd8d8fc7f3546fc5;p=ardour.git diff --git a/gtk2_ardour/export_file_notebook.cc b/gtk2_ardour/export_file_notebook.cc index 9b5136c9a4..ef0c56f55c 100644 --- a/gtk2_ardour/export_file_notebook.cc +++ b/gtk2_ardour/export_file_notebook.cc @@ -22,6 +22,7 @@ #include "ardour/export_format_specification.h" +#include "gui_thread.h" #include "utils.h" #include "i18n.h" @@ -31,17 +32,17 @@ ExportFileNotebook::ExportFileNotebook () : page_counter (1) { /* Last page */ - + new_file_button.set_image (*Gtk::manage (new Gtk::Image (::get_icon("add")))); new_file_button.set_label (_(" Click here to add another format")); new_file_button.set_alignment (0, 0.5); new_file_button.set_relief (Gtk::RELIEF_NONE); - + new_file_hbox.pack_start (new_file_button, true, true); append_page (new_file_dummy, new_file_hbox); set_tab_label_packing (new_file_dummy, true, true, Gtk::PACK_START); new_file_hbox.show_all_children (); - + page_change_connection = signal_switch_page().connect (sigc::mem_fun (*this, &ExportFileNotebook::handle_page_change)); new_file_button.signal_clicked().connect (sigc::mem_fun (*this, &ExportFileNotebook::add_new_file_page)); } @@ -49,9 +50,9 @@ ExportFileNotebook::ExportFileNotebook () : void ExportFileNotebook::set_session_and_manager (ARDOUR::Session * s, boost::shared_ptr manager) { - session = s; + SessionHandlePtr::set_session (s); profile_manager = manager; - + sync_with_manager (); } @@ -67,7 +68,7 @@ ExportFileNotebook::sync_with_manager () remove_page (0); } page_change_connection.block(false); - + page_counter = 1; last_visible_page = 0; @@ -82,12 +83,12 @@ ExportFileNotebook::sync_with_manager () ++format_it, ++filename_it) { add_file_page (*format_it, *filename_it); } - + set_current_page (0); CriticalSelectionChanged (); } -Glib::ustring +std::string ExportFileNotebook::get_nth_format_name (uint32_t n) { FilePage * page; @@ -110,14 +111,14 @@ ExportFileNotebook::add_new_file_page () void ExportFileNotebook::add_file_page (ARDOUR::ExportProfileManager::FormatStatePtr format_state, ARDOUR::ExportProfileManager::FilenameStatePtr filename_state) { - FilePage * page = Gtk::manage (new FilePage (session, profile_manager, this, page_counter, format_state, filename_state)); + FilePage * page = Gtk::manage (new FilePage (_session, profile_manager, this, page_counter, format_state, filename_state)); page->CriticalSelectionChanged.connect (CriticalSelectionChanged.make_slot()); insert_page (*page, page->get_tab_widget(), get_n_pages() - 1); update_remove_file_page_sensitivity (); show_all_children(); ++page_counter; - + CriticalSelectionChanged (); } @@ -129,7 +130,7 @@ ExportFileNotebook::remove_file_page (FilePage * page) remove_page (*page); update_remove_file_page_sensitivity (); - + CriticalSelectionChanged (); } @@ -173,51 +174,51 @@ ExportFileNotebook::FilePage::FilePage (Session * s, ManagerPtr profile_manager, pack_start (format_align, false, false, 0); pack_start (filename_label, false, false, 0); pack_start (filename_align, false, false, 0); - + format_align.add (format_selector); format_align.set_padding (6, 12, 18, 0); - + filename_align.add (filename_selector); filename_align.set_padding (0, 12, 18, 0); - + Pango::AttrList bold; Pango::Attribute b = Pango::Attribute::create_attr_weight (Pango::WEIGHT_BOLD); bold.insert (b); - + format_label.set_attributes (bold); filename_label.set_attributes (bold); tab_label.set_attributes (bold); - + /* Set states */ format_selector.set_state (format_state, s); filename_selector.set_state (filename_state, s); - + /* Signals */ - + tab_close_button.signal_clicked().connect (sigc::bind (sigc::mem_fun (*parent, &ExportFileNotebook::remove_file_page), this)); - - profile_manager->FormatListChanged.connect (sigc::mem_fun (format_selector, &ExportFormatSelector::update_format_list)); - + + profile_manager->FormatListChanged.connect (format_connection, invalidator (*this), boost::bind (&ExportFormatSelector::update_format_list, &format_selector), gui_context()); + format_selector.FormatEdited.connect (sigc::mem_fun (*this, &ExportFileNotebook::FilePage::save_format_to_manager)); format_selector.FormatRemoved.connect (sigc::mem_fun (*profile_manager, &ExportProfileManager::remove_format_profile)); format_selector.NewFormat.connect (sigc::mem_fun (*profile_manager, &ExportProfileManager::get_new_format)); - + format_selector.CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportFileNotebook::FilePage::update_tab_label)); filename_selector.CriticalSelectionChanged.connect (CriticalSelectionChanged.make_slot()); - + /* Tab widget */ - + tab_close_button.add (*Gtk::manage (new Gtk::Image (::get_icon("close")))); tab_close_alignment.add (tab_close_button); tab_close_alignment.set (0.5, 0.5, 0, 0); - + tab_widget.pack_start (tab_label, false, false, 3); tab_widget.pack_end (tab_close_alignment, false, false, 0); tab_widget.show_all_children (); update_tab_label (); - + /* Done */ - + show_all_children (); } @@ -231,7 +232,7 @@ ExportFileNotebook::FilePage::set_remove_sensitive (bool value) tab_close_button.set_sensitive (value); } -Glib::ustring +std::string ExportFileNotebook::FilePage::get_format_name () const { if (format_state && format_state->format) {