X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui_dialogs.cc;h=ff2a5065581e9122fb86e0bb0a078ffb90153041;hb=1315ee3dff1e4966ab28bd47e81b5f003cac6e40;hp=140ee649ea59f07b678609672b01e9e67b13858a;hpb=ca49f7cba731bd443c4a62184c8dec892b4ce5e7;p=ardour.git diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 140ee649ea..ff2a506558 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -62,6 +62,20 @@ ARDOUR_UI::connect_to_session (Session *s) ActionManager::set_sensitive (ActionManager::range_sensitive_actions, false); } + if (!session->control_out()) { + Glib::RefPtr act = ActionManager::get_action (X_("options"), X_("SoloViaBus")); + if (act) { + act->set_sensitive (false); + } + } + + /* allow wastebasket flush again */ + + Glib::RefPtr act = ActionManager::get_action (X_("Main"), X_("FlushWastebasket")); + if (act) { + act->set_sensitive (true); + } + /* there are never any selections on startup */ ActionManager::set_sensitive (ActionManager::region_selection_sensitive_actions, false); @@ -112,6 +126,10 @@ ARDOUR_UI::connect_to_session (Session *s) solo_alert_button.set_active (session->soloing()); + /* update autochange callback on dirty state changing */ + + session->DirtyChanged.connect (mem_fun(*this, &ARDOUR_UI::update_autosave)); + /* can't be auditioning here */ primary_clock.set_session (s); @@ -132,6 +150,8 @@ ARDOUR_UI::connect_to_session (Session *s) AudioClock::ModeChanged.connect (mem_fun (*this, &ARDOUR_UI::store_clock_modes)); + Glib::signal_idle().connect (mem_fun (*this, &ARDOUR_UI::first_idle)); + start_clocking (); start_blinking (); @@ -142,13 +162,14 @@ ARDOUR_UI::connect_to_session (Session *s) point_zero_one_second_connection = Glib::signal_timeout().connect (mem_fun(*this, &ARDOUR_UI::every_point_zero_one_seconds), 40); } -int +bool ARDOUR_UI::unload_session () { if (session && session->dirty()) { switch (ask_about_saving_session (_("close"))) { case -1: - return 1; + // cancel + return false; case 1: session->save_state (""); @@ -158,6 +179,7 @@ ARDOUR_UI::unload_session () editor->hide (); second_connection.disconnect (); point_one_second_connection.disconnect (); + point_oh_five_second_connection.disconnect (); point_zero_one_second_connection.disconnect(); ActionManager::set_sensitive (ActionManager::session_sensitive_actions, false); @@ -191,7 +213,7 @@ ARDOUR_UI::unload_session () update_buffer_load (); - return 0; + return true; } int @@ -322,7 +344,7 @@ int ARDOUR_UI::create_route_params () { if (route_params == 0) { - route_params = new RouteParams_UI (*engine); + route_params = new RouteParams_UI (); route_params->set_session (session); route_params->signal_unmap().connect (sigc::bind(sigc::ptr_fun(&ActionManager::uncheck_toggleaction), X_("/Common/ToggleInspector"))); }