@ -8,6 +8,12 @@ MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { 
			
		
	
		
		
			
				
					
					  main_layout  =  new  QStackedLayout ( this ) ;    main_layout  =  new  QStackedLayout ( this ) ;   
			
		
	
		
		
			
				
					
					  main_layout - > setMargin ( 0 ) ;    main_layout - > setMargin ( 0 ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  onboardingWindow  =  new  OnboardingWindow ( this ) ;   
			
		
	
		
		
			
				
					
					  main_layout - > addWidget ( onboardingWindow ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( onboardingWindow ,  & OnboardingWindow : : onboardingDone ,  [ = ] ( )  {   
			
		
	
		
		
			
				
					
					    main_layout - > setCurrentWidget ( homeWindow ) ;   
			
		
	
		
		
			
				
					
					  } ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  homeWindow  =  new  HomeWindow ( this ) ;    homeWindow  =  new  HomeWindow ( this ) ;   
			
		
	
		
		
			
				
					
					  main_layout - > addWidget ( homeWindow ) ;    main_layout - > addWidget ( homeWindow ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( homeWindow ,  & HomeWindow : : openSettings ,  this ,  & MainWindow : : openSettings ) ;    QObject : : connect ( homeWindow ,  & HomeWindow : : openSettings ,  this ,  & MainWindow : : openSettings ) ;   
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -21,26 +27,25 @@ MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { 
			
		
	
		
		
			
				
					
					  main_layout - > addWidget ( settingsWindow ) ;    main_layout - > addWidget ( settingsWindow ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( settingsWindow ,  & SettingsWindow : : closeSettings ,  this ,  & MainWindow : : closeSettings ) ;    QObject : : connect ( settingsWindow ,  & SettingsWindow : : closeSettings ,  this ,  & MainWindow : : closeSettings ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( & qs ,  & QUIState : : offroadTransition ,  settingsWindow ,  & SettingsWindow : : offroadTransition ) ;    QObject : : connect ( & qs ,  & QUIState : : offroadTransition ,  settingsWindow ,  & SettingsWindow : : offroadTransition ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( settingsWindow ,  & SettingsWindow : : reviewTrainingGuide ,  this ,  & MainWindow : : reviewTrainingGuide ) ;    QObject : : connect ( settingsWindow ,  & SettingsWindow : : reviewTrainingGuide ,  [ = ] ( )  {   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    main_layout - > setCurrentWidget ( onboardingWindow ) ;   
			
		
	
		
		
			
				
					
					  } ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( settingsWindow ,  & SettingsWindow : : showDriverView ,  [ = ]  {    QObject : : connect ( settingsWindow ,  & SettingsWindow : : showDriverView ,  [ = ]  {   
			
		
	
		
		
			
				
					
					    homeWindow - > showDriverView ( true ) ;      homeWindow - > showDriverView ( true ) ;   
			
		
	
		
		
			
				
					
					  } ) ;    } ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  onboardingWindow  =  new  OnboardingWindow ( this ) ;   
			
		
	
		
		
			
				
					
					  onboardingDone  =  onboardingWindow - > isOnboardingDone ( ) ;   
			
		
	
		
		
			
				
					
					  main_layout - > addWidget ( onboardingWindow ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  main_layout - > setCurrentWidget ( onboardingWindow ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( onboardingWindow ,  & OnboardingWindow : : onboardingDone ,  [ = ] ( )  {   
			
		
	
		
		
			
				
					
					    onboardingDone  =  true ;   
			
		
	
		
		
			
				
					
					    closeSettings ( ) ;   
			
		
	
		
		
			
				
					
					  } ) ;   
			
		
	
		
		
			
				
					
					  onboardingWindow - > updateActiveScreen ( ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  device . setAwake ( true ,  true ) ;    device . setAwake ( true ,  true ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( & qs ,  & QUIState : : uiUpdate ,  & device ,  & Device : : update ) ;    QObject : : connect ( & qs ,  & QUIState : : uiUpdate ,  & device ,  & Device : : update ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( & qs ,  & QUIState : : offroadTransition ,  this ,  & MainWindow : : offroadTransition ) ;    QObject : : connect ( & qs ,  & QUIState : : offroadTransition ,  [ = ] ( bool  offroad )  {   
			
				
				
			
		
	
		
		
			
				
					
					  QObject : : connect ( & device ,  & Device : : displayPowerChanged ,  this ,  & MainWindow : : closeSettings ) ;      if  ( ! offroad )  {   
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					      closeSettings ( ) ;   
			
		
	
		
		
			
				
					
					    }   
			
		
	
		
		
			
				
					
					  } ) ;   
			
		
	
		
		
			
				
					
					  QObject : : connect ( & device ,  & Device : : displayPowerChanged ,  [ = ] ( )  {   
			
		
	
		
		
			
				
					
					     if ( main_layout - > currentWidget ( )  ! =  onboardingWindow )  {   
			
		
	
		
		
			
				
					
					       closeSettings ( ) ;   
			
		
	
		
		
			
				
					
					     }   
			
		
	
		
		
			
				
					
					  } ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  // load fonts
    // load fonts
   
			
		
	
		
		
			
				
					
					  QFontDatabase : : addApplicationFont ( " ../assets/fonts/opensans_regular.ttf " ) ;    QFontDatabase : : addApplicationFont ( " ../assets/fonts/opensans_regular.ttf " ) ;   
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -56,27 +61,13 @@ MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { 
			
		
	
		
		
			
				
					
					  ) " );    ) " );   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  MainWindow : : offroadTransition ( bool  offroad )  {  
			
		
	
		
		
			
				
					
					  if ( ! offroad )  {   
			
		
	
		
		
			
				
					
					    closeSettings ( ) ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  MainWindow : : openSettings ( )  { void  MainWindow : : openSettings ( )  {  
			
		
	
		
		
			
				
					
					  main_layout - > setCurrentWidget ( settingsWindow ) ;    main_layout - > setCurrentWidget ( settingsWindow ) ;   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  MainWindow : : closeSettings ( )  { void  MainWindow : : closeSettings ( )  {  
			
		
	
		
		
			
				
					
					  if ( onboardingDone )  {   
			
		
	
		
		
			
				
					
					  main_layout - > setCurrentWidget ( homeWindow ) ;    main_layout - > setCurrentWidget ( homeWindow ) ;   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  MainWindow : : reviewTrainingGuide ( )  {  
			
		
	
		
		
			
				
					
					  onboardingDone  =  false ;   
			
		
	
		
		
			
				
					
					  main_layout - > setCurrentWidget ( onboardingWindow ) ;   
			
		
	
		
		
			
				
					
					  onboardingWindow - > updateActiveScreen ( ) ;   
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					bool  MainWindow : : eventFilter ( QObject  * obj ,  QEvent  * event )  { bool  MainWindow : : eventFilter ( QObject  * obj ,  QEvent  * event )  {  
			
		
	
		
		
			
				
					
					  // wake screen on tap
    // wake screen on tap