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
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<sigrok::ChannelGroup> &group,
const unordered_map<shared_ptr<sigrok::Channel>, shared_ptr<Signal> >
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
// Remove any empty trace groups
for (shared_ptr<TraceGroup> group : list_by_type<TraceGroup>())
- 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<int, int> extents = item->v_extents();
+
+ if (item->enabled())
+ offset += -extents.first;
- add_child_item(item);
item->force_to_v_offset(offset);
- const pair<int, int> extents = item->v_extents();
if (item->enabled())
- offset += (extents.second - extents.first);
+ offset += extents.second;
}
update_layout();