X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fview.cpp;h=65b06aea82cba76279f185f40b4af933578a18dd;hp=024e3bf48d665b0043252551c72ef2202da80de5;hb=cbd9ec7f751a5403d1465e966ccecd31b7086e8a;hpb=68e0a53ee49c6a58fe1fadd8b9dc12572cc0dbd0 diff --git a/pv/views/trace/view.cpp b/pv/views/trace/view.cpp index 024e3bf4..65b06aea 100644 --- a/pv/views/trace/view.cpp +++ b/pv/views/trace/view.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -874,6 +875,11 @@ void View::restack_all_trace_tree_items() i->animate_to_layout_v_offset(); } +int View::header_width() const +{ + return header_->extended_size_hint().width(); +} + void View::on_setting_changed(const QString &key, const QVariant &value) { if (key == GlobalSettings::Key_View_TriggerIsZeroTime) @@ -1086,12 +1092,11 @@ void View::set_scroll_default() void View::determine_if_header_was_shrunk() { const int header_pane_width = splitter_->sizes().front(); - const int header_width = header_->extended_size_hint().width(); // Allow for a slight margin of error so that we also accept // slight differences when e.g. a label name change increased // the overall width - header_was_shrunk_ = (header_pane_width < (header_width - 10)); + header_was_shrunk_ = (header_pane_width < (header_width() - 10)); } void View::resize_header_to_fit() @@ -1251,6 +1256,19 @@ bool View::eventFilter(QObject *object, QEvent *event) return QObject::eventFilter(object, event); } +void View::contextMenuEvent(QContextMenuEvent *event) +{ + QPoint pos = event->pos() - QPoint(0, ruler_->sizeHint().height()); + + const shared_ptr r = viewport_->get_mouse_over_item(pos); + if (!r) + return; + + QMenu *menu = r->create_view_context_menu(this, pos); + if (menu) + menu->exec(event->globalPos()); +} + void View::resizeEvent(QResizeEvent* event) { // Only adjust the top margin if we shrunk vertically