]> sigrok.org Git - pulseview.git/blobdiff - pv/view/trace.cpp
Fix bug #477 by keeping track of visible rows, not just titles
[pulseview.git] / pv / view / trace.cpp
index 4fe9628c587e19228dbf013841045c0a3c67f891..61a002bb80f422a042f300c9d01526b04d810730 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <QApplication>
 #include <QFormLayout>
+#include <QKeyEvent>
 #include <QLineEdit>
 
 #include "trace.h"
@@ -40,8 +41,8 @@ namespace view {
 const QPen Trace::AxisPen(QColor(128, 128, 128, 64));
 const int Trace::LabelHitPadding = 2;
 
-Trace::Trace(pv::SigSession &session, QString name) :
-       _session(session),
+Trace::Trace(QString name) :
+       _view(NULL),
        _name(name),
        _v_offset(0),
        _popup(NULL),
@@ -82,7 +83,15 @@ void Trace::set_v_offset(int v_offset)
 void Trace::set_view(pv::view::View *view)
 {
        assert(view);
+
+       if (_view)
+               disconnect(_view, SIGNAL(hover_point_changed()),
+                       this, SLOT(on_hover_point_changed()));
+
        _view = view;
+
+       connect(view, SIGNAL(hover_point_changed()),
+               this, SLOT(on_hover_point_changed()));
 }
 
 void Trace::paint_back(QPainter &p, int left, int right)
@@ -166,7 +175,7 @@ bool Trace::pt_in_label_rect(int left, int right, const QPoint &point)
        (void)left;
 
        const QRectF label = get_label_rect(right);
-       return QRectF(
+       return enabled() && QRectF(
                QPointF(label.left() - LabelHitPadding,
                        label.top() - LabelHitPadding),
                QPointF(right, label.bottom() + LabelHitPadding)
@@ -271,6 +280,10 @@ void Trace::populate_popup_form(QWidget *parent, QFormLayout *form)
        add_colour_option(parent, form);
 }
 
+void Trace::hover_point_changed()
+{
+}
+
 void Trace::on_popup_closed()
 {
        _popup = NULL;
@@ -289,5 +302,10 @@ void Trace::on_colour_changed(const QColor &colour)
        colour_changed();
 }
 
+void Trace::on_hover_point_changed()
+{
+       hover_point_changed();
+}
+
 } // namespace view
 } // namespace pv