X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fview.cpp;h=6d366e7311881b8736b80daf2709becd72d7c88b;hb=cc88566ce77bed57358a82dec5da648feb66d10b;hp=540b90e14cffb17021e698549b780475e689f280;hpb=af503b104d890a357c736c678bb00296d889c090;p=pulseview.git diff --git a/pv/view/view.cpp b/pv/view/view.cpp index 540b90e..6d366e7 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -32,6 +32,8 @@ #include #include +#include + #include #include #include @@ -507,7 +509,11 @@ void View::update_viewport() void View::restack_all_trace_tree_items() { // Make a list of owners that is sorted from deepest first - const auto owners = list_row_item_owners(); + const vector> items( + list_by_type()); + set< TraceTreeItemOwner* > owners; + for (const auto &r : items) + owners.insert(r->owner()); vector< TraceTreeItemOwner* > sorted_owners(owners.begin(), owners.end()); sort(sorted_owners.begin(), sorted_owners.end(), [](const TraceTreeItemOwner* a, const TraceTreeItemOwner *b) { @@ -518,8 +524,8 @@ void View::restack_all_trace_tree_items() o->restack_items(); // Animate the items to their destination - for (const auto &r : *this) - r->animate_to_layout_v_offset(); + for (const auto &i : items) + i->animate_to_layout_v_offset(); } void View::get_scroll_layout(double &length, Timestamp &offset) const @@ -875,7 +881,9 @@ void View::signals_changed() // Make a list of traces that are being added, and a list of traces // that are being removed - const set> prev_traces = list_by_type(); + const vector> prev_trace_list = list_by_type(); + const set> prev_traces( + prev_trace_list.begin(), prev_trace_list.end()); shared_lock lock(session_.signals_mutex()); const unordered_set< shared_ptr > &sigs(session_.signals()); @@ -1057,7 +1065,9 @@ void View::process_sticky_events() void View::on_hover_point_changed() { - for (shared_ptr r : *this) + const vector> trace_tree_items( + list_by_type()); + for (shared_ptr r : trace_tree_items) r->hover_point_changed(); }