+ vector< shared_ptr<TraceTreeItem> > trace_tree_items(
+ view_.list_by_type<TraceTreeItem>());
+ assert(none_of(trace_tree_items.begin(), trace_tree_items.end(),
+ [](const shared_ptr<TraceTreeItem> &r) { return !r; }));
+
+ stable_sort(trace_tree_items.begin(), trace_tree_items.end(),
+ [](const shared_ptr<TraceTreeItem> &a, const shared_ptr<TraceTreeItem> &b) {
+ return a->visual_v_offset() < b->visual_v_offset(); });
+
+ const vector< shared_ptr<TimeItem> > time_items(view_.time_items());
+ assert(none_of(time_items.begin(), time_items.end(),
+ [](const shared_ptr<TimeItem> &t) { return !t; }));
+
+ QPainter p(this);
+ p.setRenderHint(QPainter::Antialiasing);