From: Joel Holdsworth Date: Sat, 19 Jan 2013 08:22:12 +0000 (+0000) Subject: Added axes to each signal X-Git-Tag: pulseview-0.1.0~152 X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=commitdiff_plain;h=3ef6182a4cb1d50262f019e5d78bd5c00fc08ca5 Added axes to each signal --- diff --git a/pv/view/analogsignal.cpp b/pv/view/analogsignal.cpp index 13608069..7ea6a6fd 100644 --- a/pv/view/analogsignal.cpp +++ b/pv/view/analogsignal.cpp @@ -46,6 +46,8 @@ void AnalogSignal::paint(QPainter &p, int y, int left, int right, double scale, assert(_data); assert(right >= left); + paint_axis(p, y, left, right); + const deque< shared_ptr > &snapshots = _data->get_snapshots(); if (snapshots.empty()) diff --git a/pv/view/logicsignal.cpp b/pv/view/logicsignal.cpp index 051da4d8..568d10b3 100644 --- a/pv/view/logicsignal.cpp +++ b/pv/view/logicsignal.cpp @@ -76,6 +76,8 @@ void LogicSignal::paint(QPainter &p, int y, int left, int right, assert(_data); assert(right >= left); + paint_axis(p, y, left, right); + const float high_offset = y - View::SignalHeight + 0.5f; const float low_offset = y + 0.5f; diff --git a/pv/view/signal.cpp b/pv/view/signal.cpp index 2469d981..ed414c7c 100644 --- a/pv/view/signal.cpp +++ b/pv/view/signal.cpp @@ -31,6 +31,8 @@ namespace view { const int Signal::LabelHitPadding = 2; const int Signal::LabelHighlightRadius = 6; +const QPen Signal::SignalAxisPen(QColor(128, 128, 128, 64)); + Signal::Signal(QString name) : _name(name), _v_offset(0), @@ -140,6 +142,12 @@ bool Signal::pt_in_label_rect(int y, int left, int right, ).contains(point); } +void Signal::paint_axis(QPainter &p, int y, int left, int right) +{ + p.setPen(SignalAxisPen); + p.drawLine(QPointF(left, y + 0.5f), QPointF(right, y + 0.5f)); +} + void Signal::compute_text_size(QPainter &p) { _text_size = p.boundingRect(QRectF(), 0, _name).size(); diff --git a/pv/view/signal.h b/pv/view/signal.h index c35f557d..250d3ff3 100644 --- a/pv/view/signal.h +++ b/pv/view/signal.h @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -44,6 +45,8 @@ private: static const int LabelHitPadding; static const int LabelHighlightRadius; + static const QPen SignalAxisPen; + protected: Signal(QString name); @@ -124,6 +127,17 @@ public: bool pt_in_label_rect(int y, int left, int right, const QPoint &point); +protected: + + /** + * Paints a zero axis across the viewport. + * @param p the QPainter to paint into. + * @param y the y-offset of the axis. + * @param left the x-coordinate of the left edge of the view. + * @param right the x-coordinate of the right edge of the view. + */ + void paint_axis(QPainter &p, int y, int left, int right); + private: /**