X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.cpp;h=00a1c23968c0eb255b2f2b4a9957ce63242569e2;hp=9cd90be83015bafd4f709dc9d7a376418d11e56c;hb=7ea2a4ff0765fdad34b84e4b4631d6f3f5588714;hpb=056f443e2a6f8db80161ce08d7ff8111175bc3d6 diff --git a/pv/views/trace/view.cpp b/pv/views/trace/view.cpp index 9cd90be8..00a1c239 100644 --- a/pv/views/trace/view.cpp +++ b/pv/views/trace/view.cpp @@ -541,6 +541,10 @@ void View::set_current_segment(uint32_t segment_id) for (shared_ptr dt : decode_traces_) dt->set_current_segment(current_segment_); + trigger_markers_.clear(); + for (util::Timestamp timestamp : session_.get_triggers(segment_id)) + trigger_markers_.push_back(make_shared(*this, timestamp)); + viewport_->update(); segment_changed(segment_id); @@ -558,6 +562,8 @@ Trace::SegmentDisplayMode View::segment_display_mode() const void View::set_segment_display_mode(Trace::SegmentDisplayMode mode) { + trigger_markers_.clear(); + segment_display_mode_ = mode; for (shared_ptr signal : signals_) @@ -826,8 +832,12 @@ void View::restack_all_trace_tree_items() i->animate_to_layout_v_offset(); } -void View::trigger_event(util::Timestamp location) +void View::trigger_event(int segment_id, util::Timestamp location) { + // TODO This doesn't work if we're showing multiple segments at once + if ((uint32_t)segment_id != current_segment_) + return; + // Set up ruler_shift if the Key_View_TriggerIsZeroTime option is set. GlobalSettings settings; bool trigger_is_zero_time = settings.value(GlobalSettings::Key_View_TriggerIsZeroTime).toBool();