From 92ff2b60d60c8191a6f4a923b5a9099ec544adbd Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Sun, 8 Nov 2015 21:30:13 +0100 Subject: [PATCH] View: support multiple trigger markers in one acquisition. Remove the previous acquisition's markers when a new acquisition is started, and add a new one everytime we receive the SR_DF_TRIGGER packet. --- pv/view/view.cpp | 17 +++++++++-------- pv/view/view.hpp | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/pv/view/view.cpp b/pv/view/view.cpp index 15dd0581..6a342915 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -115,7 +115,7 @@ View::View(Session &session, QWidget *parent) : show_cursors_(false), cursors_(new CursorPair(*this)), next_flag_text_('A'), - trigger_marker_(nullptr), + trigger_markers_(), hover_point_(-1, -1) { connect(horizontalScrollBar(), SIGNAL(valueChanged(int)), @@ -210,8 +210,8 @@ vector< shared_ptr > View::time_items() const items.push_back(cursors_->first()); items.push_back(cursors_->second()); - if (trigger_marker_) - items.push_back(trigger_marker_); + for (auto trigger_marker : trigger_markers_) + items.push_back(trigger_marker); return items; } @@ -528,10 +528,8 @@ void View::restack_all_trace_tree_items() void View::trigger_event(util::Timestamp location) { - if (trigger_marker_) - trigger_marker_->set_time(location); - else - trigger_marker_ = std::shared_ptr(new TriggerMarker(*this, location)); + trigger_markers_.push_back(shared_ptr( + new TriggerMarker(*this, location))); } void View::get_scroll_layout(double &length, Timestamp &offset) const @@ -1021,9 +1019,12 @@ void View::signals_changed() void View::capture_state_updated(int state) { - if (state == Session::Running) + if (state == Session::Running) { set_time_unit(util::TimeUnit::Samples); + trigger_markers_.clear(); + } + if (state == Session::Stopped) { // After acquisition has stopped we need to re-calculate the ticks once // as it's otherwise done when the user pans or zooms, which is too late diff --git a/pv/view/view.hpp b/pv/view/view.hpp index b64c09d2..66d31a22 100644 --- a/pv/view/view.hpp +++ b/pv/view/view.hpp @@ -384,7 +384,7 @@ private: std::list< std::shared_ptr > flags_; char next_flag_text_; - std::shared_ptr trigger_marker_; + std::vector< std::shared_ptr > trigger_markers_; QPoint hover_point_; -- 2.30.2