X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui_dialogs.cc;h=140ee649ea59f07b678609672b01e9e67b13858a;hb=ca49f7cba731bd443c4a62184c8dec892b4ce5e7;hp=a6f0e2dc500a4be6b1e23636063ac75b7fbfcab4;hpb=2ce07f34e2aa36eed04753a4a24248e96134dd0b;p=ardour.git diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index a6f0e2dc50..140ee649ea 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -39,6 +39,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Glib; using namespace Gtk; using namespace Gtkmm2ext; @@ -49,6 +50,7 @@ ARDOUR_UI::connect_to_session (Session *s) session = s; session->HaltOnXrun.connect (mem_fun(*this, &ARDOUR_UI::halt_on_xrun_message)); + session->RecordStateChanged.connect (mem_fun (*this, &ARDOUR_UI::record_state_changed)); /* sensitize menu bar options that are now valid */ @@ -75,10 +77,6 @@ ARDOUR_UI::connect_to_session (Session *s) rec_button.set_sensitive (true); shuttle_box.set_sensitive (true); - if (session->n_diskstreams() == 0) { - session->DiskStreamAdded.connect (mem_fun(*this, &ARDOUR_UI::diskstream_added)); - } - if (connection_editor) { connection_editor->set_session (s); } @@ -95,10 +93,6 @@ ARDOUR_UI::connect_to_session (Session *s) option_editor->set_session (s); } - if (sfdb) { - sfdb->set_session (s); - } - setup_session_options (); Blink.connect (mem_fun(*this, &ARDOUR_UI::transport_rec_enable_blink)); @@ -131,13 +125,16 @@ ARDOUR_UI::connect_to_session (Session *s) connect_dependents_to_session (s); + /* listen to clock mode changes. don't do this earlier because otherwise as the clocks + restore their modes or are explicitly set, we will cause the "new" mode to be saved + back to the session XML ("extra") state. + */ + + AudioClock::ModeChanged.connect (mem_fun (*this, &ARDOUR_UI::store_clock_modes)); + start_clocking (); start_blinking (); - if (editor) { - editor->present(); - } - transport_stopped (); second_connection = Glib::signal_timeout().connect (mem_fun(*this, &ARDOUR_UI::every_second), 1000); @@ -158,7 +155,7 @@ ARDOUR_UI::unload_session () break; } } - + editor->hide (); second_connection.disconnect (); point_one_second_connection.disconnect (); point_zero_one_second_connection.disconnect(); @@ -352,37 +349,6 @@ ARDOUR_UI::toggle_route_params_window () } } -int -ARDOUR_UI::create_sound_file_browser () -{ - if (sfdb == 0) { - sfdb = new SoundFileBrowser (_("Sound File Browser")); - sfdb->set_session (session); - sfdb->signal_unmap().connect (sigc::bind(sigc::ptr_fun(&ActionManager::uncheck_toggleaction), X_("/Common/ToggleSoundFileBrowser"))); - } - return 0; -} - -void -ARDOUR_UI::toggle_sound_file_browser () -{ - if (create_sound_file_browser()) { - return; - } - - RefPtr act = ActionManager::get_action (X_("Common"), X_("ToggleSoundFileBrowser")); - if (act) { - RefPtr tact = RefPtr::cast_dynamic(act); - - if (tact->get_active()) { - sfdb->show_all(); - sfdb->present(); - } else { - sfdb->hide (); - } - } -} - void ARDOUR_UI::handle_locations_change (Location* ignored) {