Editor::use_visual_state (VisualState& vs)
{
no_save_visual = true;
+ no_route_list_redisplay = true;
vertical_adjustment.set_value (vs.y_position);
set_zoom_focus (vs.zoom_focus);
reposition_and_zoom (vs.leftmost_frame, vs.frames_per_unit);
-
+
for (list<TAVState>::iterator i = vs.track_states.begin(); i != vs.track_states.end(); ++i) {
TrackViewList::iterator t;
}
}
+
if (!vs.track_states.empty()) {
update_route_visibility ();
}
-
+
+ no_route_list_redisplay = false;
+ redisplay_route_list ();
+
no_save_visual = false;
}
uint32_t h = (uint32_t) floor ((canvas_height - child_heights - canvas_timebars_vsize)/selection->tracks.size());
double first_y_pos = DBL_MAX;
+ if (h < TimeAxisView::hSmall) {
+ MessageDialog msg (*this, _("There are too many selected tracks to fit in the current window"));
+ /* too small to be displayed */
+ return;
+ }
+
undo_visual_stack.push_back (current_visual_state());
- for (TrackSelection::iterator t = selection->tracks.begin(); t != selection->tracks.end(); ++t) {
- (*t)->set_height (h);
- first_y_pos = std::min ((*t)->y_position, first_y_pos);
+ /* operate on all tracks, hide unselected ones that are in the middle of selected ones */
+
+ bool prev_was_selected = false;
+ bool is_selected = selection->selected (track_views.front());
+ bool next_is_selected;
+
+ for (TrackViewList::iterator t = track_views.begin(); t != track_views.end(); ++t) {
+
+ bool pws;
+
+ TrackViewList::iterator next;
+
+ next = t;
+ ++next;
+
+ if (next != track_views.end()) {
+ next_is_selected = selection->selected (*next);
+ } else {
+ next_is_selected = false;
+ }
+
+ if (is_selected) {
+ (*t)->set_height (h);
+ first_y_pos = std::min ((*t)->y_position, first_y_pos);
+ } else {
+ if (prev_was_selected && next_is_selected) {
+ hide_track_in_display (**t);
+ }
+ }
+
+ prev_was_selected = is_selected;
+ is_selected = next_is_selected;
}
+
/*
set the controls_layout height now, because waiting for its size
request signal handler will cause the vertical adjustment setting to fail
*/
+
controls_layout.property_height () = full_canvas_height - canvas_timebars_vsize;
vertical_adjustment.set_value (first_y_pos);
for (i = rows.begin(); i != rows.end(); ++i) {
if ((*i)[route_display_columns.tv] == &tv) {
(*i)[route_display_columns.visible] = false;
- // if (temponly) {
- tv.set_marked_for_display (false);
- // }
break;
}
}
for (i = rows.begin(); i != rows.end(); ++i) {
if ((*i)[route_display_columns.tv] == &tv) {
(*i)[route_display_columns.visible] = true;
- tv.set_marked_for_display (true);
break;
}
}
void
Editor::select_all_tracks ()
{
- selection->set (track_views);
+ TrackViewList visible_views;
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ if ((*i)->marked_for_display()) {
+ visible_views.push_back (*i);
+ }
+ }
+ selection->set (visible_views);
}
void