]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/view.cpp
Allow for a context menu in the view area
[pulseview.git] / pv / views / trace / view.cpp
index 98fd46d2ad4684fb81051956c0995f579abc49d0..99e75bfdc9ec72de6281d86b3d922e626a5911a5 100644 (file)
@@ -38,6 +38,7 @@
 #include <QApplication>
 #include <QEvent>
 #include <QFontMetrics>
+#include <QMenu>
 #include <QMouseEvent>
 #include <QScrollBar>
 #include <QVBoxLayout>
@@ -1251,6 +1252,17 @@ bool View::eventFilter(QObject *object, QEvent *event)
        return QObject::eventFilter(object, event);
 }
 
+void View::contextMenuEvent(QContextMenuEvent *event)
+{
+       const shared_ptr<ViewItem> r = viewport_->get_mouse_over_item(event->pos());
+       if (!r)
+               return;
+
+       QMenu *menu = r->create_view_context_menu(this);
+       if (menu)
+               menu->exec(event->globalPos());
+}
+
 void View::resizeEvent(QResizeEvent* event)
 {
        // Only adjust the top margin if we shrunk vertically
@@ -1297,6 +1309,7 @@ void View::extents_changed(bool horz, bool vert)
                (horz ? TraceTreeItemHExtentsChanged : 0) |
                (vert ? TraceTreeItemVExtentsChanged : 0);
 
+       lazy_event_handler_.stop();
        lazy_event_handler_.start();
 }