]> sigrok.org Git - pulseview.git/blobdiff - pv/view/trace.cpp
DeviceManager: Don't perform scans with DMM drivers
[pulseview.git] / pv / view / trace.cpp
index 2a1eb959634fb23289cc1b12fa8c5613ef795e81..e5733372378f399dace15e5ba2124802f60fc5c0 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();
@@ -70,21 +75,24 @@ void Trace::paint_label(QPainter &p, const QRect &rect, bool hover)
 
        const QRectF r = label_rect(rect);
 
+       // When selected, move the arrow to the left so that the border can show
+       const QPointF offs = (selected()) ? QPointF(-2, 0) : QPointF(0, 0);
+
        // Paint the label
        const float label_arrow_length = r.height() / 2;
-       const QPointF points[] = {
-               r.topLeft(),
-               QPointF(r.right() - label_arrow_length, r.top()),
-               QPointF(r.right(), y),
-               QPointF(r.right() - label_arrow_length, r.bottom()),
-               r.bottomLeft()
+       QPointF points[] = {
+               offs + r.topLeft(),
+               offs + QPointF(r.right() - label_arrow_length, r.top()),
+               offs + QPointF(r.right(), y),
+               offs + QPointF(r.right() - label_arrow_length, r.bottom()),
+               offs + r.bottomLeft()
        };
-       const QPointF highlight_points[] = {
-               QPointF(r.left() + 1, r.top() + 1),
-               QPointF(r.right() - label_arrow_length, r.top() + 1),
-               QPointF(r.right() - 1, y),
-               QPointF(r.right() - label_arrow_length, r.bottom() - 1),
-               QPointF(r.left() + 1, r.bottom() - 1)
+       QPointF highlight_points[] = {
+               offs + QPointF(r.left() + 1, r.top() + 1),
+               offs + QPointF(r.right() - label_arrow_length, r.top() + 1),
+               offs + QPointF(r.right() - 1, y),
+               offs + QPointF(r.right() - label_arrow_length, r.bottom() - 1),
+               offs + QPointF(r.left() + 1, r.bottom() - 1)
        };
 
        if (selected()) {
@@ -151,7 +159,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,21 +167,16 @@ 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));
 
        const pair<int, int> extents = v_extents();
-
-       const int x = 0;
-       const int y = get_visual_y() + extents.first;
-       const int w = pp.right() - pp.left();
-       const int h = extents.second - extents.first;
-
-       p.drawRect(x, y, w, h);
+       p.drawRect(pp.left(), get_visual_y() + extents.first,
+               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);