From d44651ee8c501be61099dc4cd40fa0467bc315a3 Mon Sep 17 00:00:00 2001 From: Comma Device Date: Sat, 20 Mar 2021 19:43:28 -0700 Subject: [PATCH] more prime widget cleanup --- selfdrive/ui/qt/widgets/setup.cc | 88 +++++++++++++++---------------- selfdrive/ui/qt/widgets/setup.hpp | 2 + 2 files changed, 44 insertions(+), 46 deletions(-) diff --git a/selfdrive/ui/qt/widgets/setup.cc b/selfdrive/ui/qt/widgets/setup.cc index fccfe0d206..143ca4f9dc 100644 --- a/selfdrive/ui/qt/widgets/setup.cc +++ b/selfdrive/ui/qt/widgets/setup.cc @@ -24,7 +24,7 @@ PairingQRWidget::PairingQRWidget(QWidget* parent) : QWidget(parent) { QTimer* timer = new QTimer(this); timer->start(30 * 1000); connect(timer, SIGNAL(timeout()), this, SLOT(refresh())); - refresh(); // Not waiting for the first refresh + refresh(); // don't wait for the first refresh } void PairingQRWidget::refresh(){ @@ -48,7 +48,7 @@ void PairingQRWidget::refresh(){ void PairingQRWidget::updateQrCode(QString text) { QrCode qr = QrCode::encodeText(text.toUtf8().data(), QrCode::Ecc::LOW); qint32 sz = qr.getSize(); - // We make the image larger so we can have a white border + // make the image larger so we can have a white border QImage im(sz + 2, sz + 2, QImage::Format_RGB32); QRgb black = qRgb(0, 0, 0); QRgb white = qRgb(255, 255, 255); @@ -71,32 +71,39 @@ void PairingQRWidget::updateQrCode(QString text) { PrimeUserWidget::PrimeUserWidget(QWidget* parent) : QWidget(parent) { mainLayout = new QVBoxLayout; + QLabel* commaPrime = new QLabel("COMMA PRIME"); - commaPrime->setStyleSheet(R"( - font-size: 60px; - )"); - mainLayout->addWidget(commaPrime); + mainLayout->addWidget(commaPrime, 0, Qt::AlignTop); - username = new QLabel(""); - mainLayout->addWidget(username); + username = new QLabel(); + mainLayout->addWidget(username, 0, Qt::AlignTop); - mainLayout->addSpacing(200); + mainLayout->addSpacing(100); QLabel* commaPoints = new QLabel("COMMA POINTS"); commaPoints->setStyleSheet(R"( - font-size: 60px; color: #b8b8b8; )"); - mainLayout->addWidget(commaPoints); + mainLayout->addWidget(commaPoints, 0, Qt::AlignTop); - points = new QLabel(""); - mainLayout->addWidget(points); + points = new QLabel(); + mainLayout->addWidget(points, 0, Qt::AlignTop); setLayout(mainLayout); + setStyleSheet(R"( + QLabel { + font-size: 60px; + font-weight: 500; + } + )"); + + // set up API requests QString dongleId = QString::fromStdString(Params().get("DongleId")); + if (!dongleId.length()) { + return; + } QString url = "https://api.commadotai.com/v1/devices/" + dongleId + "/owner"; RequestRepeater* repeater = new RequestRepeater(this, url, 6); - QObject::connect(repeater, SIGNAL(receivedResponse(QString)), this, SLOT(replyFinished(QString))); } @@ -106,12 +113,13 @@ void PrimeUserWidget::replyFinished(QString response) { qDebug() << "JSON Parse failed on getting username and points"; return; } + QJsonObject json = doc.object(); + QString points_str = QString::number(json["points"].toInt()); QString username_str = json["username"].toString(); if (username_str.length()) { username_str = "@" + username_str; } - QString points_str = QString::number(json["points"].toInt()); username->setText(username_str); points->setText(points_str); @@ -119,29 +127,23 @@ void PrimeUserWidget::replyFinished(QString response) { PrimeAdWidget::PrimeAdWidget(QWidget* parent) : QWidget(parent) { QVBoxLayout* vlayout = new QVBoxLayout; + vlayout->setSpacing(15); - QLabel* upgradeNow = new QLabel("Upgrade now"); - vlayout->addWidget(upgradeNow); + vlayout->addWidget(new QLabel("Upgrade now"), 1, Qt::AlignTop); - QLabel* description = new QLabel("Become a comma prime member in the comma app and get premium features!"); + QLabel* description = new QLabel("Become a comma prime member in the comma connect app and get premium features!"); description->setStyleSheet(R"( font-size: 50px; color: #b8b8b8; )"); description->setWordWrap(true); - vlayout->addWidget(description); - - vlayout->addSpacing(50); + vlayout->addWidget(description, 2, Qt::AlignTop); QVector features = {"✓ REMOTE ACCESS", "✓ 14 DAYS OF STORAGE", "✓ DEVELOPER PERKS"}; - for (auto featureContent : features) { - QLabel* feature = new QLabel(featureContent); - feature->setStyleSheet(R"( - font-size: 40px; - )"); - - vlayout->addWidget(feature); - vlayout->addSpacing(15); + for (auto &f: features) { + QLabel* feature = new QLabel(f); + feature->setStyleSheet(R"(font-size: 40px;)"); + vlayout->addWidget(feature, 0, Qt::AlignBottom); } setLayout(vlayout); @@ -198,11 +200,11 @@ SetupWidget::SetupWidget(QWidget* parent) : QWidget(parent) { q->setLayout(qrLayout); mainLayout->addWidget(q); - PrimeAdWidget* primeAd = new PrimeAdWidget; + primeAd = new PrimeAdWidget; mainLayout->addWidget(primeAd); - PrimeUserWidget* primeUserWidget = new PrimeUserWidget; - mainLayout->addWidget(primeUserWidget); + primeUser = new PrimeUserWidget; + mainLayout->addWidget(primeUser); background->setLayout(mainLayout); background->setStyleSheet(R"( @@ -212,7 +214,13 @@ SetupWidget::SetupWidget(QWidget* parent) : QWidget(parent) { } )"); backgroundLayout->addWidget(background); + setLayout(backgroundLayout); + setStyleSheet(R"( + font-size: 90px; + font-weight: bold; + background-color: #292929; + )"); QString dongleId = QString::fromStdString(Params().get("DongleId")); QString url = "https://api.commadotai.com/v1.1/devices/" + dongleId + "/"; @@ -225,10 +233,6 @@ SetupWidget::SetupWidget(QWidget* parent) : QWidget(parent) { void SetupWidget::parseError(QString response) { showQr = false; mainLayout->setCurrentIndex(0); - setStyleSheet(R"( - font-size: 90px; - background-color: #000000; - )"); } void SetupWidget::showQrCode(){ @@ -243,14 +247,6 @@ void SetupWidget::replyFinished(QString response) { return; } - if (mainLayout->currentIndex() == 0) { // If we are still on the blank widget - setStyleSheet(R"( - font-size: 90px; - font-weight: bold; - background-color: #292929; - )"); - } - QJsonObject json = doc.object(); bool is_paired = json["is_paired"].toBool(); bool is_prime = json["prime"].toBool(); @@ -259,9 +255,9 @@ void SetupWidget::replyFinished(QString response) { mainLayout->setCurrentIndex(1 + showQr); } else if (is_paired && !is_prime) { showQr = false; - mainLayout->setCurrentIndex(3); + mainLayout->setCurrentWidget(primeAd); } else if (is_paired && is_prime) { showQr = false; - mainLayout->setCurrentIndex(4); + mainLayout->setCurrentWidget(primeUser); } } diff --git a/selfdrive/ui/qt/widgets/setup.hpp b/selfdrive/ui/qt/widgets/setup.hpp index 8fed2a1bbc..5bad1859e6 100644 --- a/selfdrive/ui/qt/widgets/setup.hpp +++ b/selfdrive/ui/qt/widgets/setup.hpp @@ -50,6 +50,8 @@ public: private: QStackedLayout* mainLayout; CommaApi* api; + PrimeAdWidget *primeAd; + PrimeUserWidget *primeUser; bool showQr = false; private slots: