diff options
author | Ben Loftis <ben@glw.com> | 2009-08-20 16:49:06 +0000 |
---|---|---|
committer | Ben Loftis <ben@glw.com> | 2009-08-20 16:49:06 +0000 |
commit | 02b4b169f8d8fa6b0b966766b3bb2433d391314e (patch) | |
tree | b11a0d0cf8acbdcf096980af25362b0d49a8d4a8 | |
parent | eecc8d4c204f56c0822052620f4933f3a05c7a61 (diff) |
simplify waveform menu items
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5555 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/ardour.menus.in | 6 | ||||
-rw-r--r-- | gtk2_ardour/audio_time_axis.cc | 38 | ||||
-rw-r--r-- | gtk2_ardour/audio_time_axis.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 17 | ||||
-rw-r--r-- | gtk2_ardour/editor_actions.cc | 48 | ||||
-rw-r--r-- | gtk2_ardour/editor_audiotrack.cc | 15 |
6 files changed, 58 insertions, 67 deletions
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index 25958a3023..d0f1f524da 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -297,7 +297,6 @@ <menuitem action='track-height-small'/> </menu> <menu action='WaveformMenu'> - <menuitem action='toggle-waveform-visible'/> <menuitem action='linear-waveforms'/> <menuitem action='logarithmic-waveforms'/> </menu> @@ -381,9 +380,12 @@ <menuitem action='ToggleMaximalEditor'/> <menuitem action='show-editor-mixer'/> - <menuitem action='ToggleMeasureVisibility'/> + <menuitem action='ToggleMeasureVisibility'/> + <menu action="Waveforms"> <menuitem action='toggle-waveform-visible'/> + <menuitem action='toggle-waveform-rectified'/> <menuitem action='ToggleWaveformsWhileRecording'/> + </menu> <menuitem action='SyncEditorAndMixerTrackOrder'/> <menuitem action='toggle-region-fades-visible'/> </menu> diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc index 591de5e04c..0266ff7a0b 100644 --- a/gtk2_ardour/audio_time_axis.cc +++ b/gtk2_ardour/audio_time_axis.cc @@ -264,28 +264,6 @@ AudioTimeAxisView::append_extra_display_menu_items () MenuList& waveform_items = waveform_menu->items(); waveform_menu->set_name ("ArdourContextMenu"); - waveform_items.push_back (CheckMenuElem (_("Show waveforms"), mem_fun(*this, &AudioTimeAxisView::toggle_waveforms))); - waveform_item = static_cast<CheckMenuItem *> (&waveform_items.back()); - ignore_toggle = true; - waveform_item->set_active (editor.show_waveforms()); - ignore_toggle = false; - - waveform_items.push_back (SeparatorElem()); - - RadioMenuItem::Group group; - - waveform_items.push_back (RadioMenuElem (group, _("Traditional"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Traditional))); - traditional_item = static_cast<RadioMenuItem *> (&waveform_items.back()); - - if (!Profile->get_sae()) { - waveform_items.push_back (RadioMenuElem (group, _("Rectified"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_shape), Rectified))); - rectified_item = static_cast<RadioMenuItem *> (&waveform_items.back()); - } else { - rectified_item = 0; - } - - waveform_items.push_back (SeparatorElem()); - RadioMenuItem::Group group2; waveform_items.push_back (RadioMenuElem (group2, _("Linear"), bind (mem_fun(*this, &AudioTimeAxisView::set_waveform_scale), LinearWaveform))); @@ -298,12 +276,6 @@ AudioTimeAxisView::append_extra_display_menu_items () AudioStreamView* asv = audio_view(); if (asv) { ignore_toggle = true; - if (asv->get_waveform_shape() == Rectified && rectified_item) { - rectified_item->set_active(true); - } else { - traditional_item->set_active(true); - } - if (asv->get_waveform_scale() == LogWaveform) logscale_item->set_active(true); else linearscale_item->set_active(true); @@ -348,6 +320,16 @@ AudioTimeAxisView::set_show_waveforms_recording (bool yn) } void +AudioTimeAxisView::set_show_waveforms_rectified (bool yn) +{ + AudioStreamView* asv = audio_view(); + + if (asv) { + asv->set_waveform_shape ( yn ? Rectified : Traditional ); + } +} + +void AudioTimeAxisView::set_waveform_shape (WaveformShape shape) { AudioStreamView* asv = audio_view(); diff --git a/gtk2_ardour/audio_time_axis.h b/gtk2_ardour/audio_time_axis.h index d0fe2b9868..3d25770130 100644 --- a/gtk2_ardour/audio_time_axis.h +++ b/gtk2_ardour/audio_time_axis.h @@ -72,6 +72,7 @@ class AudioTimeAxisView : public RouteTimeAxisView AudioStreamView* audio_view(); void set_show_waveforms (bool yn); + void set_show_waveforms_rectified (bool yn); void set_show_waveforms_recording (bool yn); void show_all_xfades (); void hide_all_xfades (); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index f3ed303fc2..caad69d532 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -171,16 +171,21 @@ class Editor : public PublicEditor std::vector<std::string> rb_opt_strings; #endif - /* option editor-access */ + //global waveform options void set_show_waveforms (bool yn); bool show_waveforms() const { return _show_waveforms; } - void set_waveform_scale (Editing::WaveformScale); + void set_show_waveforms_rectified (bool yn); + bool show_waveforms_rectified() const { return _show_waveforms_rectified; } void set_show_waveforms_recording (bool yn); bool show_waveforms_recording() const { return _show_waveforms_recording; } + //per-track waveform options + + void set_waveform_scale (Editing::WaveformScale); + /* things that need to be public to be used in the main menubar */ void new_region_from_selection (); @@ -318,7 +323,9 @@ class Editor : public PublicEditor bool dragging_playhead () const { return _dragging_playhead; } void toggle_waveform_visibility (); + void toggle_waveform_rectified (); void toggle_waveforms_while_recording (); + void toggle_measure_visibility (); void toggle_logo_visibility (); @@ -1473,10 +1480,13 @@ public: /* display control */ bool _show_measures; + bool _show_waveforms; + bool _show_waveforms_rectified; + bool _show_waveforms_recording; + bool _stationary_playhead; bool _follow_playhead; - bool _show_waveforms_recording; ARDOUR::TempoMap::BBTPointList *current_bbt_points; @@ -2222,7 +2232,6 @@ public: void remove_tracks (); void toggle_tracks_active (); - void waveform_scale_chosen (Editing::WaveformScale); bool _have_idled; int resize_idle_id; diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 029bd10c26..ad4f60b45c 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -801,17 +801,16 @@ Editor::register_actions () act = ActionManager::register_action (editor_actions, X_("addExternalAudioToRegionList"), _("Import to Region List"), bind (mem_fun(*this, &Editor::add_external_audio_action), ImportAsRegion)); ActionManager::session_sensitive_actions.push_back (act); + ActionManager::register_action (editor_actions, X_("Waveforms"), _("Waveforms")); act = ActionManager::register_toggle_action (editor_actions, X_("toggle-waveform-visible"), _("Show Waveforms"), mem_fun (*this, &Editor::toggle_waveform_visibility)); - ActionManager::track_selection_sensitive_actions.push_back (act); - + act = ActionManager::register_toggle_action (editor_actions, X_("toggle-waveform-rectified"), _("Show Waveforms Rectified"), mem_fun (*this, &Editor::toggle_waveform_rectified)); ActionManager::register_toggle_action (editor_actions, X_("ToggleWaveformsWhileRecording"), _("Show Waveforms while Recording"), mem_fun (*this, &Editor::toggle_waveforms_while_recording)); - ActionManager::register_toggle_action (editor_actions, X_("ToggleMeasureVisibility"), _("Show Measures"), mem_fun (*this, &Editor::toggle_measure_visibility)); + ActionManager::register_toggle_action (editor_actions, X_("ToggleMeasureVisibility"), _("Show Measures"), mem_fun (*this, &Editor::toggle_measure_visibility)); - RadioAction::Group waveform_scale_group; - act = ActionManager::register_radio_action (editor_actions, waveform_scale_group, X_("linear-waveforms"), _("Linear"), bind (mem_fun (*this, &Editor::waveform_scale_chosen), Editing::LinearWaveform)); + act = ActionManager::register_action (editor_actions, X_("linear-waveforms"), _("Set Selected Tracks to Linear Waveforms"), bind (mem_fun (*this, &Editor::set_waveform_scale), Editing::LinearWaveform)); ActionManager::track_selection_sensitive_actions.push_back (act); - act = ActionManager::register_radio_action (editor_actions, waveform_scale_group, X_("logarithmic-waveforms"), _("Logarithmic"), bind (mem_fun (*this, &Editor::waveform_scale_chosen), Editing::LogWaveform)); + act = ActionManager::register_action (editor_actions, X_("logarithmic-waveforms"), _("Set Selected Tracks to Logarithmic Waveforms"), bind (mem_fun (*this, &Editor::set_waveform_scale), Editing::LogWaveform)); ActionManager::track_selection_sensitive_actions.push_back (act); /* if there is a logo in the editor canvas, its always visible at startup */ @@ -927,6 +926,16 @@ Editor::toggle_waveform_visibility () } void +Editor::toggle_waveform_rectified () +{ + Glib::RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("toggle-waveform-rectified")); + if (act) { + Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act); + set_show_waveforms_rectified (tact->get_active()); + } +} + +void Editor::toggle_waveforms_while_recording () { Glib::RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("ToggleWaveformsWhileRecording")); @@ -964,33 +973,6 @@ Editor::toggle_logo_visibility () } void -Editor::waveform_scale_chosen (Editing::WaveformScale ws) -{ - RefPtr<Action> act; - - /* this is driven by a toggle on a radio group, and so is invoked twice, - once for the item that became inactive and once for the one that became - active. - */ - - switch (ws) { - case LinearWaveform: - act = ActionManager::get_action (X_("Editor"), X_("linear-waveforms")); - break; - case LogWaveform: - act = ActionManager::get_action (X_("Editor"), X_("logarithmic-waveforms")); - break; - } - - if (act) { - RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act); - if (ract && ract->get_active()) { - set_waveform_scale (ws); - } - } -} - -void Editor::set_crossfade_model (CrossfadeModel model) { RefPtr<Action> act; diff --git a/gtk2_ardour/editor_audiotrack.cc b/gtk2_ardour/editor_audiotrack.cc index 7ecbf843b5..7e1c13dae0 100644 --- a/gtk2_ardour/editor_audiotrack.cc +++ b/gtk2_ardour/editor_audiotrack.cc @@ -62,6 +62,21 @@ Editor::set_show_waveforms_recording (bool yn) } } +void +Editor::set_show_waveforms_rectified (bool yn) +{ + AudioTimeAxisView* atv; + + if (_show_waveforms_rectified != yn) { + _show_waveforms_rectified = yn; + for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { + if ((atv = dynamic_cast<AudioTimeAxisView*>(*i)) != 0) { + atv->set_show_waveforms_rectified (yn); + } + } + } +} + gint Editor::start_updating () { |