X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui_dependents.cc;h=937ba5ab819ae7743f01315c9bc8f3a5ca3a3a5d;hb=5b45dc04dfba73846893a8c591c4175c20b3415f;hp=0850d0d70785a1292dce0a265bf226e7fd38acd4;hpb=c83e48e07a0b4790512c6251d8ad8f941c881021;p=ardour.git diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc index 0850d0d707..937ba5ab81 100644 --- a/gtk2_ardour/ardour_ui_dependents.cc +++ b/gtk2_ardour/ardour_ui_dependents.cc @@ -17,6 +17,10 @@ */ +#ifdef WAF_BUILD +#include "gtk2ardour-config.h" +#endif + /* this file exists solely to break compilation dependencies that would connect changes to the mixer or editor objects. */ @@ -36,7 +40,6 @@ #include "opts.h" #include "i18n.h" -using namespace sigc; using namespace Gtk; using namespace PBD; @@ -50,13 +53,9 @@ using namespace ARDOUR; void ARDOUR_UI::shutdown () { - if (session) { - /* we're exiting cleanly, so remove any auto-save data */ - session->remove_pending_capture_state (); - session = 0; + if (ui_config->dirty()) { + ui_config->save_state(); } - - ui_config->save_state(); } void @@ -64,19 +63,18 @@ ARDOUR_UI::we_have_dependents () { install_actions (); ProcessorBox::register_actions (); - - Keyboard::setup_keybindings (); - - editor->UpdateAllTransportClocks.connect (mem_fun (*this, &ARDOUR_UI::update_transport_clocks)); + keyboard->setup_keybindings (); + editor->setup_tooltips (); + editor->UpdateAllTransportClocks.connect (sigc::mem_fun (*this, &ARDOUR_UI::update_transport_clocks)); } void ARDOUR_UI::connect_dependents_to_session (ARDOUR::Session *s) { BootMessage (_("Setup Editor")); - editor->connect_to_session (s); + editor->set_session (s); BootMessage (_("Setup Mixer")); - mixer->connect_to_session (s); + mixer->set_session (s); /* its safe to do this now */ @@ -96,12 +94,11 @@ ARDOUR_UI::goto_editor_window () { if (splash && splash->is_visible()) { // in 2 seconds, hide the splash screen - Glib::signal_timeout().connect (bind (sigc::ptr_fun (_hide_splash), this), 2000); + Glib::signal_timeout().connect (sigc::bind (sigc::ptr_fun (_hide_splash), this), 2000); } editor->show_window (); editor->present (); - _mixer_on_top = false; flush_pending (); } @@ -110,20 +107,55 @@ ARDOUR_UI::goto_mixer_window () { mixer->show_window (); mixer->present (); - _mixer_on_top = true; flush_pending (); } void -ARDOUR_UI::toggle_editor_mixer_on_top () +ARDOUR_UI::toggle_mixer_window () { - if (_mixer_on_top) { - goto_editor_window (); + Glib::RefPtr act = ActionManager::get_action (X_("Common"), X_("toggle-mixer")); + if (!act) { + return; + } + + Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); + + if (tact->get_active()) { + goto_mixer_window (); } else { + mixer->hide (); + } +} + +void +ARDOUR_UI::toggle_mixer_on_top () +{ + Glib::RefPtr act = ActionManager::get_action (X_("Common"), X_("toggle-mixer-on-top")); + if (!act) { + return; + } + + Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); + + if (tact->get_active()) { + + /* Toggle the mixer to `visible' if required */ + act = ActionManager::get_action (X_("Common"), X_("toggle-mixer")); + if (act) { + tact = Glib::RefPtr::cast_dynamic (act); + + if (!tact->get_active()) { + tact->set_active (); + } + } + goto_mixer_window (); + } else { + goto_editor_window (); } } +/** The main editor window has been closed */ gint ARDOUR_UI::exit_on_main_window_close (GdkEventAny * /*ev*/) { @@ -137,3 +169,4 @@ ARDOUR_UI::exit_on_main_window_close (GdkEventAny * /*ev*/) return TRUE; #endif } +