| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2,6 +2,7 @@ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <QString> | 
					 | 
					 | 
					 | 
					#include <QString> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <QPushButton> | 
					 | 
					 | 
					 | 
					#include <QPushButton> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <QGridLayout> | 
					 | 
					 | 
					 | 
					#include <QGridLayout> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#include <QVBoxLayout> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "onboarding.hpp" | 
					 | 
					 | 
					 | 
					#include "onboarding.hpp" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "common/params.h" | 
					 | 
					 | 
					 | 
					#include "common/params.h" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -10,7 +11,6 @@ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					QLabel * title_label(QString text) { | 
					 | 
					 | 
					 | 
					QLabel * title_label(QString text) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QLabel *l = new QLabel(text); | 
					 | 
					 | 
					 | 
					  QLabel *l = new QLabel(text); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  l->setStyleSheet(R"(font-size: 100px;)"); | 
					 | 
					 | 
					 | 
					  l->setStyleSheet(R"(font-size: 100px;)"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  l->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  return l; | 
					 | 
					 | 
					 | 
					  return l; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -30,8 +30,7 @@ QWidget * OnboardingWindow::terms_screen() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    background-color: #292929; | 
					 | 
					 | 
					 | 
					    background-color: #292929; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  )"); | 
					 | 
					 | 
					 | 
					  )"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  main_layout->addWidget(terms, 1, 0, 1, -1); | 
					 | 
					 | 
					 | 
					  main_layout->addWidget(terms, 1, 0, 1, -1); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					  main_layout->setRowStretch(1, 1); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  main_layout->addWidget(new QPushButton("Decline"), 2, 0); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QPushButton *accept_btn = new QPushButton("Accept"); | 
					 | 
					 | 
					 | 
					  QPushButton *accept_btn = new QPushButton("Accept"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  main_layout->addWidget(accept_btn, 2, 1); | 
					 | 
					 | 
					 | 
					  main_layout->addWidget(accept_btn, 2, 1); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -40,6 +39,8 @@ QWidget * OnboardingWindow::terms_screen() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    updateActiveScreen(); | 
					 | 
					 | 
					 | 
					    updateActiveScreen(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }); | 
					 | 
					 | 
					 | 
					  }); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  main_layout->addWidget(new QPushButton("Decline"), 2, 0); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QWidget *widget = new QWidget; | 
					 | 
					 | 
					 | 
					  QWidget *widget = new QWidget; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  widget->setLayout(main_layout); | 
					 | 
					 | 
					 | 
					  widget->setLayout(main_layout); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  widget->setStyleSheet(R"( | 
					 | 
					 | 
					 | 
					  widget->setStyleSheet(R"( | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -56,14 +57,16 @@ QWidget * OnboardingWindow::terms_screen() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					QWidget * OnboardingWindow::training_screen() { | 
					 | 
					 | 
					 | 
					QWidget * OnboardingWindow::training_screen() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QGridLayout *main_layout = new QGridLayout(); | 
					 | 
					 | 
					 | 
					  QVBoxLayout *main_layout = new QVBoxLayout(); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  main_layout->setMargin(30); | 
					 | 
					 | 
					 | 
					  main_layout->setMargin(30); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  main_layout->setSpacing(30); | 
					 | 
					 | 
					 | 
					  main_layout->setSpacing(30); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  main_layout->addWidget(title_label("Training Guide"), 0, 0); | 
					 | 
					 | 
					 | 
					  main_layout->addWidget(title_label("Training Guide")); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  main_layout->addWidget(new QLabel(), 1); // just a spacer
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QPushButton *btn = new QPushButton("Continue"); | 
					 | 
					 | 
					 | 
					  QPushButton *btn = new QPushButton("Continue"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  main_layout->addWidget(btn, 1, 0); | 
					 | 
					 | 
					 | 
					  main_layout->addWidget(btn); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QObject::connect(btn, &QPushButton::released, [=]() { | 
					 | 
					 | 
					 | 
					  QObject::connect(btn, &QPushButton::released, [=]() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Params().write_db_value("CompletedTrainingVersion", LATEST_TRAINING_VERSION); | 
					 | 
					 | 
					 | 
					    Params().write_db_value("CompletedTrainingVersion", LATEST_TRAINING_VERSION); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    updateActiveScreen(); | 
					 | 
					 | 
					 | 
					    updateActiveScreen(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -81,24 +84,18 @@ void OnboardingWindow::updateActiveScreen() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  bool training_done = params.get("CompletedTrainingVersion", false).compare(LATEST_TRAINING_VERSION) == 0; | 
					 | 
					 | 
					 | 
					  bool training_done = params.get("CompletedTrainingVersion", false).compare(LATEST_TRAINING_VERSION) == 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (!accepted_terms) { | 
					 | 
					 | 
					 | 
					  if (!accepted_terms) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    swidget->setCurrentIndex(0); | 
					 | 
					 | 
					 | 
					    setCurrentIndex(0); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } else if (!training_done) { | 
					 | 
					 | 
					 | 
					  } else if (!training_done) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    swidget->setCurrentIndex(1); | 
					 | 
					 | 
					 | 
					    setCurrentIndex(1); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } else { | 
					 | 
					 | 
					 | 
					  } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    emit onboardingDone(); | 
					 | 
					 | 
					 | 
					    emit onboardingDone(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					OnboardingWindow::OnboardingWindow(QWidget *parent) : QWidget(parent) { | 
					 | 
					 | 
					 | 
					OnboardingWindow::OnboardingWindow(QWidget *parent) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QVBoxLayout * top_layout = new QVBoxLayout; | 
					 | 
					 | 
					 | 
					  addWidget(terms_screen()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					  addWidget(training_screen()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  swidget = new QStackedWidget(); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  swidget->addWidget(terms_screen()); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  swidget->addWidget(training_screen()); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  top_layout->addWidget(swidget); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  setLayout(top_layout); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  setStyleSheet(R"( | 
					 | 
					 | 
					 | 
					  setStyleSheet(R"( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    * { | 
					 | 
					 | 
					 | 
					    * { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      background-color: black; | 
					 | 
					 | 
					 | 
					      background-color: black; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |