From 3e89cf5db8806db3da14fa25e08ddc026efd1c87 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Fri, 24 Feb 2023 12:02:46 +0800 Subject: [PATCH] cabana: right align signal values & fixed text overflow (#27444) right align the signal values old-commit-hash: 608ac253df5295187c6c7289b5b41a983482123e --- tools/cabana/signaledit.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/cabana/signaledit.cc b/tools/cabana/signaledit.cc index 5fcfc116c1..d5cd4ae825 100644 --- a/tools/cabana/signaledit.cc +++ b/tools/cabana/signaledit.cc @@ -338,6 +338,15 @@ void SignalItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op text = painter->fontMetrics().elidedText(text, Qt::ElideRight, text_rect.width()); painter->drawText(text_rect, option.displayAlignment, text); painter->restore(); + } else if (index.column() == 1 && item && item->type == SignalModel::Item::Sig) { + // draw signal value + if (option.state & QStyle::State_Selected) { + painter->fillRect(option.rect, option.palette.highlight()); + } + painter->setPen((option.state & QStyle::State_Selected ? option.palette.highlightedText() : option.palette.text()).color()); + QRect rc = option.rect.adjusted(0, 0, -70, 0); + auto text = painter->fontMetrics().elidedText(index.data(Qt::DisplayRole).toString(), Qt::ElideRight, rc.width()); + painter->drawText(rc, Qt::AlignRight | Qt::AlignVCenter, text); } else { QStyledItemDelegate::paint(painter, option, index); }