X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fview.cpp;h=9841978a67f333a6b2c5eff555e70bea98590194;hp=758e7118d8e94f2cee90f8334774056b8decc2b2;hb=9e8f0e503e0c79c3765947ba5abae0ffc76850c4;hpb=bc72e51ffa24d47a382b118bfe63df154dac9cf1 diff --git a/pv/view/view.cpp b/pv/view/view.cpp index 758e7118..9841978a 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -527,13 +527,6 @@ const QPoint& View::hover_point() const return hover_point_; } -void View::update_viewport() -{ - assert(viewport_); - viewport_->update(); - header_->update(); -} - void View::restack_all_trace_tree_items() { // Make a list of owners that is sorted from deepest first @@ -744,19 +737,6 @@ void View::update_layout() update_scroll(); } -void View::paint_label(QPainter &p, const QRect &rect, bool hover) -{ - (void)p; - (void)rect; - (void)hover; -} - -QRectF View::label_rect(const QRectF &rect) -{ - (void)rect; - return QRectF(); -} - TraceTreeItemOwner* View::find_prevalent_trace_group( const shared_ptr &group, const unordered_map, shared_ptr > @@ -1038,13 +1018,15 @@ void View::signals_changed() offset += extents.second; } - // Assign proper vertical offsets to each channel in the group - new_trace_group->restack_items(); + if (new_trace_group) { + // Assign proper vertical offsets to each channel in the group + new_trace_group->restack_items(); - // If this is a new group, enqueue it in the new top level - // items list - if (!new_traces_in_group.empty() && new_trace_group) - new_top_level_items.push_back(new_trace_group); + // If this is a new group, enqueue it in the new top level + // items list + if (!new_traces_in_group.empty()) + new_top_level_items.push_back(new_trace_group); + } } // Enqueue the remaining logic channels in a group @@ -1085,20 +1067,26 @@ void View::signals_changed() // Remove any empty trace groups for (shared_ptr group : list_by_type()) - if (group->child_items().size() == 0) + if (group->child_items().size() == 0) { remove_child_item(group); + group.reset(); + } // Add and position the pending top levels items for (auto item : new_top_level_items) { + add_child_item(item); + // Position the item after the last item or at the top if there is none int offset = v_extents().second; + const pair extents = item->v_extents(); + + if (item->enabled()) + offset += -extents.first; - add_child_item(item); item->force_to_v_offset(offset); - const pair extents = item->v_extents(); if (item->enabled()) - offset += (extents.second - extents.first); + offset += extents.second; } update_layout();