#include "tools/cabana/utils/elidedlabel.h" #include #include ElidedLabel::ElidedLabel(QWidget *parent) : ElidedLabel({}, parent) {} ElidedLabel::ElidedLabel(const QString &text, QWidget *parent) : QLabel(text.trimmed(), parent) { setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); setMinimumWidth(1); } void ElidedLabel::resizeEvent(QResizeEvent* event) { QLabel::resizeEvent(event); lastText_ = elidedText_ = ""; } void ElidedLabel::paintEvent(QPaintEvent *event) { const QString curText = text(); if (curText != lastText_) { elidedText_ = fontMetrics().elidedText(curText, Qt::ElideRight, contentsRect().width()); lastText_ = curText; } QPainter painter(this); drawFrame(&painter); QStyleOption opt; opt.initFrom(this); style()->drawItemText(&painter, contentsRect(), alignment(), opt.palette, isEnabled(), elidedText_, foregroundRole()); }