]> sigrok.org Git - pulseview.git/blobdiff - pv/view/view.cpp
Trace: Converted on_hover_point_changed signal to direct notification
[pulseview.git] / pv / view / view.cpp
index 6c7df488e3492c6e87d893488af811d40c691d55..af0892b81d1fb4d85003b179ce38f99d72369676 100644 (file)
@@ -92,6 +92,8 @@ View::View(SigSession &session, QWidget *parent) :
 
        connect(&_session, SIGNAL(signals_changed()),
                this, SLOT(signals_changed()));
+       connect(&_session, SIGNAL(capture_state_changed(int)),
+               this, SLOT(data_updated()));
        connect(&_session, SIGNAL(data_received()),
                this, SLOT(data_updated()));
        connect(&_session, SIGNAL(frame_ended()),
@@ -117,6 +119,9 @@ View::View(SigSession &session, QWidget *parent) :
        connect(_cursorheader, SIGNAL(selection_changed()),
                this, SIGNAL(selection_changed()));
 
+       connect(this, SIGNAL(hover_point_changed()),
+               this, SLOT(on_hover_point_changed()));
+
        setViewport(_viewport);
 
        _viewport->installEventFilter(this);
@@ -128,8 +133,9 @@ View::View(SigSession &session, QWidget *parent) :
        // which were created before this object came into being
        signals_changed();
 
-       // make sure the cursorheader is over the ruler
+       // make sure the transparent widgets are on the top
        _cursorheader->raise();
+       _header->raise();
 }
 
 SigSession& View::session()
@@ -142,6 +148,16 @@ const SigSession& View::session() const
        return _session;
 }
 
+Viewport* View::viewport()
+{
+       return _viewport;
+}
+
+const Viewport* View::viewport() const
+{
+       return _viewport;
+}
+
 double View::scale() const
 {
        return _scale;
@@ -412,7 +428,8 @@ void View::update_scroll()
 
 void View::update_layout()
 {
-       setViewportMargins(_header->sizeHint().width(),
+       setViewportMargins(
+               _header->sizeHint().width() - pv::view::Header::BaselineOffset,
                _ruler->sizeHint().height(), 0, 0);
        _ruler->setGeometry(_viewport->x(), 0,
                _viewport->width(), _viewport->y());
@@ -421,7 +438,7 @@ void View::update_layout()
                _ruler->sizeHint().height() - _cursorheader->sizeHint().height() / 2,
                _viewport->width(), _cursorheader->sizeHint().height());
        _header->setGeometry(0, _viewport->y(),
-               _viewport->x(), _viewport->height());
+               _header->sizeHint().width(), _viewport->height());
        update_scroll();
 }
 
@@ -467,6 +484,9 @@ bool View::viewportEvent(QEvent *e)
        case QEvent::MouseButtonDblClick:
        case QEvent::MouseMove:
        case QEvent::Wheel:
+       case QEvent::TouchBegin:
+       case QEvent::TouchUpdate:
+       case QEvent::TouchEnd:
                return false;
 
        default:
@@ -545,5 +565,12 @@ void View::on_geometry_updated()
        update_layout();
 }
 
+void View::on_hover_point_changed()
+{
+       const vector< shared_ptr<Trace> > traces(get_traces());
+       for (shared_ptr<Trace> t : traces)
+               t->hover_point_changed();
+}
+
 } // namespace view
 } // namespace pv