#include "vca_time_axis.h"
#include "verbose_cursor.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace std;
using namespace ARDOUR;
initialize_canvas ();
- CairoWidget::set_focus_handler (sigc::mem_fun (*this, &Editor::reset_focus));
+ CairoWidget::set_focus_handler (sigc::mem_fun (ARDOUR_UI::instance(), &ARDOUR_UI::reset_focus));
_summary = new EditorSummary (this);
Editor::~Editor()
{
- delete button_bindings;
+ delete button_bindings;
delete _routes;
delete _route_groups;
delete _track_canvas_viewport;
delete _drags;
delete nudge_clock;
+ delete _verbose_cursor;
delete quantize_dialog;
delete _summary;
delete _group_tabs;
/* leaving window, so reset focus, thus ending any and
all text entry operations.
*/
- reset_focus (&contents());
+ ARDOUR_UI::instance()->reset_focus (&contents());
break;
}
break;
break;
}
- /* catch up on selection of stripables (other selection state is lost
- * when a session is closed
- */
-
- StripableList sl;
- TrackViewList tl;
- _session->get_stripables (sl);
- for (StripableList::const_iterator s = sl.begin(); s != sl.end(); ++s) {
- if ((*s)->presentation_info().selected()) {
- RouteTimeAxisView* rtav = get_route_view_by_route_id ((*s)->id());
- if (rtav) {
- tl.push_back (rtav);
- }
- }
- }
- if (!tl.empty()) {
- selection->set (tl);
- }
-
/* register for undo history */
_session->register_with_memento_command_factory(id(), this);
_session->register_with_memento_command_factory(_selection_memento->id(), _selection_memento);
break;
case SnapToBeatDiv128:
- start = _session->tempo_map().round_to_beat_subdivision (start, 128, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 128, direction);
break;
case SnapToBeatDiv64:
- start = _session->tempo_map().round_to_beat_subdivision (start, 64, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 64, direction);
break;
case SnapToBeatDiv32:
- start = _session->tempo_map().round_to_beat_subdivision (start, 32, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 32, direction);
break;
case SnapToBeatDiv28:
- start = _session->tempo_map().round_to_beat_subdivision (start, 28, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 28, direction);
break;
case SnapToBeatDiv24:
- start = _session->tempo_map().round_to_beat_subdivision (start, 24, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 24, direction);
break;
case SnapToBeatDiv20:
- start = _session->tempo_map().round_to_beat_subdivision (start, 20, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 20, direction);
break;
case SnapToBeatDiv16:
- start = _session->tempo_map().round_to_beat_subdivision (start, 16, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 16, direction);
break;
case SnapToBeatDiv14:
- start = _session->tempo_map().round_to_beat_subdivision (start, 14, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 14, direction);
break;
case SnapToBeatDiv12:
- start = _session->tempo_map().round_to_beat_subdivision (start, 12, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 12, direction);
break;
case SnapToBeatDiv10:
- start = _session->tempo_map().round_to_beat_subdivision (start, 10, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 10, direction);
break;
case SnapToBeatDiv8:
- start = _session->tempo_map().round_to_beat_subdivision (start, 8, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 8, direction);
break;
case SnapToBeatDiv7:
- start = _session->tempo_map().round_to_beat_subdivision (start, 7, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 7, direction);
break;
case SnapToBeatDiv6:
- start = _session->tempo_map().round_to_beat_subdivision (start, 6, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 6, direction);
break;
case SnapToBeatDiv5:
- start = _session->tempo_map().round_to_beat_subdivision (start, 5, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 5, direction);
break;
case SnapToBeatDiv4:
- start = _session->tempo_map().round_to_beat_subdivision (start, 4, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 4, direction);
break;
case SnapToBeatDiv3:
- start = _session->tempo_map().round_to_beat_subdivision (start, 3, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 3, direction);
break;
case SnapToBeatDiv2:
- start = _session->tempo_map().round_to_beat_subdivision (start, 2, direction);
+ start = _session->tempo_map().round_to_quarter_note_subdivision (start, 2, direction);
break;
case SnapToMark:
switch (_snap_type) {
case SnapToBeat:
- return Evoral::Beats(1.0);
+ return Evoral::Beats(4.0 / _session->tempo_map().meter_at_frame (position).note_divisor());
case SnapToBar:
if (_session) {
- return Evoral::Beats(_session->tempo_map().meter_at_frame (position).divisions_per_bar());
+ const Meter& m = _session->tempo_map().meter_at_frame (position);
+ return Evoral::Beats((4.0 * m.divisions_per_bar()) / m.note_divisor());
}
break;
default:
true
);
dialog->present ();
- ARDOUR_UI::instance()->flush_pending ();
+ ARDOUR_UI::instance()->flush_pending (60);
}
for (TrackViewList::iterator t = track_views.begin(); t != track_views.end(); ++t) {