X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Flogicsignal.cpp;h=19522fb27f0187d05fd3b27dfd5c705045445162;hp=0c934cc72cb0f3de8a675332de3115deb86b9ee4;hb=fe08b6e8a85c80ae738757f7d85aa38ef7c4bdc3;hpb=ef8311a4296a2dc85c82b063de61efa4eb7a8404 diff --git a/pv/view/logicsignal.cpp b/pv/view/logicsignal.cpp index 0c934cc7..19522fb2 100644 --- a/pv/view/logicsignal.cpp +++ b/pv/view/logicsignal.cpp @@ -28,6 +28,7 @@ #include "pv/sigsession.h" #include "pv/data/logic.h" #include "pv/data/logicsnapshot.h" +#include "pv/view/view.h" using namespace boost; using namespace std; @@ -117,6 +118,11 @@ void LogicSignal::init_context_bar_actions(QWidget *parent) this, SLOT(on_trigger_change())); } +boost::shared_ptr LogicSignal::data() const +{ + return _data; +} + const list LogicSignal::get_context_bar_actions() { GVariant *gvar; @@ -156,8 +162,13 @@ const list LogicSignal::get_context_bar_actions() return actions; } -void LogicSignal::paint(QPainter &p, int y, int left, int right, - double scale, double offset) +void LogicSignal::paint_back(QPainter &p, int left, int right) +{ + if (_probe->enabled) + paint_axis(p, get_y(), left, right); +} + +void LogicSignal::paint_mid(QPainter &p, int left, int right) { using pv::view::View; @@ -166,15 +177,20 @@ void LogicSignal::paint(QPainter &p, int y, int left, int right, vector< pair > edges; assert(_probe); - assert(scale > 0); assert(_data); assert(right >= left); + assert(_view); + const int y = _v_offset - _view->v_offset(); + + const double scale = _view->scale(); + assert(scale > 0); + + const double offset = _view->offset(); + if (!_probe->enabled) return; - paint_axis(p, y, left, right); - const float high_offset = y - View::SignalHeight + 0.5f; const float low_offset = y + 0.5f;