]> sigrok.org Git - pulseview.git/blobdiff - pv/view/view.cpp
Use the TriggerMarker class to visualize the time of SR_DF_TRIGGER.
[pulseview.git] / pv / view / view.cpp
index 7de1c792c06fa9880eee2d295e4cc8fc9672ef19..15dd05812637d054287b605fc919374e7c150edd 100644 (file)
@@ -48,6 +48,7 @@
 #include "ruler.hpp"
 #include "signal.hpp"
 #include "tracegroup.hpp"
+#include "triggermarker.hpp"
 #include "view.hpp"
 #include "viewport.hpp"
 
@@ -114,6 +115,7 @@ View::View(Session &session, QWidget *parent) :
        show_cursors_(false),
        cursors_(new CursorPair(*this)),
        next_flag_text_('A'),
+       trigger_marker_(nullptr),
        hover_point_(-1, -1)
 {
        connect(horizontalScrollBar(), SIGNAL(valueChanged(int)),
@@ -207,6 +209,10 @@ vector< shared_ptr<TimeItem> > View::time_items() const
        items.push_back(cursors_);
        items.push_back(cursors_->first());
        items.push_back(cursors_->second());
+
+       if (trigger_marker_)
+               items.push_back(trigger_marker_);
+
        return items;
 }
 
@@ -462,8 +468,10 @@ void View::add_flag(const Timestamp& time)
 {
        flags_.push_back(shared_ptr<Flag>(new Flag(*this, time,
                QString("%1").arg(next_flag_text_))));
+
        next_flag_text_ = (next_flag_text_ >= 'Z') ? 'A' :
                (next_flag_text_ + 1);
+
        time_item_appearance_changed(true, true);
 }
 
@@ -518,6 +526,14 @@ void View::restack_all_trace_tree_items()
                i->animate_to_layout_v_offset();
 }
 
+void View::trigger_event(util::Timestamp location)
+{
+       if (trigger_marker_)
+               trigger_marker_->set_time(location);
+       else
+               trigger_marker_ = std::shared_ptr<TriggerMarker>(new TriggerMarker(*this, location));
+}
+
 void View::get_scroll_layout(double &length, Timestamp &offset) const
 {
        const pair<Timestamp, Timestamp> extents = get_time_extents();