X-Git-Url: http://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fruler.cpp;fp=pv%2Fviews%2Ftrace%2Fruler.cpp;h=63d3d23fcb946536f173ee0e184aacd1084d0039;hp=0c2b6592cf3eb90f05f18a6ca95aadb2418acfb4;hb=5408524db09d7a3b1f2f47f9a749ac9901e800e2;hpb=d0c0573b3ee694827a747727f862c5f91736ca05 diff --git a/pv/views/trace/ruler.cpp b/pv/views/trace/ruler.cpp index 0c2b6592..63d3d23f 100644 --- a/pv/views/trace/ruler.cpp +++ b/pv/views/trace/ruler.cpp @@ -29,6 +29,8 @@ using namespace Qt; using std::function; +using std::max; +using std::min; using std::shared_ptr; using std::vector; @@ -159,10 +161,18 @@ void Ruler::paintEvent(QPaintEvent*) p.setPen(palette().color(foregroundRole())); for (const auto& tick: tick_position_cache_->major) { - p.drawText(tick.first, ValueMargin, 0, text_height, + const int leftedge = 0; + const int rightedge = width(); + const int x_tick = tick.first; + if ((x_tick > leftedge) && (x_tick < rightedge)) { + const int x_left_bound = QFontMetrics(font()).width(tick.second) / 2; + const int x_right_bound = rightedge - x_left_bound; + const int x_legend = min(max(x_tick, x_left_bound), x_right_bound); + p.drawText(x_legend, ValueMargin, 0, text_height, AlignCenter | AlignTop | TextDontClip, tick.second); - p.drawLine(QPointF(tick.first, major_tick_y1), + p.drawLine(QPointF(x_tick, major_tick_y1), QPointF(tick.first, ruler_height)); + } } for (const auto& tick: tick_position_cache_->minor) {