]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/view.cpp
clang-tidy and clazy proposals
[pulseview.git] / pv / views / trace / view.cpp
index d2e9006075d698f1af96b9ba8a77aa27df02d96f..7a68c6e93408c113ae58c6d7876a49b2883b8a50 100644 (file)
@@ -307,7 +307,7 @@ shared_ptr<Signal> View::get_signal_by_signalbase(shared_ptr<data::SignalBase> b
 {
        shared_ptr<Signal> ret_val;
 
-       for (const shared_ptr<Signal> s : signals_)
+       for (const shared_ptr<Signal>& s : signals_)
                if (s->base() == base) {
                        ret_val = s;
                        break;
@@ -394,6 +394,11 @@ const Viewport* View::viewport() const
        return viewport_;
 }
 
+QAbstractScrollArea* View::scrollarea() const
+{
+       return scrollarea_;
+}
+
 const Ruler* View::ruler() const
 {
        return ruler_;
@@ -1382,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)
@@ -1399,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<shared_ptr<TraceTreeItem>> trace_tree_items(
+                               list_by_type<TraceTreeItem>());
+                       for (const shared_ptr<TraceTreeItem>& r : trace_tree_items)
+                               r->mouse_left_press_event(mouse_event);
+               }
        } else if (type == QEvent::Leave) {
                hover_point_ = QPoint(-1, -1);
                update_hover_point();