more prime widget cleanup

pull/20392/head
Comma Device 4 years ago
parent 05f4519eab
commit d44651ee8c
  1. 88
      selfdrive/ui/qt/widgets/setup.cc
  2. 2
      selfdrive/ui/qt/widgets/setup.hpp

@ -24,7 +24,7 @@ PairingQRWidget::PairingQRWidget(QWidget* parent) : QWidget(parent) {
QTimer* timer = new QTimer(this); QTimer* timer = new QTimer(this);
timer->start(30 * 1000); timer->start(30 * 1000);
connect(timer, SIGNAL(timeout()), this, SLOT(refresh())); 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(){ void PairingQRWidget::refresh(){
@ -48,7 +48,7 @@ void PairingQRWidget::refresh(){
void PairingQRWidget::updateQrCode(QString text) { void PairingQRWidget::updateQrCode(QString text) {
QrCode qr = QrCode::encodeText(text.toUtf8().data(), QrCode::Ecc::LOW); QrCode qr = QrCode::encodeText(text.toUtf8().data(), QrCode::Ecc::LOW);
qint32 sz = qr.getSize(); 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); QImage im(sz + 2, sz + 2, QImage::Format_RGB32);
QRgb black = qRgb(0, 0, 0); QRgb black = qRgb(0, 0, 0);
QRgb white = qRgb(255, 255, 255); QRgb white = qRgb(255, 255, 255);
@ -71,32 +71,39 @@ void PairingQRWidget::updateQrCode(QString text) {
PrimeUserWidget::PrimeUserWidget(QWidget* parent) : QWidget(parent) { PrimeUserWidget::PrimeUserWidget(QWidget* parent) : QWidget(parent) {
mainLayout = new QVBoxLayout; mainLayout = new QVBoxLayout;
QLabel* commaPrime = new QLabel("COMMA PRIME"); QLabel* commaPrime = new QLabel("COMMA PRIME");
commaPrime->setStyleSheet(R"( mainLayout->addWidget(commaPrime, 0, Qt::AlignTop);
font-size: 60px;
)");
mainLayout->addWidget(commaPrime);
username = new QLabel(""); username = new QLabel();
mainLayout->addWidget(username); mainLayout->addWidget(username, 0, Qt::AlignTop);
mainLayout->addSpacing(200); mainLayout->addSpacing(100);
QLabel* commaPoints = new QLabel("COMMA POINTS"); QLabel* commaPoints = new QLabel("COMMA POINTS");
commaPoints->setStyleSheet(R"( commaPoints->setStyleSheet(R"(
font-size: 60px;
color: #b8b8b8; color: #b8b8b8;
)"); )");
mainLayout->addWidget(commaPoints); mainLayout->addWidget(commaPoints, 0, Qt::AlignTop);
points = new QLabel(""); points = new QLabel();
mainLayout->addWidget(points); mainLayout->addWidget(points, 0, Qt::AlignTop);
setLayout(mainLayout); setLayout(mainLayout);
setStyleSheet(R"(
QLabel {
font-size: 60px;
font-weight: 500;
}
)");
// set up API requests
QString dongleId = QString::fromStdString(Params().get("DongleId")); QString dongleId = QString::fromStdString(Params().get("DongleId"));
if (!dongleId.length()) {
return;
}
QString url = "https://api.commadotai.com/v1/devices/" + dongleId + "/owner"; QString url = "https://api.commadotai.com/v1/devices/" + dongleId + "/owner";
RequestRepeater* repeater = new RequestRepeater(this, url, 6); RequestRepeater* repeater = new RequestRepeater(this, url, 6);
QObject::connect(repeater, SIGNAL(receivedResponse(QString)), this, SLOT(replyFinished(QString))); 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"; qDebug() << "JSON Parse failed on getting username and points";
return; return;
} }
QJsonObject json = doc.object(); QJsonObject json = doc.object();
QString points_str = QString::number(json["points"].toInt());
QString username_str = json["username"].toString(); QString username_str = json["username"].toString();
if (username_str.length()) { if (username_str.length()) {
username_str = "@" + username_str; username_str = "@" + username_str;
} }
QString points_str = QString::number(json["points"].toInt());
username->setText(username_str); username->setText(username_str);
points->setText(points_str); points->setText(points_str);
@ -119,29 +127,23 @@ void PrimeUserWidget::replyFinished(QString response) {
PrimeAdWidget::PrimeAdWidget(QWidget* parent) : QWidget(parent) { PrimeAdWidget::PrimeAdWidget(QWidget* parent) : QWidget(parent) {
QVBoxLayout* vlayout = new QVBoxLayout; QVBoxLayout* vlayout = new QVBoxLayout;
vlayout->setSpacing(15);
QLabel* upgradeNow = new QLabel("Upgrade now"); vlayout->addWidget(new QLabel("Upgrade now"), 1, Qt::AlignTop);
vlayout->addWidget(upgradeNow);
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"( description->setStyleSheet(R"(
font-size: 50px; font-size: 50px;
color: #b8b8b8; color: #b8b8b8;
)"); )");
description->setWordWrap(true); description->setWordWrap(true);
vlayout->addWidget(description); vlayout->addWidget(description, 2, Qt::AlignTop);
vlayout->addSpacing(50);
QVector<QString> features = {"✓ REMOTE ACCESS", "✓ 14 DAYS OF STORAGE", "✓ DEVELOPER PERKS"}; QVector<QString> features = {"✓ REMOTE ACCESS", "✓ 14 DAYS OF STORAGE", "✓ DEVELOPER PERKS"};
for (auto featureContent : features) { for (auto &f: features) {
QLabel* feature = new QLabel(featureContent); QLabel* feature = new QLabel(f);
feature->setStyleSheet(R"( feature->setStyleSheet(R"(font-size: 40px;)");
font-size: 40px; vlayout->addWidget(feature, 0, Qt::AlignBottom);
)");
vlayout->addWidget(feature);
vlayout->addSpacing(15);
} }
setLayout(vlayout); setLayout(vlayout);
@ -198,11 +200,11 @@ SetupWidget::SetupWidget(QWidget* parent) : QWidget(parent) {
q->setLayout(qrLayout); q->setLayout(qrLayout);
mainLayout->addWidget(q); mainLayout->addWidget(q);
PrimeAdWidget* primeAd = new PrimeAdWidget; primeAd = new PrimeAdWidget;
mainLayout->addWidget(primeAd); mainLayout->addWidget(primeAd);
PrimeUserWidget* primeUserWidget = new PrimeUserWidget; primeUser = new PrimeUserWidget;
mainLayout->addWidget(primeUserWidget); mainLayout->addWidget(primeUser);
background->setLayout(mainLayout); background->setLayout(mainLayout);
background->setStyleSheet(R"( background->setStyleSheet(R"(
@ -212,7 +214,13 @@ SetupWidget::SetupWidget(QWidget* parent) : QWidget(parent) {
} }
)"); )");
backgroundLayout->addWidget(background); backgroundLayout->addWidget(background);
setLayout(backgroundLayout); setLayout(backgroundLayout);
setStyleSheet(R"(
font-size: 90px;
font-weight: bold;
background-color: #292929;
)");
QString dongleId = QString::fromStdString(Params().get("DongleId")); QString dongleId = QString::fromStdString(Params().get("DongleId"));
QString url = "https://api.commadotai.com/v1.1/devices/" + 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) { void SetupWidget::parseError(QString response) {
showQr = false; showQr = false;
mainLayout->setCurrentIndex(0); mainLayout->setCurrentIndex(0);
setStyleSheet(R"(
font-size: 90px;
background-color: #000000;
)");
} }
void SetupWidget::showQrCode(){ void SetupWidget::showQrCode(){
@ -243,14 +247,6 @@ void SetupWidget::replyFinished(QString response) {
return; 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(); QJsonObject json = doc.object();
bool is_paired = json["is_paired"].toBool(); bool is_paired = json["is_paired"].toBool();
bool is_prime = json["prime"].toBool(); bool is_prime = json["prime"].toBool();
@ -259,9 +255,9 @@ void SetupWidget::replyFinished(QString response) {
mainLayout->setCurrentIndex(1 + showQr); mainLayout->setCurrentIndex(1 + showQr);
} else if (is_paired && !is_prime) { } else if (is_paired && !is_prime) {
showQr = false; showQr = false;
mainLayout->setCurrentIndex(3); mainLayout->setCurrentWidget(primeAd);
} else if (is_paired && is_prime) { } else if (is_paired && is_prime) {
showQr = false; showQr = false;
mainLayout->setCurrentIndex(4); mainLayout->setCurrentWidget(primeUser);
} }
} }

@ -50,6 +50,8 @@ public:
private: private:
QStackedLayout* mainLayout; QStackedLayout* mainLayout;
CommaApi* api; CommaApi* api;
PrimeAdWidget *primeAd;
PrimeUserWidget *primeUser;
bool showQr = false; bool showQr = false;
private slots: private slots:

Loading…
Cancel
Save