mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-06-30 02:52:04 +08:00
ui: pairing device in settings (#31947)
old-commit-hash: 0201c786e85c22aea6e79d873a367b274016648e
This commit is contained in:
@@ -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 {
|
||||
|
||||
+18
-13
@@ -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'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.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 高級會員優惠。</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>
|
||||
|
||||
Reference in New Issue
Block a user