X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Ftrace.cpp;h=91fde4725cbbf6f142644174a7e1103be26ff5fa;hp=46d9edb9ba14bbcfdf2069b42390415b34a6299c;hb=3734c4645fc071fe7ecfb552d65d343e50b098e1;hpb=1573bf16ba50d1c023ad3a9ce596f0ab6eaeacff diff --git a/pv/views/trace/trace.cpp b/pv/views/trace/trace.cpp index 46d9edb9..91fde472 100644 --- a/pv/views/trace/trace.cpp +++ b/pv/views/trace/trace.cpp @@ -50,6 +50,9 @@ const QColor Trace::DarkGrayBGColour = QColor(0, 0, 0, 15 * 255 / 100); Trace::Trace(shared_ptr channel) : base_(channel), + axis_pen_(AxisPen), + segment_display_mode_(ShowLastSegmentOnly), // Will be overwritten by View + current_segment_(0), popup_(nullptr), popup_form_(nullptr) { @@ -134,7 +137,7 @@ pv::widgets::Popup* Trace::create_popup(QWidget *parent) popup_ = new Popup(parent); popup_->set_position(parent->mapToGlobal( - point(parent->rect())), Popup::Right); + drag_point(parent->rect())), Popup::Right); create_popup_form(); @@ -159,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(); @@ -180,7 +193,7 @@ void Trace::paint_axis(QPainter &p, ViewItemPaintParams &pp, int y) { p.setRenderHint(QPainter::Antialiasing, false); - p.setPen(AxisPen); + p.setPen(axis_pen_); p.drawLine(QPointF(pp.left(), y), QPointF(pp.right(), y)); p.setRenderHint(QPainter::Antialiasing, true); @@ -241,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 */