for (shared_ptr<TraceTreeItem> i : items) {
// Can't cast to Trace because it's abstract, so we need to
// check for any derived classes individually
for (shared_ptr<TraceTreeItem> i : items) {
// Can't cast to Trace because it's abstract, so we need to
// check for any derived classes individually