ui: stop timer if PairingQRWidget is hidden (#25671)

pull/25607/head^2
Dean Lee 3 years ago committed by GitHub
parent 0028e062b8
commit 4974ca03a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      selfdrive/ui/qt/widgets/prime.cc
  2. 2
      selfdrive/ui/qt/widgets/prime.h

@ -18,22 +18,24 @@
using qrcodegen::QrCode;
PairingQRWidget::PairingQRWidget(QWidget* parent) : QWidget(parent) {
QTimer* timer = new QTimer(this);
timer->start(5 * 60 * 1000);
timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, &PairingQRWidget::refresh);
}
void PairingQRWidget::showEvent(QShowEvent *event) {
refresh();
timer->start(5 * 60 * 1000);
}
void PairingQRWidget::hideEvent(QHideEvent *event) {
timer->stop();
}
void PairingQRWidget::refresh() {
if (isVisible()) {
QString pairToken = CommaApi::create_jwt({{"pair", true}});
QString qrString = "https://connect.comma.ai/?pair=" + pairToken;
this->updateQrCode(qrString);
}
}
void PairingQRWidget::updateQrCode(const QString &text) {
QrCode qr = QrCode::encodeText(text.toUtf8().data(), QrCode::Ecc::LOW);

@ -25,8 +25,10 @@ public:
private:
QPixmap img;
QTimer *timer;
void updateQrCode(const QString &text);
void showEvent(QShowEvent *event) override;
void hideEvent(QHideEvent *event) override;
private slots:
void refresh();

Loading…
Cancel
Save