Fix Terms and Training guide skip when the screen turns off (#20942)
parent
679919ab1f
commit
553e7d1cce
|
@ -107,8 +107,7 @@ void TermsPage::enableAccept(){
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnboardingWindow::updateActiveScreen() {
|
void OnboardingWindow::updateActiveScreen() {
|
||||||
bool accepted_terms = params.get("HasAcceptedTerms", false).compare(current_terms_version) == 0;
|
updateOnboardingStatus();
|
||||||
bool training_done = params.get("CompletedTrainingVersion", false).compare(current_training_version) == 0;
|
|
||||||
|
|
||||||
if (!accepted_terms) {
|
if (!accepted_terms) {
|
||||||
setCurrentIndex(0);
|
setCurrentIndex(0);
|
||||||
|
@ -157,3 +156,13 @@ OnboardingWindow::OnboardingWindow(QWidget *parent) : QStackedWidget(parent) {
|
||||||
|
|
||||||
updateActiveScreen();
|
updateActiveScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnboardingWindow::updateOnboardingStatus() {
|
||||||
|
accepted_terms = params.get("HasAcceptedTerms", false).compare(current_terms_version) == 0;
|
||||||
|
training_done = params.get("CompletedTrainingVersion", false).compare(current_training_version) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OnboardingWindow::isOnboardingDone() {
|
||||||
|
updateOnboardingStatus();
|
||||||
|
return accepted_terms && training_done;
|
||||||
|
}
|
||||||
|
|
|
@ -77,11 +77,15 @@ class OnboardingWindow : public QStackedWidget {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit OnboardingWindow(QWidget *parent = 0);
|
explicit OnboardingWindow(QWidget *parent = 0);
|
||||||
|
bool isOnboardingDone();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Params params;
|
Params params;
|
||||||
std::string current_terms_version;
|
std::string current_terms_version;
|
||||||
std::string current_training_version;
|
std::string current_training_version;
|
||||||
|
bool accepted_terms = false;
|
||||||
|
bool training_done = false;
|
||||||
|
void updateOnboardingStatus();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void onboardingDone();
|
void onboardingDone();
|
||||||
|
|
|
@ -22,10 +22,14 @@ MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {
|
||||||
QObject::connect(settingsWindow, &SettingsWindow::reviewTrainingGuide, this, &MainWindow::reviewTrainingGuide);
|
QObject::connect(settingsWindow, &SettingsWindow::reviewTrainingGuide, this, &MainWindow::reviewTrainingGuide);
|
||||||
|
|
||||||
onboardingWindow = new OnboardingWindow(this);
|
onboardingWindow = new OnboardingWindow(this);
|
||||||
|
onboardingDone = onboardingWindow->isOnboardingDone();
|
||||||
main_layout->addWidget(onboardingWindow);
|
main_layout->addWidget(onboardingWindow);
|
||||||
|
|
||||||
main_layout->setCurrentWidget(onboardingWindow);
|
main_layout->setCurrentWidget(onboardingWindow);
|
||||||
QObject::connect(onboardingWindow, &OnboardingWindow::onboardingDone, this, &MainWindow::closeSettings);
|
QObject::connect(onboardingWindow, &OnboardingWindow::onboardingDone, [=](){
|
||||||
|
onboardingDone = true;
|
||||||
|
closeSettings();
|
||||||
|
});
|
||||||
onboardingWindow->updateActiveScreen();
|
onboardingWindow->updateActiveScreen();
|
||||||
|
|
||||||
device.setAwake(true, true);
|
device.setAwake(true, true);
|
||||||
|
@ -59,10 +63,13 @@ void MainWindow::openSettings() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::closeSettings() {
|
void MainWindow::closeSettings() {
|
||||||
main_layout->setCurrentWidget(homeWindow);
|
if(onboardingDone) {
|
||||||
|
main_layout->setCurrentWidget(homeWindow);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::reviewTrainingGuide() {
|
void MainWindow::reviewTrainingGuide() {
|
||||||
|
onboardingDone = false;
|
||||||
main_layout->setCurrentWidget(onboardingWindow);
|
main_layout->setCurrentWidget(onboardingWindow);
|
||||||
onboardingWindow->updateActiveScreen();
|
onboardingWindow->updateActiveScreen();
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ private:
|
||||||
HomeWindow *homeWindow;
|
HomeWindow *homeWindow;
|
||||||
SettingsWindow *settingsWindow;
|
SettingsWindow *settingsWindow;
|
||||||
OnboardingWindow *onboardingWindow;
|
OnboardingWindow *onboardingWindow;
|
||||||
|
bool onboardingDone = false;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void offroadTransition(bool offroad);
|
void offroadTransition(bool offroad);
|
||||||
|
|
Loading…
Reference in New Issue