X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fheader.cpp;h=8377cb2cfc481e76d932b68c47e35cc14bd5edec;hb=8b4802fb79f2af703a8e140daf3f8aacb19644c9;hp=5e978a70252565cf47f4a3bb95712707a813842d;hpb=68b21a71797051fb48ed272bc2a6b4893bdbf517;p=pulseview.git diff --git a/pv/view/header.cpp b/pv/view/header.cpp index 5e978a7..8377cb2 100644 --- a/pv/view/header.cpp +++ b/pv/view/header.cpp @@ -108,6 +108,19 @@ void Header::clear_selection() update(); } +void Header::show_popup(const shared_ptr &item) +{ + using pv::widgets::Popup; + + Popup *const p = item->create_popup(&_view); + if (!p) + return; + + const QPoint pt(width() - BaselineOffset, item->get_y()); + p->set_position(mapToGlobal(pt), Popup::Right); + p->show(); +} + void Header::paintEvent(QPaintEvent*) { // The trace labels are not drawn with the arrows exactly on the @@ -187,8 +200,6 @@ void Header::mousePressEvent(QMouseEvent *event) void Header::mouseReleaseEvent(QMouseEvent *event) { - using pv::widgets::Popup; - assert(event); if (event->button() == Qt::LeftButton) { if (_dragging) @@ -197,15 +208,8 @@ void Header::mouseReleaseEvent(QMouseEvent *event) { const shared_ptr mouse_over_row_item = get_mouse_over_row_item(event->pos()); - if (mouse_over_row_item) { - const int w = width() - BaselineOffset; - Popup *const p = - mouse_over_row_item->create_popup(&_view); - p->set_position(mapToGlobal(QPoint(w, - mouse_over_row_item->get_y())), - Popup::Right); - p->show(); - } + if (mouse_over_row_item) + show_popup(mouse_over_row_item); } _dragging = false;