|  |  | @ -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()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |