diff --git a/selfdrive/ui/qt/offroad/onboarding.cc b/selfdrive/ui/qt/offroad/onboarding.cc index ccc1d50f42..7f79a4fab1 100644 --- a/selfdrive/ui/qt/offroad/onboarding.cc +++ b/selfdrive/ui/qt/offroad/onboarding.cc @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include @@ -14,8 +13,7 @@ #include "util.h" #include -//#include - +#include void TrainingGuide::mouseReleaseEvent(QMouseEvent *e) { int leftOffset = (geometry().width()-1620)/2; @@ -56,11 +54,65 @@ void TrainingGuide::paintEvent(QPaintEvent *event) { painter.drawImage(rect.topLeft(), image); } +void OnboardingWindow::accept_buttons(){ + /* + if(QQmlProperty::read(flick, "atYEnd").toBool()){ + accept_btn->setText("Accept"); + accept_btn->setEnabled(true); + } + return; + */ + printf("asdf\n"); + return; +} + QWidget* OnboardingWindow::terms_screen2() { + + QVBoxLayout *main_layout = new QVBoxLayout; + main_layout->setContentsMargins(20, 20, 20, 20); + main_layout->setSpacing(20); + + QQuickView *view = new QQuickView; - QWidget* container = QWidget::createWindowContainer(view, 0); + QWidget* text = QWidget::createWindowContainer(view, 0); view->setSource(QUrl::fromLocalFile("qt/offroad/terms.qml")); - return container; + + main_layout->addWidget(text); + + // TODO: add decline page + QHBoxLayout* buttons = new QHBoxLayout; + main_layout->addLayout(buttons); + + buttons->addWidget(new QPushButton("Decline")); + buttons->addSpacing(50); + + QPushButton *accept_btn = new QPushButton("Scroll to accept"); + accept_btn->setEnabled(false); + buttons->addWidget(accept_btn); + QObject::connect(accept_btn, &QPushButton::released, [=]() { + Params().write_db_value("HasAcceptedTerms", current_terms_version); + updateActiveScreen(); + }); + + QObject *obj = (QObject*)view->rootObject(); + //QObject *flick = obj->findChild("flickArea"); + + QObject::connect(obj, SIGNAL(qmlSignal(QVariant)), SLOT(accept_buttons())); + + QWidget *widget = new QWidget; + widget->setLayout(main_layout); + widget->setStyleSheet(R"( + * { + font-size: 50px; + } + QPushButton { + padding: 50px; + border-radius: 10px; + background-color: #292929; + } + )"); + + return widget; } diff --git a/selfdrive/ui/qt/offroad/onboarding.hpp b/selfdrive/ui/qt/offroad/onboarding.hpp index f09e096164..b7aa30ecbf 100644 --- a/selfdrive/ui/qt/offroad/onboarding.hpp +++ b/selfdrive/ui/qt/offroad/onboarding.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include "selfdrive/common/params.h" @@ -51,4 +52,5 @@ signals: public slots: void updateActiveScreen(); + void accept_buttons(); }; diff --git a/selfdrive/ui/qt/offroad/terms.qml b/selfdrive/ui/qt/offroad/terms.qml index 465f4da34a..7bee3d38b7 100644 --- a/selfdrive/ui/qt/offroad/terms.qml +++ b/selfdrive/ui/qt/offroad/terms.qml @@ -3,12 +3,13 @@ import QtQuick 2.7 Item { id: root width: 1920 - height: 1080 + height: 870 + signal qmlSignal(variant msg) Rectangle { color: "black" width: 1920 - height: 1080 + height: 870 } Flickable { @@ -19,11 +20,12 @@ Item { flickableDirection: Flickable.VerticalFlick clip: true + onMovementStarted: root.qmlSignal("Hello") + Text { // HTML like markup can also be used id: helpText width: 1920 - padding: 50 text: '