]> sigrok.org Git - pulseview.git/commitdiff
AnalogSignal: display type-related improvements
authorSoeren Apel <redacted>
Wed, 22 Mar 2017 21:33:09 +0000 (22:33 +0100)
committerSoeren Apel <redacted>
Wed, 22 Mar 2017 22:24:28 +0000 (23:24 +0100)
1) Only show the v/div setting if analog trace is drawn
2) Update the trace when the display type is changed

pv/view/analogsignal.cpp
pv/view/analogsignal.hpp

index 1cdea278dd38228c3c7a989f99ae0664528841fe..8f79f919eaad3f7e67618378cb6405af9b4f193c 100644 (file)
@@ -243,20 +243,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)
@@ -675,6 +677,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 +757,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
index 4e840ed3daed3c9841a4adda4ee22d1e8c1dad81..32af0171399e0864143048f62654f1f7b8fb9567 100644 (file)
@@ -161,6 +161,8 @@ private Q_SLOTS:
 
        void on_conversion_changed(int index);
 
+       void on_display_type_changed(int index);
+
 private:
        QComboBox *resolution_cb_, *conversion_cb_, *display_type_cb_;