3bd5475499
version: sunnypilot v2026.002.000 (staging) date: 2026-06-05T03:53:22 master commit: 46b9253729193e47a8be99154bae41c35359a373
30 lines
919 B
C++
30 lines
919 B
C++
#include "tools/cabana/utils/elidedlabel.h"
|
|
#include <QPainter>
|
|
#include <QStyleOption>
|
|
|
|
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());
|
|
}
|