mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-08-04 22:15:42 +08:00
8ecdd75cf4
version: sunnypilot v2026.003.000 (dev)
date: 2026-08-04T01:06:20
master commit: 77f848ceac
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());
|
|
}
|