diff --git a/SConstruct b/SConstruct index ce02f50844..df15a65297 100644 --- a/SConstruct +++ b/SConstruct @@ -264,7 +264,7 @@ Export('envCython') # Qt build environment qt_env = env.Clone() -qt_modules = ["Widgets", "Gui", "Core", "Network", "Concurrent", "Multimedia"] +qt_modules = ["Widgets", "Gui", "Core", "Network", "Concurrent", "Multimedia", "Quick"] if arch != "aarch64": qt_modules += ["DBus"] @@ -307,6 +307,9 @@ qt_flags = [ "-DQT_NO_DEBUG", "-DQT_WIDGETS_LIB", "-DQT_GUI_LIB", + "-DQT_QUICK_LIB", + "-DQT_QUICKWIDGETS_LIB", + "-DQT_QML_LIB", "-DQT_CORE_LIB" ] qt_env['CXXFLAGS'] += qt_flags diff --git a/selfdrive/ui/qt/offroad/onboarding.cc b/selfdrive/ui/qt/offroad/onboarding.cc index 1f95eb0db6..ccc1d50f42 100644 --- a/selfdrive/ui/qt/offroad/onboarding.cc +++ b/selfdrive/ui/qt/offroad/onboarding.cc @@ -13,6 +13,9 @@ #include "home.hpp" #include "util.h" +#include +//#include + void TrainingGuide::mouseReleaseEvent(QMouseEvent *e) { int leftOffset = (geometry().width()-1620)/2; @@ -53,6 +56,13 @@ void TrainingGuide::paintEvent(QPaintEvent *event) { painter.drawImage(rect.topLeft(), image); } +QWidget* OnboardingWindow::terms_screen2() { + QQuickView *view = new QQuickView; + QWidget* container = QWidget::createWindowContainer(view, 0); + view->setSource(QUrl::fromLocalFile("qt/offroad/terms.qml")); + return container; +} + QWidget* OnboardingWindow::terms_screen() { QVBoxLayout *main_layout = new QVBoxLayout; @@ -142,7 +152,7 @@ OnboardingWindow::OnboardingWindow(QWidget *parent) : QStackedWidget(parent) { current_terms_version = params.get("TermsVersion", false); current_training_version = params.get("TrainingVersion", false); - addWidget(terms_screen()); + addWidget(terms_screen2()); TrainingGuide* tr = new TrainingGuide(this); connect(tr, &TrainingGuide::completedTraining, [=](){ diff --git a/selfdrive/ui/qt/offroad/onboarding.hpp b/selfdrive/ui/qt/offroad/onboarding.hpp index e307bb63a5..f09e096164 100644 --- a/selfdrive/ui/qt/offroad/onboarding.hpp +++ b/selfdrive/ui/qt/offroad/onboarding.hpp @@ -43,6 +43,7 @@ private: QTextEdit *terms_text; QWidget *terms_screen(); + QWidget *terms_screen2(); QWidget *training_screen(); signals: diff --git a/selfdrive/ui/qt/offroad/terms.qml b/selfdrive/ui/qt/offroad/terms.qml new file mode 100644 index 0000000000..328e1f060a --- /dev/null +++ b/selfdrive/ui/qt/offroad/terms.qml @@ -0,0 +1,27 @@ +import QtQuick 2.1 + +Rectangle { + id: rectangle + color: "red" + width: 200 + height: 200 + + Text { + id: text + text: "This is QML code.\n(Click to pause)" + font.pointSize: 14 + anchors.centerIn: parent + PropertyAnimation { + id: animation + target: text + property: "rotation" + from: 0; to: 360; duration: 5000 + loops: Animation.Infinite + } + } + MouseArea { + anchors.fill: parent + onClicked: animation.paused ? animation.resume() : animation.pause() + } + Component.onCompleted: animation.start() +}