should be done

pull/20439/head
iejMac 4 years ago
parent 17fe0ec6ae
commit 4749a9635f
  1. 40
      selfdrive/ui/qt/offroad/onboarding.cc
  2. 22
      selfdrive/ui/qt/offroad/onboarding.hpp
  3. 4
      selfdrive/ui/qt/offroad/terms.qml

@ -38,7 +38,7 @@ void TrainingGuide::mouseReleaseEvent(QMouseEvent *e) {
}
}
TrainingGuide::TrainingGuide(QWidget* parent) {
TrainingGuide::TrainingGuide(QWidget* parent) : QFrame(parent){
image.load("../assets/training/step0.jpg");
}
@ -54,21 +54,12 @@ void TrainingGuide::paintEvent(QPaintEvent *event) {
painter.drawImage(rect.topLeft(), image);
}
void OnboardingWindow::accept_buttons(){
if(flickable->property("atYEnd").toInt()){
accept_btn->setText("Accept");
accept_btn->setEnabled(true);
}
return;
}
QWidget* OnboardingWindow::terms_screen2() {
TermsPage::TermsPage(QWidget *parent) : QFrame(parent){
QVBoxLayout *main_layout = new QVBoxLayout;
main_layout->setContentsMargins(20, 20, 20, 20);
main_layout->setSpacing(20);
QQuickView *view = new QQuickView;
QWidget* text = QWidget::createWindowContainer(view, 0);
view->setSource(QUrl::fromLocalFile("qt/offroad/terms.qml"));
@ -86,18 +77,14 @@ QWidget* OnboardingWindow::terms_screen2() {
accept_btn->setEnabled(false);
buttons->addWidget(accept_btn);
QObject::connect(accept_btn, &QPushButton::released, [=]() {
Params().write_db_value("HasAcceptedTerms", current_terms_version);
updateActiveScreen();
emit acceptedTerms();
});
QObject *obj = (QObject*)view->rootObject();
flickable = obj->findChild<QObject*>("flickArea");
QObject::connect(obj, SIGNAL(qmlSignal(QVariant)), SLOT(accept_buttons()));
QObject::connect(obj, SIGNAL(qmlSignal(QVariant)), SLOT(enable_accept()));
QWidget *widget = new QWidget;
widget->setLayout(main_layout);
widget->setStyleSheet(R"(
setLayout(main_layout);
setStyleSheet(R"(
* {
font-size: 50px;
}
@ -107,10 +94,13 @@ QWidget* OnboardingWindow::terms_screen2() {
background-color: #292929;
}
)");
return widget;
}
void TermsPage::enable_accept(){
accept_btn->setText("Accept");
accept_btn->setEnabled(true);
return;
}
QWidget* OnboardingWindow::terms_screen() {
QVBoxLayout *main_layout = new QVBoxLayout;
@ -200,7 +190,13 @@ OnboardingWindow::OnboardingWindow(QWidget *parent) : QStackedWidget(parent) {
current_terms_version = params.get("TermsVersion", false);
current_training_version = params.get("TrainingVersion", false);
addWidget(terms_screen2());
TermsPage* terms = new TermsPage(this);
addWidget(terms);
connect(terms, &TermsPage::acceptedTerms, [=](){
Params().write_db_value("HasAcceptedTerms", current_terms_version);
updateActiveScreen();
});
TrainingGuide* tr = new TrainingGuide(this);
connect(tr, &TrainingGuide::completedTraining, [=](){

@ -31,6 +31,23 @@ signals:
void completedTraining();
};
class TermsPage : public QFrame {
Q_OBJECT
public:
explicit TermsPage(QWidget *parent = 0);
private:
QPushButton *accept_btn;
public slots:
void enable_accept();
signals:
void acceptedTerms();
};
class OnboardingWindow : public QStackedWidget {
Q_OBJECT
@ -42,10 +59,6 @@ private:
std::string current_terms_version;
std::string current_training_version;
//TODO: Remove this (access through .widget(index))
QPushButton *accept_btn;
QObject* flickable;
QTextEdit *terms_text;
QWidget *terms_screen();
QWidget *terms_screen2();
@ -56,5 +69,4 @@ signals:
public slots:
void updateActiveScreen();
void accept_buttons();
};

@ -1,4 +1,4 @@
import QtQuick 2.7
import QtQuick 2.0
Item {
id: root
@ -21,7 +21,7 @@ Item {
flickableDirection: Flickable.VerticalFlick
clip: true
onMovementEnded: root.qmlSignal("Hello")
onAtYEndChanged: root.qmlSignal("Hello")
Text {
// HTML like markup can also be used

Loading…
Cancel
Save