From 4857b61f8fd723b384f2f5460752bd36c9cbdfa5 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Fri, 18 Aug 2023 02:37:42 +0800 Subject: [PATCH] ui/networking: pass network by value (#29448) old-commit-hash: 1887d9197ab495bb8f4dd2826730e6d53528dd65 --- selfdrive/ui/qt/offroad/networking.cc | 4 ++-- selfdrive/ui/qt/offroad/networking.h | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/selfdrive/ui/qt/offroad/networking.cc b/selfdrive/ui/qt/offroad/networking.cc index b147671b4..628a92fb5 100644 --- a/selfdrive/ui/qt/offroad/networking.cc +++ b/selfdrive/ui/qt/offroad/networking.cc @@ -77,7 +77,7 @@ void Networking::refresh() { an->refresh(); } -void Networking::connectToNetwork(const Network &n) { +void Networking::connectToNetwork(const Network n) { if (wifi->isKnownConnection(n.ssid)) { wifi->activateWifiConnection(n.ssid); wifiWidget->refresh(); @@ -310,7 +310,7 @@ WifiItem *WifiUI::getItem(int n) { auto item = n < wifi_items.size() ? wifi_items[n] : wifi_items.emplace_back(new WifiItem(tr("CONNECTING..."), tr("FORGET"))); if (!item->parentWidget()) { QObject::connect(item, &WifiItem::connectToNetwork, this, &WifiUI::connectToNetwork); - QObject::connect(item, &WifiItem::forgotNetwork, [this](const Network &n) { + QObject::connect(item, &WifiItem::forgotNetwork, [this](const Network n) { if (ConfirmationDialog::confirm(tr("Forget Wi-Fi Network \"%1\"?").arg(QString::fromUtf8(n.ssid)), tr("Forget"), this)) wifi->forgetConnection(n.ssid); }); diff --git a/selfdrive/ui/qt/offroad/networking.h b/selfdrive/ui/qt/offroad/networking.h index 7078bf969..cdcdf067a 100644 --- a/selfdrive/ui/qt/offroad/networking.h +++ b/selfdrive/ui/qt/offroad/networking.h @@ -12,8 +12,9 @@ public: void setItem(const Network& n, const QPixmap &icon, bool show_forget_btn, const QPixmap &strength); signals: - void connectToNetwork(const Network &n); - void forgotNetwork(const Network &n); + // Cannot pass Network by reference. it may change after the signal is sent. + void connectToNetwork(const Network n); + void forgotNetwork(const Network n); protected: ElidedLabel* ssidLabel; @@ -43,7 +44,7 @@ private: std::vector wifi_items; signals: - void connectToNetwork(const Network &n); + void connectToNetwork(const Network n); public slots: void refresh(); @@ -91,6 +92,6 @@ public slots: void refresh(); private slots: - void connectToNetwork(const Network &n); + void connectToNetwork(const Network n); void wrongPassword(const QString &ssid); };