|
|
@ -1,5 +1,8 @@ |
|
|
|
#include "selfdrive/ui/qt/widgets/controls.h" |
|
|
|
#include "selfdrive/ui/qt/widgets/controls.h" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include <QPainter> |
|
|
|
|
|
|
|
#include <QStyleOption> |
|
|
|
|
|
|
|
|
|
|
|
QFrame *horizontal_line(QWidget *parent) { |
|
|
|
QFrame *horizontal_line(QWidget *parent) { |
|
|
|
QFrame *line = new QFrame(parent); |
|
|
|
QFrame *line = new QFrame(parent); |
|
|
|
line->setFrameShape(QFrame::StyledPanel); |
|
|
|
line->setFrameShape(QFrame::StyledPanel); |
|
|
@ -83,3 +86,31 @@ ButtonControl::ButtonControl(const QString &title, const QString &text, const QS |
|
|
|
QObject::connect(&btn, &QPushButton::released, this, &ButtonControl::released); |
|
|
|
QObject::connect(&btn, &QPushButton::released, this, &ButtonControl::released); |
|
|
|
hlayout->addWidget(&btn); |
|
|
|
hlayout->addWidget(&btn); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ElidedLabel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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()); |
|
|
|
|
|
|
|
} |
|
|
|