ui: pairing device in settings (#31947)

pull/31958/head
Dean Lee 1 year ago committed by GitHub
parent 028f6938b2
commit 0201c786e8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 21
      selfdrive/ui/qt/offroad/settings.cc
  2. 3
      selfdrive/ui/qt/offroad/settings.h
  3. 31
      selfdrive/ui/qt/onroad.cc
  4. 1
      selfdrive/ui/qt/onroad.h
  5. 12
      selfdrive/ui/translations/main_ar.ts
  6. 12
      selfdrive/ui/translations/main_de.ts
  7. 12
      selfdrive/ui/translations/main_fr.ts
  8. 12
      selfdrive/ui/translations/main_ja.ts
  9. 12
      selfdrive/ui/translations/main_ko.ts
  10. 12
      selfdrive/ui/translations/main_pt-BR.ts
  11. 12
      selfdrive/ui/translations/main_th.ts
  12. 12
      selfdrive/ui/translations/main_tr.ts
  13. 12
      selfdrive/ui/translations/main_zh-CHS.ts
  14. 12
      selfdrive/ui/translations/main_zh-CHT.ts

@ -16,6 +16,7 @@
#include "system/hardware/hw.h"
#include "selfdrive/ui/qt/widgets/controls.h"
#include "selfdrive/ui/qt/widgets/input.h"
#include "selfdrive/ui/qt/widgets/prime.h"
#include "selfdrive/ui/qt/widgets/scrollview.h"
#include "selfdrive/ui/qt/widgets/ssh_keys.h"
#include "selfdrive/ui/qt/widgets/toggle.h"
@ -215,6 +216,14 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) {
addItem(new LabelControl(tr("Dongle ID"), getDongleId().value_or(tr("N/A"))));
addItem(new LabelControl(tr("Serial"), params.get("HardwareSerial").c_str()));
pair_device = new ButtonControl(tr("Pair Device"), tr("Pair"),
tr("Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer."));
connect(pair_device, &ButtonControl::clicked, [=]() {
PairingPopup popup(this);
popup.exec();
});
addItem(pair_device);
// offroad-only buttons
auto dcamBtn = new ButtonControl(tr("Driver Camera"), tr("PREVIEW"),
@ -262,9 +271,14 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) {
});
addItem(translateBtn);
QObject::connect(uiState(), &UIState::primeChanged, [this] (bool prime) {
pair_device->setVisible(!prime);
});
QObject::connect(uiState(), &UIState::offroadTransition, [=](bool offroad) {
for (auto btn : findChildren<ButtonControl *>()) {
btn->setEnabled(offroad);
if (btn != pair_device) {
btn->setEnabled(offroad);
}
}
});
@ -345,6 +359,11 @@ void DevicePanel::poweroff() {
}
}
void DevicePanel::showEvent(QShowEvent *event) {
pair_device->setVisible(!uiState()->primeType());
ListWidget::showEvent(event);
}
void SettingsWindow::showEvent(QShowEvent *event) {
setCurrentPanel(0);
}

@ -43,6 +43,8 @@ class DevicePanel : public ListWidget {
Q_OBJECT
public:
explicit DevicePanel(SettingsWindow *parent);
void showEvent(QShowEvent *event) override;
signals:
void reviewTrainingGuide();
void showDriverView();
@ -54,6 +56,7 @@ private slots:
private:
Params params;
ButtonControl *pair_device;
};
class TogglesPanel : public ListWidget {

@ -105,26 +105,29 @@ void OnroadWindow::mousePressEvent(QMouseEvent* e) {
QWidget::mousePressEvent(e);
}
void OnroadWindow::createMapWidget() {
#ifdef ENABLE_MAPS
auto m = new MapPanel(get_mapbox_settings());
map = m;
QObject::connect(m, &MapPanel::mapPanelRequested, this, &OnroadWindow::mapPanelRequested);
QObject::connect(nvg->map_settings_btn, &MapSettingsButton::clicked, m, &MapPanel::toggleMapSettings);
nvg->map_settings_btn->setEnabled(true);
m->setFixedWidth(topWidget(this)->width() / 2 - UI_BORDER_SIZE);
split->insertWidget(0, m);
// hidden by default, made visible when navRoute is published
m->setVisible(false);
#endif
}
void OnroadWindow::offroadTransition(bool offroad) {
#ifdef ENABLE_MAPS
if (!offroad) {
if (map == nullptr && (uiState()->hasPrime() || !MAPBOX_TOKEN.isEmpty())) {
auto m = new MapPanel(get_mapbox_settings());
map = m;
QObject::connect(m, &MapPanel::mapPanelRequested, this, &OnroadWindow::mapPanelRequested);
QObject::connect(nvg->map_settings_btn, &MapSettingsButton::clicked, m, &MapPanel::toggleMapSettings);
nvg->map_settings_btn->setEnabled(true);
m->setFixedWidth(topWidget(this)->width() / 2 - UI_BORDER_SIZE);
split->insertWidget(0, m);
// hidden by default, made visible when navRoute is published
m->setVisible(false);
createMapWidget();
}
}
#endif
alerts->updateAlert({});
}
@ -135,6 +138,8 @@ void OnroadWindow::primeChanged(bool prime) {
nvg->map_settings_btn->setVisible(false);
map->deleteLater();
map = nullptr;
} else if (!map && (prime || !MAPBOX_TOKEN.isEmpty())) {
createMapWidget();
}
#endif
}

@ -127,6 +127,7 @@ signals:
void mapPanelRequested();
private:
void createMapWidget();
void paintEvent(QPaintEvent *event);
void mousePressEvent(QMouseEvent* e) override;
OnroadAlerts *alerts;

@ -293,6 +293,18 @@
<source>Review</source>
<translation>مراجعة</translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation>اقرن جهازك بجهاز (connect.comma.ai) واحصل على عرضك من comma prime.</translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

@ -293,6 +293,18 @@
<source>Review</source>
<translation>Überprüfen</translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation>Koppele dein Gerät mit Comma Connect (connect.comma.ai) und sichere dir dein Comma Prime Angebot.</translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

@ -293,6 +293,18 @@
<source>Disengage to Power Off</source>
<translation>Désengager pour éteindre</translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation>Associez votre appareil avec comma connect (connect.comma.ai) et profitez de l&apos;offre comma prime.</translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

@ -293,6 +293,18 @@
<source>Review</source>
<translation></translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation> comma connect (connect.comma.ai)comma primeの特典を申請してください</translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

@ -293,6 +293,18 @@
<source>Review</source>
<translation></translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation> comma connect (connect.comma.ai) comma prime .</translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

@ -293,6 +293,18 @@
<source>Review</source>
<translation>Revisar</translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation>Pareie seu dispositivo com comma connect (connect.comma.ai) e reivindique sua oferta de comma prime.</translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

@ -293,6 +293,18 @@
<source>Review</source>
<translation></translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation> comma connect (connect.comma.ai) comma prime </translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

@ -293,6 +293,18 @@
<source>Review</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation>Cihazınızı comma connect (connect.comma.ai) ile eşleştirin ve comma prime aboneliğine göz atın.</translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

@ -293,6 +293,18 @@
<source>Review</source>
<translation></translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation>comma connect connect.comma.aicomma prime优惠</translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

@ -293,6 +293,18 @@
<source>Review</source>
<translation></translation>
</message>
<message>
<source>Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.</source>
<translation> comma connect (connect.comma.ai) comma </translation>
</message>
<message>
<source>Pair Device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pair</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriverViewWindow</name>

Loading…
Cancel
Save