#include "pbd/memento_command.h"
#include "pbd/unknown_type.h"
#include "pbd/unwind.h"
+#include "pbd/stacktrace.h"
#include <glibmm/miscutils.h>
#include <gtkmm/image.h>
set_zoom_focus (ZoomFocusLeft);
zoom_range_clock->ValueChanged.connect (sigc::mem_fun(*this, &Editor::zoom_adjustment_changed));
- bbt_label.set_name ("EditorTimeButton");
+ bbt_label.set_name ("EditorRulerLabel");
bbt_label.set_size_request (-1, (int)timebar_height);
bbt_label.set_alignment (1.0, 0.5);
bbt_label.set_padding (5,0);
bbt_label.hide ();
bbt_label.set_no_show_all();
- minsec_label.set_name ("EditorTimeButton");
+ minsec_label.set_name ("EditorRulerLabel");
minsec_label.set_size_request (-1, (int)timebar_height);
minsec_label.set_alignment (1.0, 0.5);
minsec_label.set_padding (5,0);
minsec_label.hide ();
minsec_label.set_no_show_all();
- timecode_label.set_name ("EditorTimeButton");
+ timecode_label.set_name ("EditorRulerLabel");
timecode_label.set_size_request (-1, (int)timebar_height);
timecode_label.set_alignment (1.0, 0.5);
timecode_label.set_padding (5,0);
timecode_label.hide ();
timecode_label.set_no_show_all();
- samples_label.set_name ("EditorTimeButton");
+ samples_label.set_name ("EditorRulerLabel");
samples_label.set_size_request (-1, (int)timebar_height);
samples_label.set_alignment (1.0, 0.5);
samples_label.set_padding (5,0);
samples_label.hide ();
samples_label.set_no_show_all();
- tempo_label.set_name ("EditorTimeButton");
+ tempo_label.set_name ("EditorRulerLabel");
tempo_label.set_size_request (-1, (int)timebar_height);
tempo_label.set_alignment (1.0, 0.5);
tempo_label.set_padding (5,0);
tempo_label.hide();
tempo_label.set_no_show_all();
- meter_label.set_name ("EditorTimeButton");
+ meter_label.set_name ("EditorRulerLabel");
meter_label.set_size_request (-1, (int)timebar_height);
meter_label.set_alignment (1.0, 0.5);
meter_label.set_padding (5,0);
meter_label.hide();
meter_label.set_no_show_all();
- mark_label.set_name ("EditorTimeButton");
+ mark_label.set_name ("EditorRulerLabel");
mark_label.set_size_request (-1, (int)timebar_height);
mark_label.set_alignment (1.0, 0.5);
mark_label.set_padding (5,0);
mark_label.hide();
mark_label.set_no_show_all();
- cd_mark_label.set_name ("EditorTimeButton");
+ cd_mark_label.set_name ("EditorRulerLabel");
cd_mark_label.set_size_request (-1, (int)timebar_height);
cd_mark_label.set_alignment (1.0, 0.5);
cd_mark_label.set_padding (5,0);
cd_mark_label.hide();
cd_mark_label.set_no_show_all();
- range_mark_label.set_name ("EditorTimeButton");
+ range_mark_label.set_name ("EditorRulerLabel");
range_mark_label.set_size_request (-1, (int)timebar_height);
range_mark_label.set_alignment (1.0, 0.5);
range_mark_label.set_padding (5,0);
range_mark_label.hide();
range_mark_label.set_no_show_all();
- transport_mark_label.set_name ("EditorTimeButton");
+ transport_mark_label.set_name ("EditorRulerLabel");
transport_mark_label.set_size_request (-1, (int)timebar_height);
transport_mark_label.set_alignment (1.0, 0.5);
transport_mark_label.set_padding (5,0);
/* nudge stuff */
- nudge_forward_button.add (*(manage (new Image (::get_icon("nudge_right")))));
- nudge_backward_button.add (*(manage (new Image (::get_icon("nudge_left")))));
+ nudge_forward_button.set_name ("zoom button");
+ nudge_forward_button.add_elements (ArdourButton::FlatFace);
+ nudge_forward_button.set_image(::get_icon("nudge_right"));
- nudge_forward_button.set_name ("TransportButton");
- nudge_backward_button.set_name ("TransportButton");
+ nudge_backward_button.set_name ("zoom button");
+ nudge_backward_button.add_elements (ArdourButton::FlatFace);
+ nudge_backward_button.set_image(::get_icon("nudge_left"));
fade_context_menu.set_name ("ArdourContextMenu");
items.push_back (
ImageMenuElem (
- _("ConstantPower"),
+ _("Constant power"),
*(*images)[FadeConstantPower],
sigc::bind (sigc::mem_fun (*this, emf), FadeConstantPower)
));
items.push_back (
ImageMenuElem (
- _("Constant Power"),
+ _("Constant power"),
*_fade_in_images[FadeConstantPower],
sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_in_shape), FadeConstantPower)
));
items.push_back (
ImageMenuElem (
- _("Constant Power"),
+ _("Constant power"),
*_fade_out_images[FadeConstantPower],
sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_out_shape), FadeConstantPower)
));
void
Editor::set_snap_mode (SnapMode mode)
{
- _snap_mode = mode;
string str = snap_mode_strings[(int)mode];
+ if (_internal_editing) {
+ internal_snap_mode = mode;
+ } else {
+ pre_internal_snap_mode = mode;
+ }
+
+ _snap_mode = mode;
+
if (str != snap_mode_selector.get_active_text ()) {
snap_mode_selector.set_active_text (str);
}
pre_internal_snap_type = (SnapType) string_2_enum (prop->value(), pre_internal_snap_type);
}
+
if ((prop = node.property ("pre-internal-snap-mode"))) {
pre_internal_snap_mode = (SnapMode) string_2_enum (prop->value(), pre_internal_snap_mode);
}
mouse_mode_size_group->add_widget (internal_edit_button);
/* make them just a bit bigger */
- mouse_move_button.set_size_request (-1, 25);
+ mouse_move_button.set_size_request (-1, 30);
mouse_mode_hbox->set_spacing (2);
RefPtr<Action> act;
zoom_in_button.set_name ("zoom button");
- zoom_in_button.add (*(manage (new Image (::get_icon ("zoom_in")))));
+ zoom_in_button.add_elements ( ArdourButton::FlatFace );
+ zoom_in_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
+ zoom_in_button.set_image(::get_icon ("zoom_in"));
act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-in"));
- act->connect_proxy (zoom_in_button);
+ zoom_in_button.set_related_action (act);
zoom_out_button.set_name ("zoom button");
- zoom_out_button.add (*(manage (new Image (::get_icon ("zoom_out")))));
+ zoom_out_button.add_elements ( ArdourButton::FlatFace );
+ zoom_out_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
+ zoom_out_button.set_image(::get_icon ("zoom_out"));
act = ActionManager::get_action (X_("Editor"), X_("temporal-zoom-out"));
- act->connect_proxy (zoom_out_button);
+ zoom_out_button.set_related_action (act);
zoom_out_full_button.set_name ("zoom button");
- zoom_out_full_button.add (*(manage (new Image (::get_icon ("zoom_full")))));
+ zoom_out_full_button.add_elements ( ArdourButton::FlatFace );
+ zoom_out_full_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
+ zoom_out_full_button.set_image(::get_icon ("zoom_full"));
act = ActionManager::get_action (X_("Editor"), X_("zoom-to-session"));
- act->connect_proxy (zoom_out_full_button);
+ zoom_out_full_button.set_related_action (act);
zoom_focus_selector.set_name ("ZoomFocusSelector");
set_popdown_strings (zoom_focus_selector, zoom_focus_strings);
_zoom_box.pack_start (zoom_focus_selector, false, false);
/* Track zoom buttons */
- tav_expand_button.set_name ("TrackHeightButton");
+ tav_expand_button.set_name ("zoom button");
+ tav_expand_button.add_elements ( ArdourButton::FlatFace );
+ tav_expand_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
tav_expand_button.set_size_request (-1, 20);
- tav_expand_button.add (*(manage (new Image (::get_icon ("tav_exp")))));
+ tav_expand_button.set_image(::get_icon ("tav_exp"));
act = ActionManager::get_action (X_("Editor"), X_("expand-tracks"));
- act->connect_proxy (tav_expand_button);
+ tav_expand_button.set_related_action (act);
- tav_shrink_button.set_name ("TrackHeightButton");
+ tav_shrink_button.set_name ("zoom button");
+ tav_shrink_button.add_elements ( ArdourButton::FlatFace );
+ tav_shrink_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
tav_shrink_button.set_size_request (-1, 20);
- tav_shrink_button.add (*(manage (new Image (::get_icon ("tav_shrink")))));
+ tav_shrink_button.set_image(::get_icon ("tav_shrink"));
act = ActionManager::get_action (X_("Editor"), X_("shrink-tracks"));
- act->connect_proxy (tav_shrink_button);
+ tav_shrink_button.set_related_action (act);
_zoom_box.pack_start (tav_shrink_button);
_zoom_box.pack_start (tav_expand_button);
_zoom_tearoff->Visible.connect (sigc::bind (sigc::mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox),
&_zoom_tearoff->tearoff_window(), 0));
- snap_box.set_spacing (1);
+ snap_box.set_spacing (2);
snap_box.set_border_width (2);
snap_type_selector.set_name ("SnapTypeSelector");
nudge_forward_button.signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::nudge_forward_release), false);
nudge_backward_button.signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::nudge_backward_release), false);
+ nudge_forward_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
+ nudge_backward_button.set_tweaks ((ArdourButton::Tweaks) (ArdourButton::ShowClick) );
+
nudge_box->pack_start (nudge_backward_button, false, false);
nudge_box->pack_start (nudge_forward_button, false, false);
nudge_box->pack_start (*nudge_clock, false, false);
}
}
+void
+Editor::cycle_zoom_focus ()
+{
+ switch (zoom_focus) {
+ case ZoomFocusLeft:
+ set_zoom_focus (ZoomFocusRight);
+ break;
+ case ZoomFocusRight:
+ set_zoom_focus (ZoomFocusCenter);
+ break;
+ case ZoomFocusCenter:
+ set_zoom_focus (ZoomFocusPlayhead);
+ break;
+ case ZoomFocusPlayhead:
+ set_zoom_focus (ZoomFocusMouse);
+ break;
+ case ZoomFocusMouse:
+ set_zoom_focus (ZoomFocusEdit);
+ break;
+ case ZoomFocusEdit:
+ set_zoom_focus (ZoomFocusLeft);
+ break;
+ }
+}
+
void
Editor::ensure_float (Window& win)
{
begin_reversible_command (_("new playlists"));
vector<boost::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists->get (playlists);
- mapover_tracks (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), playlists), v, ARDOUR::Properties::edit.property_id);
+ mapover_tracks (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_new_playlist), playlists), v, ARDOUR::Properties::select.property_id);
commit_reversible_command ();
}
begin_reversible_command (_("copy playlists"));
vector<boost::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists->get (playlists);
- mapover_tracks (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_copy_playlist), playlists), v, ARDOUR::Properties::edit.property_id);
+ mapover_tracks (sigc::bind (sigc::mem_fun (*this, &Editor::mapped_use_copy_playlist), playlists), v, ARDOUR::Properties::select.property_id);
commit_reversible_command ();
}
begin_reversible_command (_("clear playlists"));
vector<boost::shared_ptr<ARDOUR::Playlist> > playlists;
_session->playlists->get (playlists);
- mapover_tracks (sigc::mem_fun (*this, &Editor::mapped_clear_playlist), v, ARDOUR::Properties::edit.property_id);
+ mapover_tracks (sigc::mem_fun (*this, &Editor::mapped_clear_playlist), v, ARDOUR::Properties::select.property_id);
commit_reversible_command ();
}
current_bbt_points_begin, current_bbt_points_end);
compute_bbt_ruler_scale (pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_frames(),
current_bbt_points_begin, current_bbt_points_end);
- update_tempo_based_rulers (current_bbt_points_end, current_bbt_points_begin);
+ update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end);
}
if (p & VisualChange::TimeOrigin) {
set_horizontal_position (pending_visual_change.time_origin / frames_per_unit);
RegionSelection
Editor::get_regions_from_selection ()
{
- return get_equivalent_regions (selection->regions, ARDOUR::Properties::edit.property_id);
+ return get_equivalent_regions (selection->regions, ARDOUR::Properties::select.property_id);
}
/** Get regions using the following method:
/* Add any other regions that are in the same
edit-activated route group as one of our regions.
*/
- regions = get_equivalent_regions (regions, ARDOUR::Properties::edit.property_id);
+ regions = get_equivalent_regions (regions, ARDOUR::Properties::select.property_id);
framepos_t const where = get_preferred_edit_position ();
if (_route_groups->all_group_active_button().get_active() && tracks.empty()) {
regions.add (entered_regionview);
}
- return get_equivalent_regions (regions, ARDOUR::Properties::edit.property_id);
+ return get_equivalent_regions (regions, ARDOUR::Properties::select.property_id);
}
void
-Editor::get_regions_corresponding_to (boost::shared_ptr<Region> region, vector<RegionView*>& regions)
+Editor::get_regions_corresponding_to (boost::shared_ptr<Region> region, vector<RegionView*>& regions, bool src_comparison)
{
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
}
if ((pl = (tr->playlist())) != 0) {
- pl->get_region_list_equivalent_regions (region, results);
+ if (src_comparison) {
+ pl->get_source_equivalent_regions (region, results);
+ } else {
+ pl->get_region_list_equivalent_regions (region, results);
+ }
}
for (vector<boost::shared_ptr<Region> >::iterator ir = results.begin(); ir != results.end(); ++ir) {