Rework signaling mechanism for trace repainting
[pulseview.git] / pv / view / trace.cpp
index 66f13edb12dac9b4cf4795af5916c026f1713772..2154f8a7af1354216dce1b2874bc42e6064135c9 100644 (file)
@@ -59,6 +59,11 @@ Trace::Trace(shared_ptr<data::SignalBase> channel) :
                this, SLOT(on_colour_changed(const QColor&)));
 }
 
+shared_ptr<data::SignalBase> Trace::base() const
+{
+       return base_;
+}
+
 void Trace::paint_label(QPainter &p, const QRect &rect, bool hover)
 {
        const int y = get_visual_y();
@@ -151,7 +156,7 @@ QRectF Trace::label_rect(const QRectF &rect) const
                label_size.height());
 }
 
-void Trace::paint_back(QPainter &p, const ViewItemPaintParams &pp)
+void Trace::paint_back(QPainter &p, ViewItemPaintParams &pp)
 {
        const View *view = owner_->view();
        assert(view);
@@ -159,7 +164,7 @@ void Trace::paint_back(QPainter &p, const ViewItemPaintParams &pp)
        if (view->coloured_bg())
                p.setBrush(base_->bgcolour());
        else
-               p.setBrush(bgcolour_state_ ? BrightGrayBGColour : DarkGrayBGColour);
+               p.setBrush(pp.next_bg_colour_state() ? BrightGrayBGColour : DarkGrayBGColour);
 
        p.setPen(QPen(Qt::NoPen));
 
@@ -168,7 +173,7 @@ void Trace::paint_back(QPainter &p, const ViewItemPaintParams &pp)
                pp.width(), extents.second - extents.first);
 }
 
-void Trace::paint_axis(QPainter &p, const ViewItemPaintParams &pp, int y)
+void Trace::paint_axis(QPainter &p, ViewItemPaintParams &pp, int y)
 {
        p.setRenderHint(QPainter::Antialiasing, false);