|  |  |  | @ -16,15 +16,19 @@ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | TrackWidget::TrackWidget(QWidget *parent) : QWidget(parent) { | 
			
		
	
		
			
				
					|  |  |  |  |   setFixedSize(spinner_size); | 
			
		
	
		
			
				
					|  |  |  |  |   setAutoFillBackground(false); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   comma_img = QPixmap("../assets/img_spinner_comma.png").scaled(spinner_size, Qt::KeepAspectRatio, Qt::SmoothTransformation); | 
			
		
	
		
			
				
					|  |  |  |  |   setAutoFillBackground(true); | 
			
		
	
		
			
				
					|  |  |  |  |   setPalette(Qt::black); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   // pre-compute all the track imgs. make this a gif instead?
 | 
			
		
	
		
			
				
					|  |  |  |  |   QTransform transform; | 
			
		
	
		
			
				
					|  |  |  |  |   QPixmap comma_img = QPixmap("../assets/img_spinner_comma.png").scaled(spinner_size, Qt::KeepAspectRatio, Qt::SmoothTransformation); | 
			
		
	
		
			
				
					|  |  |  |  |   QTransform transform(1, 0, 0, 1, width() / 2, height() / 2); | 
			
		
	
		
			
				
					|  |  |  |  |   QPixmap track_img = QPixmap("../assets/img_spinner_track.png").scaled(spinner_size, Qt::KeepAspectRatio, Qt::SmoothTransformation); | 
			
		
	
		
			
				
					|  |  |  |  |   for (auto &img : track_imgs) { | 
			
		
	
		
			
				
					|  |  |  |  |     img = track_img.transformed(transform.rotate(360/spinner_fps), Qt::SmoothTransformation); | 
			
		
	
		
			
				
					|  |  |  |  |   for (QPixmap &img : track_imgs) { | 
			
		
	
		
			
				
					|  |  |  |  |     img = comma_img; | 
			
		
	
		
			
				
					|  |  |  |  |     QPainter p(&img); | 
			
		
	
		
			
				
					|  |  |  |  |     p.setRenderHint(QPainter::SmoothPixmapTransform); | 
			
		
	
		
			
				
					|  |  |  |  |     p.setTransform(transform.rotate(360 / spinner_fps)); | 
			
		
	
		
			
				
					|  |  |  |  |     p.drawPixmap(-width() / 2, -height() / 2, track_img); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   m_anim.setDuration(1000); | 
			
		
	
	
		
			
				
					|  |  |  | @ -37,18 +41,7 @@ TrackWidget::TrackWidget(QWidget *parent) : QWidget(parent) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void TrackWidget::paintEvent(QPaintEvent *event) { | 
			
		
	
		
			
				
					|  |  |  |  |   QPainter painter(this); | 
			
		
	
		
			
				
					|  |  |  |  |   QRect bg(0, 0, painter.device()->width(), painter.device()->height()); | 
			
		
	
		
			
				
					|  |  |  |  |   QBrush bgBrush("#000000"); | 
			
		
	
		
			
				
					|  |  |  |  |   painter.fillRect(bg, bgBrush); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   int track_idx = m_anim.currentValue().toInt(); | 
			
		
	
		
			
				
					|  |  |  |  |   QRect rect(track_imgs[track_idx].rect()); | 
			
		
	
		
			
				
					|  |  |  |  |   rect.moveCenter(bg.center()); | 
			
		
	
		
			
				
					|  |  |  |  |   painter.drawPixmap(rect.topLeft(), track_imgs[track_idx]); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   rect = comma_img.rect(); | 
			
		
	
		
			
				
					|  |  |  |  |   rect.moveCenter(bg.center()); | 
			
		
	
		
			
				
					|  |  |  |  |   painter.drawPixmap(rect.topLeft(), comma_img); | 
			
		
	
		
			
				
					|  |  |  |  |   painter.drawPixmap(0, 0, track_imgs[m_anim.currentValue().toInt()]); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | // Spinner
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -75,12 +68,10 @@ Spinner::Spinner(QWidget *parent) : QWidget(parent) { | 
			
		
	
		
			
				
					|  |  |  |  |     Spinner { | 
			
		
	
		
			
				
					|  |  |  |  |       background-color: black; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     * { | 
			
		
	
		
			
				
					|  |  |  |  |       background-color: transparent; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     QLabel { | 
			
		
	
		
			
				
					|  |  |  |  |       color: white; | 
			
		
	
		
			
				
					|  |  |  |  |       font-size: 80px; | 
			
		
	
		
			
				
					|  |  |  |  |       background-color: transparent; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     QProgressBar { | 
			
		
	
		
			
				
					|  |  |  |  |       background-color: #373737; | 
			
		
	
	
		
			
				
					|  |  |  | @ -114,11 +105,7 @@ void Spinner::update(int n) { | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | int main(int argc, char *argv[]) { | 
			
		
	
		
			
				
					|  |  |  |  |   setQtSurfaceFormat(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   Hardware::set_display_power(true); | 
			
		
	
		
			
				
					|  |  |  |  |   Hardware::set_brightness(65); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   initApp(); | 
			
		
	
		
			
				
					|  |  |  |  |   QApplication a(argc, argv); | 
			
		
	
		
			
				
					|  |  |  |  |   Spinner spinner; | 
			
		
	
		
			
				
					|  |  |  |  |   setMainWindow(&spinner); | 
			
		
	
	
		
			
				
					|  |  |  | 
 |