]> sigrok.org Git - pulseview.git/blobdiff - pv/signal.cpp
Added a label colour chooser dialog
[pulseview.git] / pv / signal.cpp
index aeb693b77d043a670556fd1889e40395211d931e..04c579232e4c6a2966680b0ad68a39ddf796aacf 100644 (file)
 #include <extdef.h>
 
 #include "signal.h"
+#include "view/view.h"
 
 namespace pv {
 
-const QSizeF Signal::LabelPadding(4, 0);
 const int Signal::LabelHitPadding = 2;
 
 Signal::Signal(QString name) :
@@ -42,9 +42,19 @@ void Signal::set_name(QString name)
        _name = name;
 }
 
+QColor Signal::get_colour() const
+{
+       return _colour;
+}
+
+void Signal::set_colour(QColor colour)
+{
+       _colour = colour;
+}
+
 void Signal::paint_label(QPainter &p, const QRect &rect, bool hover)
 {
-       p.setBrush(get_colour());
+       p.setBrush(_colour);
 
        const QColor colour = get_colour();
        const float nominal_offset = get_nominal_offset(rect);
@@ -104,13 +114,16 @@ void Signal::compute_text_size(QPainter &p)
 
 QRectF Signal::get_label_rect(const QRect &rect)
 {
-       const float nominal_offset = get_nominal_offset(rect);
+       using pv::view::View;
+
+       const float nominal_offset = get_nominal_offset(rect) + 0.5;
        const QSizeF label_size(
-               _text_size.width() + LabelPadding.width() * 2,
-               _text_size.height() + LabelPadding.height() * 2);
+               _text_size.width() + View::LabelPadding.width() * 2,
+               _text_size.height() + View::LabelPadding.height() * 2);
        const float label_arrow_length = label_size.height() / 2;
        return QRectF(
-               rect.right() - label_arrow_length - label_size.width(),
+               rect.right() - label_arrow_length -
+                       label_size.width() - 0.5,
                nominal_offset - label_size.height() / 2,
                label_size.width(), label_size.height());
 }