X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=inline;f=pv%2Fviews%2Ftrace%2Fview.cpp;h=7a68c6e93408c113ae58c6d7876a49b2883b8a50;hb=3fef0289310e825df71afcfae7b3adc4319c7f7f;hp=80322f9b3a4258db05e9b53a7fc4cb3549cf9e76;hpb=e77de61fbc19633c77cc196332ae79c26d9ca35d;p=pulseview.git diff --git a/pv/views/trace/view.cpp b/pv/views/trace/view.cpp index 80322f9b..7a68c6e9 100644 --- a/pv/views/trace/view.cpp +++ b/pv/views/trace/view.cpp @@ -303,9 +303,22 @@ unordered_set< shared_ptr > View::signals() const return signals_; } +shared_ptr View::get_signal_by_signalbase(shared_ptr base) const +{ + shared_ptr ret_val; + + for (const shared_ptr& s : signals_) + if (s->base() == base) { + ret_val = s; + break; + } + + return ret_val; +} + void View::clear_signals() { - ViewBase::clear_signalbases(); + ViewBase::clear_signals(); signals_.clear(); } @@ -381,6 +394,11 @@ const Viewport* View::viewport() const return viewport_; } +QAbstractScrollArea* View::scrollarea() const +{ + return scrollarea_; +} + const Ruler* View::ruler() const { return ruler_; @@ -1369,6 +1387,7 @@ void View::determine_time_unit() bool View::eventFilter(QObject *object, QEvent *event) { const QEvent::Type type = event->type(); + if (type == QEvent::MouseMove) { if (object) @@ -1386,6 +1405,15 @@ bool View::eventFilter(QObject *object, QEvent *event) update_hover_point(); + } else if (type == QEvent::MouseButtonPress) { + const QMouseEvent *const mouse_event = (QMouseEvent*)event; + if ((object == viewport_) && (mouse_event->button() & Qt::LeftButton)) { + // Send event to all trace tree items + const vector> trace_tree_items( + list_by_type()); + for (const shared_ptr& r : trace_tree_items) + r->mouse_left_press_event(mouse_event); + } } else if (type == QEvent::Leave) { hover_point_ = QPoint(-1, -1); update_hover_point();