X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Ftrace.cpp;h=8511f7507cdec68e759b9c32d5af33e8c958cccc;hp=8c450a088604e543a2b1f41e421011e0e3d719db;hb=119c5c232ef47e92ef6a5cc9f8b7c4c31dc2f387;hpb=9e773fecf2d4ab8f2fc6e1cc880b9102c22ec228 diff --git a/pv/views/trace/trace.cpp b/pv/views/trace/trace.cpp index 8c450a0..8511f75 100644 --- a/pv/views/trace/trace.cpp +++ b/pv/views/trace/trace.cpp @@ -78,6 +78,26 @@ shared_ptr Trace::base() const return base_; } +bool Trace::is_selectable(QPoint pos) const +{ + // True if the header was clicked, false if the trace area was clicked + const View *view = owner_->view(); + assert(view); + + return (pos.x() <= view->header_width()); +} + +bool Trace::is_draggable(QPoint pos) const +{ + // While the header label that belongs to this trace is draggable, + // the trace itself shall not be. Hence we return true if the header + // was clicked and false if the trace area was clicked + const View *view = owner_->view(); + assert(view); + + return (pos.x() <= view->header_width()); +} + void Trace::set_segment_display_mode(SegmentDisplayMode mode) { segment_display_mode_ = mode; @@ -189,10 +209,16 @@ QRectF Trace::label_rect(const QRectF &rect) const QRectF Trace::hit_box_rect(const ViewItemPaintParams &pp) const { + // This one is only for the trace itself, excluding the header area + const View *view = owner_->view(); + assert(view); + pair extents = v_extents(); const int top = pp.top() + get_visual_y() + extents.first; const int height = extents.second - extents.first; - return QRectF(pp.left(), top, pp.width(), height); + + return QRectF(pp.left() + view->header_width(), top, + pp.width() - view->header_width(), height); } void Trace::set_current_segment(const int segment)