]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/trace.cpp
View: Fixes related to multi-segment display
[pulseview.git] / pv / views / trace / trace.cpp
index f9bd87e1dd906bafdc23e135b818bc7c47f4b6b1..91fde4725cbbf6f142644174a7e1103be26ff5fa 100644 (file)
@@ -51,6 +51,8 @@ const QColor Trace::DarkGrayBGColour = QColor(0, 0, 0, 15 * 255 / 100);
 Trace::Trace(shared_ptr<data::SignalBase> channel) :
        base_(channel),
        axis_pen_(AxisPen),
+       segment_display_mode_(ShowLastSegmentOnly),  // Will be overwritten by View
+       current_segment_(0),
        popup_(nullptr),
        popup_form_(nullptr)
 {
@@ -160,6 +162,16 @@ QRectF Trace::label_rect(const QRectF &rect) const
                label_size.height());
 }
 
+void Trace::set_current_segment(const int segment)
+{
+       current_segment_ = segment;
+}
+
+int Trace::get_current_segment() const
+{
+       return current_segment_;
+}
+
 void Trace::paint_back(QPainter &p, ViewItemPaintParams &pp)
 {
        const View *view = owner_->view();
@@ -242,6 +254,14 @@ void Trace::set_colour(QColor colour)
        base_->set_colour(colour);
 }
 
+void Trace::set_segment_display_mode(SegmentDisplayMode mode)
+{
+       segment_display_mode_ = mode;
+
+       if (owner_)
+               owner_->row_item_appearance_changed(true, true);
+}
+
 void Trace::on_name_changed(const QString &text)
 {
        /* This event handler is called by SignalBase when the name was changed there */