From f1aa5839c0f35ef0ffbe1c739eafbe316025bf8a Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 22 Sep 2013 19:22:56 -0400 Subject: use WindowManager/WMProxy to correctly manage the audio/MIDI setup window --- gtk2_ardour/ardour_ui.cc | 37 ++++--------------------------------- gtk2_ardour/ardour_ui.h | 3 +-- gtk2_ardour/ardour_ui_ed.cc | 3 +-- 3 files changed, 6 insertions(+), 37 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index f599442bc4..133b61c17f 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -191,6 +191,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) , about (X_("about"), _("About")) , location_ui (X_("locations"), _("Locations")) , route_params (X_("inspector"), _("Tracks and Busses")) + , audio_midi_setup (X_("audio-midi-setup"), _("Audio/MIDI Setup")) , session_option_editor (X_("session-options-editor"), _("Properties"), boost::bind (&ARDOUR_UI::create_session_option_editor, this)) , add_video_dialog (X_("add-video"), _("Add Tracks/Busses"), boost::bind (&ARDOUR_UI::create_add_video_dialog, this)) , bundle_manager (X_("bundle-manager"), _("Bundle Manager"), boost::bind (&ARDOUR_UI::create_bundle_manager, this)) @@ -202,7 +203,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) , _status_bar_visibility (X_("status-bar")) , _feedback_exists (false) - , _audio_midi_setup (0) { Gtkmm2ext::init(localedir); @@ -213,7 +213,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) } ui_config = new UIConfiguration(); - _audio_midi_setup = new EngineControl; editor = 0; mixer = 0; @@ -348,6 +347,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) WM::Manager::instance().register_window (&add_route_dialog); WM::Manager::instance().register_window (&add_video_dialog); WM::Manager::instance().register_window (&route_params); + WM::Manager::instance().register_window (&audio_midi_setup); WM::Manager::instance().register_window (&bundle_manager); WM::Manager::instance().register_window (&location_ui); WM::Manager::instance().register_window (&big_clock_window); @@ -4077,41 +4077,12 @@ ARDOUR_UI::reset_route_peak_display (Route* route) } } -void -ARDOUR_UI::toggle_audio_midi_setup () -{ - Glib::RefPtr act = ActionManager::get_action (X_("Common"), X_("toggle-audio-midi-setup")); - if (!act) { - return; - } - - Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); - - if (tact->get_active()) { - launch_audio_midi_setup (); - } else { - _audio_midi_setup->hide (); - } -} - -void -ARDOUR_UI::launch_audio_midi_setup () -{ - if (!_audio_midi_setup) { - _audio_midi_setup = new EngineControl (); - } - - _audio_midi_setup->present (); -} - int ARDOUR_UI::do_audio_midi_setup (uint32_t desired_sample_rate) { - launch_audio_midi_setup (); - - _audio_midi_setup->set_desired_sample_rate (desired_sample_rate); + audio_midi_setup->set_desired_sample_rate (desired_sample_rate); - switch (_audio_midi_setup->run()) { + switch (audio_midi_setup->run()) { case Gtk::RESPONSE_OK: return 0; case Gtk::RESPONSE_APPLY: diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index ea03c8590f..47d0f4f4e8 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -603,6 +603,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr WM::Proxy about; WM::Proxy location_ui; WM::Proxy route_params; + WM::Proxy audio_midi_setup; /* Windows/Dialogs that require a creator method */ @@ -747,8 +748,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr std::string _announce_string; void check_announcements (); - EngineControl* _audio_midi_setup; - void launch_audio_midi_setup (); int do_audio_midi_setup (uint32_t); }; diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 96bbd8c4e3..251fc8f6fc 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -197,7 +197,6 @@ ARDOUR_UI::install_actions () ActionManager::register_toggle_action (common_actions, X_("toggle-mixer"), S_("Window|Mixer"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_mixer_window)); ActionManager::register_action (common_actions, X_("toggle-editor-mixer"), _("Toggle Editor+Mixer"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_editor_mixer)); ActionManager::register_toggle_action (common_actions, X_("toggle-meterbridge"), S_("Window|Meterbridge"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_meterbridge)); - ActionManager::register_toggle_action (common_actions, X_("toggle-audio-midi-setup"), S_("Window|Audio/MIDI Setup"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_audio_midi_setup)); act = ActionManager::register_action (common_actions, X_("NewMIDITracer"), _("MIDI Tracer"), sigc::mem_fun(*this, &ARDOUR_UI::new_midi_tracer_window)); ActionManager::session_sensitive_actions.push_back (act); @@ -560,7 +559,7 @@ ARDOUR_UI::save_ardour_state () window_node->add_child_nocopy (*tearoff_node); Config->add_extra_xml (*window_node); - Config->add_extra_xml (_audio_midi_setup->get_state()); + Config->add_extra_xml (audio_midi_setup->get_state()); Config->save_state(); -- cgit v1.2.3