}
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) {
if (segments.empty())
return;
- static double prev_min = 0, prev_max = 0;
+ double signal_min_ = 0, signal_max_ = 0;
double min = 0, max = 0;
for (const shared_ptr<pv::data::AnalogSegment>& segment : segments) {
max = std::max(max, mm.second);
}
- if ((min == prev_min) && (max == prev_max) && !force_update)
+ if ((min == signal_min_) && (max == signal_max_) && !force_update)
return;
- prev_min = min;
- prev_max = max;
+ signal_min_ = min;
+ signal_max_ = max;
// If we're allowed to alter the div assignment...
if (!keep_divs) {
if (hp.x() <= 0) {
value_at_hover_pos_ = std::numeric_limits<float>::quiet_NaN();
} else {
- try {
+ if ((size_t)hp.x() < value_at_pixel_pos_.size())
value_at_hover_pos_ = value_at_pixel_pos_.at(hp.x());
- } catch (out_of_range&) {
+ else
value_at_hover_pos_ = std::numeric_limits<float>::quiet_NaN();
- }
}
}