From: David Robillard Date: Fri, 15 Jun 2007 07:39:20 +0000 (+0000) Subject: User toggling of editor region/route/etc list, ala editor mixer. X-Git-Tag: 3.0-alpha5~4804 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=f878576f2d486f190da70801fe30a62ef7083912;p=ardour.git User toggling of editor region/route/etc list, ala editor mixer. Canvas, from sea to shining sea. git-svn-id: svn://localhost/ardour2/trunk@1983 d708f5d6-7413-0410-9779-e7cbd77b26cf --- diff --git a/gtk2_ardour/ardour.menus b/gtk2_ardour/ardour.menus index 0faa3ea60b..13b8cbf738 100644 --- a/gtk2_ardour/ardour.menus +++ b/gtk2_ardour/ardour.menus @@ -214,6 +214,7 @@ + diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 7b6b122ea0..a2f71a6a52 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -628,10 +628,10 @@ Editor::Editor () nlabel = manage (new Label (_("Regions"))); nlabel->set_angle (-90); - the_notebook.append_page (region_list_scroller, *nlabel); + the_notebook.append_page (region_list_scroller, *nlabel); nlabel = manage (new Label (_("Tracks/Busses"))); nlabel->set_angle (-90); - the_notebook.append_page (route_list_scroller, *nlabel); + the_notebook.append_page (route_list_scroller, *nlabel); nlabel = manage (new Label (_("Snapshots"))); nlabel->set_angle (-90); the_notebook.append_page (snapshot_display_scroller, *nlabel); @@ -812,6 +812,9 @@ Editor::show_window () { show_all (); present (); + + /* re-hide editor list if necessary */ + editor_list_button_toggled (); /* now reset all audio_time_axis heights, because widgets might need to be re-hidden @@ -1966,6 +1969,22 @@ Editor::set_state (const XMLNode& node) tact->set_active (yn); } } + + if ((prop = node.property ("show-editor-list"))) { + + Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("show-editor-list")); + assert(act); + if (act) { + + Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); + bool yn = (prop->value() == X_("yes")); + + /* do it twice to force the change */ + + tact->set_active (!yn); + tact->set_active (yn); + } + } return 0; @@ -2037,6 +2056,12 @@ Editor::get_state () Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); node->add_property (X_("show-editor-mixer"), tact->get_active() ? "yes" : "no"); } + + act = ActionManager::get_action (X_("Editor"), X_("show-editor-list")); + if (act) { + Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); + node->add_property (X_("show-editor-list"), tact->get_active() ? "yes" : "no"); + } return *node; } diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 5bb6ee4426..739feb957e 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -268,6 +268,7 @@ class Editor : public PublicEditor Width editor_mixer_strip_width; void maybe_add_mixer_strip_width (XMLNode&); void show_editor_mixer (bool yn); + void show_editor_list (bool yn); void set_selected_mixer_strip (TimeAxisView&); void hide_track_in_display (TimeAxisView& tv); void show_track_in_display (TimeAxisView& tv); @@ -721,7 +722,6 @@ class Editor : public PublicEditor Gtk::Menu *region_list_menu; Gtk::ScrolledWindow region_list_scroller; - Gtk::Frame region_list_frame; bool region_list_display_key_press (GdkEventKey *); bool region_list_display_key_release (GdkEventKey *); @@ -1291,9 +1291,11 @@ class Editor : public PublicEditor /* toolbar */ - Gtk::ToggleButton editor_mixer_button; + Gtk::ToggleButton editor_mixer_button; + Gtk::ToggleButton editor_list_button; void editor_mixer_button_toggled (); + void editor_list_button_toggled (); AudioClock edit_cursor_clock; AudioClock zoom_range_clock; diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 6e0b5f704b..52f30e7d5d 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -69,6 +69,8 @@ Editor::register_actions () act = ActionManager::register_toggle_action (editor_actions, "show-editor-mixer", _("Show Editor Mixer"), mem_fun (*this, &Editor::editor_mixer_button_toggled)); ActionManager::session_sensitive_actions.push_back (act); + act = ActionManager::register_toggle_action (editor_actions, "show-editor-list", _("Show Editor List"), mem_fun (*this, &Editor::editor_list_button_toggled)); + ActionManager::session_sensitive_actions.push_back (act); RadioAction::Group crossfade_model_group; diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc index 9bb481966e..dee928b62f 100644 --- a/gtk2_ardour/editor_mixer.cc +++ b/gtk2_ardour/editor_mixer.cc @@ -47,6 +47,16 @@ Editor::editor_mixer_button_toggled () } } +void +Editor::editor_list_button_toggled () +{ + Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("show-editor-list")); + if (act) { + Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); + show_editor_list (tact->get_active()); + } +} + void Editor::cms_deleted () { @@ -130,6 +140,16 @@ Editor::show_editor_mixer (bool yn) } } +void +Editor::show_editor_list (bool yn) +{ + if (yn) { + the_notebook.show(); + } else { + the_notebook.hide(); + } +} + void Editor::set_selected_mixer_strip (TimeAxisView& view) { @@ -335,6 +355,9 @@ Editor::session_going_away () editor_mixer_button.set_active(false); editor_mixer_button.set_sensitive(false); + editor_list_button.set_active(false); + editor_list_button.set_sensitive(false); + /* clear tempo/meter rulers */ remove_metric_marks (); diff --git a/gtk2_ardour/editor_route_list.cc b/gtk2_ardour/editor_route_list.cc index 36f2ed59c8..04ef8b46b0 100644 --- a/gtk2_ardour/editor_route_list.cc +++ b/gtk2_ardour/editor_route_list.cc @@ -124,6 +124,7 @@ Editor::handle_new_route (Session::RouteList& routes) } editor_mixer_button.set_sensitive(true); + editor_list_button.set_sensitive(true); } void @@ -167,6 +168,10 @@ Editor::remove_route (TimeAxisView *tv) if (track_views.size() == 0) { editor_mixer_button.set_sensitive(false); + + editor_list_button.set_active(false); + ActionManager::uncheck_toggleaction ("/Editor/show-editor-list"); + editor_list_button.set_sensitive(false); } }