diff options
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r-- | gtk2_ardour/editor.cc | 76 |
1 files changed, 44 insertions, 32 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 994275468a..c0fd7b0a20 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -97,7 +97,7 @@ const double Editor::timebar_height = 15.0; #include "editor_xpms" -static const gchar *snap_type_strings[] = { +static const gchar *_snap_type_strings[] = { N_("None"), N_("CD Frames"), N_("SMPTE Frames"), @@ -121,13 +121,13 @@ static const gchar *snap_type_strings[] = { 0 }; -static const gchar *snap_mode_strings[] = { - N_("Normal Snap"), - N_("Magnetic Snap"), +static const gchar *_snap_mode_strings[] = { + N_("Normal"), + N_("Magnetic"), 0 }; -static const gchar *zoom_focus_strings[] = { +static const gchar *_zoom_focus_strings[] = { N_("Left"), N_("Right"), N_("Center"), @@ -239,6 +239,10 @@ Editor::Editor (AudioEngine& eng) current_mixer_strip = 0; current_bbt_points = 0; + snap_type_strings = I18N (_snap_type_strings); + snap_mode_strings = I18N (_snap_mode_strings); + zoom_focus_strings = I18N(_zoom_focus_strings); + snap_type = SnapToFrame; set_snap_to (snap_type); snap_mode = SnapNormal; @@ -1996,8 +2000,11 @@ void Editor::set_snap_to (SnapType st) { snap_type = st; - vector<string> txt = I18N (snap_type_strings); - snap_type_selector.set_active_text (txt[(int)st]); + string str = snap_type_strings[(int) st]; + + if (str != snap_type_selector.get_active_text()) { + snap_type_selector.set_active_text (str); + } instant_save (); @@ -2018,8 +2025,11 @@ void Editor::set_snap_mode (SnapMode mode) { snap_mode = mode; - vector<string> txt = I18N (snap_mode_strings); - snap_mode_selector.set_active_text (txt[(int)mode]); + string str = snap_mode_strings[(int)mode]; + + if (str != snap_mode_selector.get_active_text ()) { + snap_mode_selector.set_active_text (str); + } instant_save (); } @@ -2583,10 +2593,10 @@ Editor::setup_toolbar () zoom_box.pack_start (zoom_out_full_button, false, false); ARDOUR_UI::instance()->tooltips().set_tip (zoom_range_clock, _("Current Zoom Range\n(Width of visible area)")); - + zoom_focus_selector.set_name ("ZoomFocusSelector"); Gtkmm2ext::set_size_request_to_display_given_text (zoom_focus_selector, "Focus Center", 2+FUDGE, 0); - set_popdown_strings (zoom_focus_selector, I18N (zoom_focus_strings)); + set_popdown_strings (zoom_focus_selector, zoom_focus_strings); zoom_focus_selector.signal_changed().connect (mem_fun(*this, &Editor::zoom_focus_selection_done)); ARDOUR_UI::instance()->tooltips().set_tip (zoom_focus_selector, _("Zoom focus")); @@ -2600,13 +2610,13 @@ Editor::setup_toolbar () snap_type_selector.set_name ("SnapTypeSelector"); Gtkmm2ext::set_size_request_to_display_given_text (snap_type_selector, "SMPTE Seconds", 2+FUDGE, 10); - set_popdown_strings (snap_type_selector, I18N (snap_type_strings)); + set_popdown_strings (snap_type_selector, snap_type_strings); snap_type_selector.signal_changed().connect (mem_fun(*this, &Editor::snap_type_selection_done)); ARDOUR_UI::instance()->tooltips().set_tip (snap_type_selector, _("Unit to snap cursors and ranges to")); snap_mode_selector.set_name ("SnapModeSelector"); Gtkmm2ext::set_size_request_to_display_given_text (snap_mode_selector, "Magnetic Snap", 2+FUDGE, 10); - set_popdown_strings (snap_mode_selector, I18N (snap_mode_strings)); + set_popdown_strings (snap_mode_selector, snap_mode_strings); snap_mode_selector.signal_changed().connect (mem_fun(*this, &Editor::snap_mode_selection_done)); snap_box.pack_start (edit_cursor_clock, false, false); @@ -3448,10 +3458,6 @@ Editor::edit_mode_selection_done () void Editor::snap_type_selection_done () { - if (session == 0) { - return; - } - string choice = snap_type_selector.get_active_text(); SnapType snaptype = SnapToFrame; @@ -3497,35 +3503,34 @@ Editor::snap_type_selection_done () snaptype = SnapToFrame; } - set_snap_to (snaptype); + RefPtr<RadioAction> ract = snap_type_action (snaptype); + if (ract) { + ract->set_active (); + } } void Editor::snap_mode_selection_done () { - if(session == 0) { - return; - } - string choice = snap_mode_selector.get_active_text(); SnapMode mode = SnapNormal; - if (choice == _("Normal Snap")) { + if (choice == _("Normal")) { mode = SnapNormal; - } else if (choice == _("Magnetic Snap")) { + } else if (choice == _("Magnetic")) { mode = SnapMagnetic; } - set_snap_mode (mode); + RefPtr<RadioAction> ract = snap_mode_action (mode); + + if (ract) { + ract->set_active (true); + } } void Editor::zoom_focus_selection_done () { - if (session == 0) { - return; - } - string choice = zoom_focus_selector.get_active_text(); ZoomFocus focus_type = ZoomFocusLeft; @@ -3540,8 +3545,12 @@ Editor::zoom_focus_selection_done () } else if (choice == _("Edit Cursor")) { focus_type = ZoomFocusEdit; } + + RefPtr<RadioAction> ract = zoom_focus_action (focus_type); - set_zoom_focus (focus_type); + if (ract) { + ract->set_active (); + } } gint @@ -3672,8 +3681,11 @@ Editor::get_valid_views (TimeAxisView* track, RouteGroup* group) void Editor::set_zoom_focus (ZoomFocus f) { - vector<string> txt = I18N (zoom_focus_strings); - zoom_focus_selector.set_active_text (txt[(int)f]); + string str = zoom_focus_strings[(int)f]; + + if (str != zoom_focus_selector.get_active_text()) { + zoom_focus_selector.set_active_text (str); + } if (zoom_focus != f) { zoom_focus = f; |