]> sigrok.org Git - pulseview.git/blobdiff - pv/view/analogsignal.cpp
AnalogSignal: Implement info text for V/div display
[pulseview.git] / pv / view / analogsignal.cpp
index 6703ce9ed8b2c1b4e40cab8b905231b284cf450e..7e5bcd11facdb6d1a81368c27fd866da1afc6ff9 100644 (file)
@@ -31,6 +31,7 @@
 #include <QGridLayout>
 #include <QLabel>
 #include <QSpinBox>
 #include <QGridLayout>
 #include <QLabel>
 #include <QSpinBox>
+#include <QString>
 
 #include "analogsignal.hpp"
 #include "pv/data/analog.hpp"
 
 #include "analogsignal.hpp"
 #include "pv/data/analog.hpp"
@@ -66,6 +67,9 @@ const int AnalogSignal::MaximumVDivs = 10;
 const int AnalogSignal::MinScaleIndex = -6;
 const int AnalogSignal::MaxScaleIndex = 7;
 
 const int AnalogSignal::MinScaleIndex = -6;
 const int AnalogSignal::MaxScaleIndex = 7;
 
+const int AnalogSignal::InfoTextMarginRight = 20;
+const int AnalogSignal::InfoTextMarginBottom = 5;
+
 AnalogSignal::AnalogSignal(
        pv::Session &session,
        shared_ptr<Channel> channel,
 AnalogSignal::AnalogSignal(
        pv::Session &session,
        shared_ptr<Channel> channel,
@@ -173,6 +177,27 @@ void AnalogSignal::paint_mid(QPainter &p, const ViewItemPaintParams &pp)
                        pixels_offset, samples_per_pixel);
 }
 
                        pixels_offset, samples_per_pixel);
 }
 
+void AnalogSignal::paint_fore(QPainter &p, const ViewItemPaintParams &pp)
+{
+       if (!enabled())
+               return;
+
+       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_);
+
+       p.setPen(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);
+
+       p.drawText(bounding_rect, Qt::AlignRight | Qt::AlignBottom, infotext);
+}
+
 void AnalogSignal::paint_grid(QPainter &p, int y, int left, int right)
 {
        p.setPen(QPen(GridMajorColor, 0.5, Qt::DashLine));
 void AnalogSignal::paint_grid(QPainter &p, int y, int left, int right)
 {
        p.setPen(QPen(GridMajorColor, 0.5, Qt::DashLine));