You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							131 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
	
	
							131 lines
						
					
					
						
							2.8 KiB
						
					
					
				| #pragma once
 | |
| 
 | |
| #include <QImage>
 | |
| #include <QMouseEvent>
 | |
| #include <QPushButton>
 | |
| #include <QStackedWidget>
 | |
| #include <QWidget>
 | |
| 
 | |
| #include "selfdrive/common/params.h"
 | |
| #include "selfdrive/ui/qt/qt_window.h"
 | |
| 
 | |
| class TrainingGuide : public QFrame {
 | |
|   Q_OBJECT
 | |
| 
 | |
| public:
 | |
|   explicit TrainingGuide(QWidget *parent = 0);
 | |
| 
 | |
| private:
 | |
|   void showEvent(QShowEvent *event) override;
 | |
|   void paintEvent(QPaintEvent *event) override;
 | |
|   void mouseReleaseEvent(QMouseEvent* e) override;
 | |
| 
 | |
|   QImage image;
 | |
|   int currentIndex = 0;
 | |
| 
 | |
|   // Bounding boxes for each training guide step
 | |
|   const QRect continueBtnStandard = {1610, 0, 310, 1080};
 | |
|   QVector<QRect> boundingRectStandard {
 | |
|     QRect(650, 710, 720, 190),
 | |
|     continueBtnStandard,
 | |
|     continueBtnStandard,
 | |
|     QRect(1442, 565, 230, 310),
 | |
|     QRect(1515, 562, 133, 60),
 | |
|     continueBtnStandard,
 | |
|     QRect(1580, 630, 215, 130),
 | |
|     QRect(1210, 0, 485, 590),
 | |
|     QRect(1460, 400, 375, 210),
 | |
|     QRect(166, 842, 1019, 148),
 | |
|     QRect(1460, 210, 300, 310),
 | |
|     continueBtnStandard,
 | |
|     QRect(1375, 80, 545, 1000),
 | |
|     continueBtnStandard,
 | |
|     QRect(1610, 130, 280, 800),
 | |
|     QRect(1385, 485, 400, 270),
 | |
|     continueBtnStandard,
 | |
|     continueBtnStandard,
 | |
|     QRect(1036, 769, 718, 189),
 | |
|     QRect(201, 769, 718, 189),
 | |
|   };
 | |
| 
 | |
|   const QRect continueBtnWide = {1850, 0, 310, 1080};
 | |
|   QVector<QRect> boundingRectWide {
 | |
|     QRect(654, 721, 718, 189),
 | |
|     continueBtnWide,
 | |
|     continueBtnWide,
 | |
|     QRect(1690, 570, 165, 300),
 | |
|     QRect(1690, 560, 133, 60),
 | |
|     continueBtnWide,
 | |
|     QRect(1820, 630, 180, 155),
 | |
|     QRect(1360, 0, 460, 620),
 | |
|     QRect(1570, 400, 375, 215),
 | |
|     QRect(167, 842, 1018, 148),
 | |
|     QRect(1610, 210, 295, 310),
 | |
|     continueBtnWide,
 | |
|     QRect(1555, 90, 610, 990),
 | |
|     continueBtnWide,
 | |
|     QRect(1600, 140, 280, 790),
 | |
|     QRect(1385, 490, 750, 270),
 | |
|     continueBtnWide,
 | |
|     continueBtnWide,
 | |
|     QRect(1138, 755, 718, 189),
 | |
|     QRect(303, 755, 718, 189),
 | |
|   };
 | |
| 
 | |
|   QString img_path;
 | |
|   QVector<QRect> boundingRect;
 | |
| 
 | |
| signals:
 | |
|   void completedTraining();
 | |
| };
 | |
| 
 | |
| 
 | |
| class TermsPage : public QFrame {
 | |
|   Q_OBJECT
 | |
| 
 | |
| public:
 | |
|   explicit TermsPage(QWidget *parent = 0) : QFrame(parent) {};
 | |
| 
 | |
| public slots:
 | |
|   void enableAccept();
 | |
| 
 | |
| private:
 | |
|   void showEvent(QShowEvent *event) override;
 | |
| 
 | |
|   QPushButton *accept_btn;
 | |
| 
 | |
| signals:
 | |
|   void acceptedTerms();
 | |
|   void declinedTerms();
 | |
| };
 | |
| 
 | |
| class DeclinePage : public QFrame {
 | |
|   Q_OBJECT
 | |
| 
 | |
| public:
 | |
|   explicit DeclinePage(QWidget *parent = 0) : QFrame(parent) {};
 | |
| 
 | |
| private:
 | |
|   void showEvent(QShowEvent *event) override;
 | |
| 
 | |
| signals:
 | |
|   void getBack();
 | |
| };
 | |
| 
 | |
| class OnboardingWindow : public QStackedWidget {
 | |
|   Q_OBJECT
 | |
| 
 | |
| public:
 | |
|   explicit OnboardingWindow(QWidget *parent = 0);
 | |
|   inline void showTrainingGuide() { setCurrentIndex(1); }
 | |
|   inline bool completed() const { return accepted_terms && training_done; }
 | |
| 
 | |
| private:
 | |
|   void updateActiveScreen();
 | |
| 
 | |
|   Params params;
 | |
|   bool accepted_terms = false, training_done = false;
 | |
| 
 | |
| signals:
 | |
|   void onboardingDone();
 | |
| };
 | |
| 
 |