X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fanalogsignal.cpp;h=af979c0c2d8a6500358538138e2e89cc9adeccf6;hb=c063290ac7189bdd15221450f598504f43286b43;hp=1cdea278dd38228c3c7a989f99ae0664528841fe;hpb=a8fd27591e6c45776f0d917592e3d1f076607c48;p=pulseview.git diff --git a/pv/view/analogsignal.cpp b/pv/view/analogsignal.cpp index 1cdea27..af979c0 100644 --- a/pv/view/analogsignal.cpp +++ b/pv/view/analogsignal.cpp @@ -68,8 +68,8 @@ const QColor AnalogSignal::SignalColours[4] = { QColor(0x4E, 0x9A, 0x06) // Green }; -const QColor AnalogSignal::GridMajorColor = QColor(0, 0, 0, 40*256/100); -const QColor AnalogSignal::GridMinorColor = QColor(0, 0, 0, 20*256/100); +const QColor AnalogSignal::GridMajorColor = QColor(0, 0, 0, 40 * 256 / 100); +const QColor AnalogSignal::GridMinorColor = QColor(0, 0, 0, 20 * 256 / 100); const QColor AnalogSignal::SamplingPointColour(0x77, 0x77, 0x77); @@ -157,16 +157,14 @@ int AnalogSignal::scale_handle_offset() const { const int h = (pos_vdivs_ + neg_vdivs_) * div_height_; - return ((scale_index_drag_offset_ - scale_index_) * - h / 4) - h / 2; + return ((scale_index_drag_offset_ - scale_index_) * h / 4) - h / 2; } void AnalogSignal::scale_handle_dragged(int offset) { const int h = (pos_vdivs_ + neg_vdivs_) * div_height_; - scale_index_ = scale_index_drag_offset_ - - (offset + h / 2) / (h / 4); + scale_index_ = scale_index_drag_offset_ - (offset + h / 2) / (h / 4); update_scale(); } @@ -243,20 +241,22 @@ void AnalogSignal::paint_fore(QPainter &p, const ViewItemPaintParams &pp) if (!enabled()) return; - const int y = get_visual_y(); + if ((display_type_ == DisplayAnalog) || (display_type_ == DisplayBoth)) { + const int y = get_visual_y(); - // Show the info section on the right side of the trace - const QString infotext = QString("%1 V/div").arg(resolution_); + // Show the info section on the right side of the trace + const QString infotext = QString("%1 V/div").arg(resolution_); - p.setPen(base_->colour()); - p.setFont(QApplication::font()); + p.setPen(base_->colour()); + p.setFont(QApplication::font()); - const QRectF bounding_rect = QRectF(pp.left(), - y + v_extents().first, - pp.width() - InfoTextMarginRight, - v_extents().second - v_extents().first - InfoTextMarginBottom); + const QRectF bounding_rect = QRectF(pp.left(), + y + v_extents().first, + pp.width() - InfoTextMarginRight, + v_extents().second - v_extents().first - InfoTextMarginBottom); - p.drawText(bounding_rect, Qt::AlignRight | Qt::AlignBottom, infotext); + p.drawText(bounding_rect, Qt::AlignRight | Qt::AlignBottom, infotext); + } } void AnalogSignal::paint_grid(QPainter &p, int y, int left, int right) @@ -369,7 +369,7 @@ void AnalogSignal::paint_envelope(QPainter &p, QRectF *const rects = new QRectF[e.length]; QRectF *rect = rects; - for (uint64_t sample = 0; sample < e.length-1; sample++) { + for (uint64_t sample = 0; sample < e.length - 1; sample++) { const float x = ((e.scale * sample + e.start) / samples_per_pixel - pixels_offset) + left; const AnalogSegment::EnvelopeSample *const s = @@ -377,8 +377,8 @@ void AnalogSignal::paint_envelope(QPainter &p, // We overlap this sample with the next so that vertical // gaps do not appear during steep rising or falling edges - const float b = y - max(s->max, (s+1)->min) * scale_; - const float t = y - min(s->min, (s+1)->max) * scale_; + const float b = y - max(s->max, (s + 1)->min) * scale_; + const float t = y - min(s->min, (s + 1)->max) * scale_; float h = b - t; if (h >= 0.0f && h <= 1.0f) @@ -675,6 +675,9 @@ void AnalogSignal::populate_popup_form(QWidget *parent, QFormLayout *form) layout->addRow(tr("Traces to show:"), display_type_cb_); + connect(display_type_cb_, SIGNAL(currentIndexChanged(int)), + this, SLOT(on_display_type_changed(int))); + form->addRow(layout); } @@ -752,6 +755,14 @@ void AnalogSignal::on_conversion_changed(int index) } } +void AnalogSignal::on_display_type_changed(int index) +{ + display_type_ = (DisplayType)(display_type_cb_->itemData(index).toInt()); + + if (owner_) + owner_->row_item_appearance_changed(false, true); +} + } // namespace TraceView } // namespace views } // namespace pv