X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fanalogsignal.cpp;h=3430ab3cf48eb6996ca0cd52901c1d9c884aa4cb;hp=cd680085312b07d5249fecca2f51b0c32cdb39de;hb=8a07bc241694c10678968309bc8ee4e6076df3a3;hpb=3b2ead4fbeb899188564ec9c69c216708311a881 diff --git a/pv/views/trace/analogsignal.cpp b/pv/views/trace/analogsignal.cpp index cd680085..3430ab3c 100644 --- a/pv/views/trace/analogsignal.cpp +++ b/pv/views/trace/analogsignal.cpp @@ -297,7 +297,7 @@ void AnalogSignal::paint_fore(QPainter &p, ViewItemPaintParams &pp) // and we have corresponding data available if (show_hover_marker_ && !std::isnan(value_at_hover_pos_)) { infotext = QString("[%1] %2 V/div") - .arg(format_value_si(value_at_hover_pos_, SIPrefix::unspecified, 0, "V", false)) + .arg(format_value_si(value_at_hover_pos_, SIPrefix::unspecified, 2, "V", false)) .arg(resolution_); } else infotext = QString("%1 V/div").arg(resolution_); @@ -319,6 +319,7 @@ void AnalogSignal::paint_fore(QPainter &p, ViewItemPaintParams &pp) void AnalogSignal::paint_grid(QPainter &p, int y, int left, int right) { + bool was_antialiased = p.testRenderHint(QPainter::Antialiasing); p.setRenderHint(QPainter::Antialiasing, false); if (pos_vdivs_ > 0) { @@ -363,7 +364,7 @@ void AnalogSignal::paint_grid(QPainter &p, int y, int left, int right) } } - p.setRenderHint(QPainter::Antialiasing, true); + p.setRenderHint(QPainter::Antialiasing, was_antialiased); } void AnalogSignal::paint_trace(QPainter &p, @@ -443,7 +444,9 @@ void AnalogSignal::paint_trace(QPainter &p, } delete[] sample_block; - p.drawPolyline(points, points_count); + // QPainter::drawPolyline() is slow, let's paint the lines ourselves + for (int64_t i = 1; i < points_count; i++) + p.drawLine(points[i - 1], points[i]); if (show_sampling_points) { if (paint_thr_dots) {