X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;ds=sidebyside;f=pv%2Fviews%2Ftrace%2Fanalogsignal.cpp;h=a106be4694c5f52c884a2f1130bb34a1adbab7bc;hb=1931b5f932cf068d073bc798f11dd21ede5389a2;hp=8a055729e10d6305a2887e33cd87f660e516896f;hpb=641574bcc118be0b6dc3a65039ab3497f9d7241a;p=pulseview.git diff --git a/pv/views/trace/analogsignal.cpp b/pv/views/trace/analogsignal.cpp index 8a05572..a106be4 100644 --- a/pv/views/trace/analogsignal.cpp +++ b/pv/views/trace/analogsignal.cpp @@ -116,8 +116,6 @@ AnalogSignal::AnalogSignal( connect(analog_data, SIGNAL(min_max_changed(float, float)), this, SLOT(on_min_max_changed(float, float))); - GlobalSettings::add_change_handler(this); - GlobalSettings gs; conversion_threshold_disp_mode_ = gs.value(GlobalSettings::Key_View_ConversionThresholdDispMode).toInt(); @@ -210,6 +208,8 @@ void AnalogSignal::scale_handle_drag_release() void AnalogSignal::on_setting_changed(const QString &key, const QVariant &value) { + Signal::on_setting_changed(key, value); + if (key == GlobalSettings::Key_View_ConversionThresholdDispMode) on_settingViewConversionThresholdDispMode_changed(value); } @@ -328,6 +328,9 @@ void AnalogSignal::paint_fore(QPainter &p, ViewItemPaintParams &pp) p.drawText(bounding_rect, Qt::AlignRight | Qt::AlignBottom, infotext); } + + if (show_hover_marker_) + paint_hover_marker(p); } void AnalogSignal::paint_grid(QPainter &p, int y, int left, int right) @@ -407,7 +410,7 @@ void AnalogSignal::paint_trace(QPainter &p, p.setPen(base_->color()); - const int64_t points_count = end - start; + const int64_t points_count = end - start + 1; QPointF *points = new QPointF[points_count]; QPointF *point = points; @@ -420,7 +423,7 @@ void AnalogSignal::paint_trace(QPainter &p, segment->get_samples(start, start + sample_count, sample_block); const int w = 2; - for (int64_t sample = start; sample != end; sample++, block_sample++) { + for (int64_t sample = start; sample <= end; sample++, block_sample++) { if (block_sample == TracePaintBlockSize) { block_sample = 0; @@ -428,8 +431,7 @@ void AnalogSignal::paint_trace(QPainter &p, segment->get_samples(sample, sample + sample_count, sample_block); } - const float x = (sample / samples_per_pixel - - pixels_offset) + left; + const float x = left + (sample / samples_per_pixel - pixels_offset); *point++ = QPointF(x, y - sample_block[block_sample] * scale_);