]> sigrok.org Git - pulseview.git/blobdiff - pv/view/tracegroup.cpp
RowItem: Derrive from std::enable_shared_from_this
[pulseview.git] / pv / view / tracegroup.cpp
index 2c49ae430642ba965f634fc1cc1c36355eba4350..9d0465fc3c863421f69bec5eaf5740b7629e83f2 100644 (file)
@@ -29,6 +29,9 @@ using std::shared_ptr;
 namespace pv {
 namespace view {
 
+const int TraceGroup::Padding = 8;
+const int TraceGroup::Width = 12;
+
 TraceGroup::~TraceGroup()
 {
        _owner = nullptr;
@@ -72,10 +75,15 @@ void TraceGroup::paint_label(QPainter &p, int right, bool hover)
        (void)hover;
 }
 
-QRectF TraceGroup::label_rect(int right)
+QRectF TraceGroup::label_rect(int right) const
 {
-       (void)right;
-       return QRectF();
+       QRectF rect;
+       for (const shared_ptr<RowItem> r : child_items())
+               if (r)
+                       rect = rect.united(r->label_rect(right));
+
+       return QRectF(rect.x() - Width - Padding, rect.y(),
+               Width, rect.height());
 }
 
 bool TraceGroup::pt_in_label_rect(int left, int right, const QPoint &point)