ui: Add Wi-Fi scan button to network settings (#608)

* Implemented custom Networking class for sunnypilot UI

This modification introduced a new 'NetworkingSP' class for the sunnypilot user interface. It's based on the existing Networking class, but tailored to the specific needs of the sunnypilot UI. This class adds a new 'Scan' button to the Wi-Fi screen and implements an additional layout to accommodate both 'Scan' and 'Advanced' buttons. It also contains updates to the file inclusions in 'settings.cc' to use the new class. Moreover, the accessibility of several member variables in the original Networking class has been updated from 'private' to 'protected'. This change enhances the modifiability and extensibility of the class structure.

* Add Spanish translations for networking scan messages

Added translations for "Scan" and "Scanning..." in the Spanish localization file. These updates ensure proper display and functionality in the networking scan feature for Spanish-speaking users.

* updating lang files

* Refactor networking component and clean up unused code.

Removed unnecessary comments and unused includes to enhance readability and maintainability. Refactored variable declarations for consistency and streamlined layout adjustments in the networking UI code.
This commit is contained in:
DevTekVE
2025-01-22 12:04:11 +01:00
committed by GitHub
parent 8d7315fa28
commit 9fe4d7ecc7
16 changed files with 228 additions and 4 deletions

View File

@@ -97,7 +97,7 @@ public:
void setPrimeType(PrimeState::Type type);
WifiManager* wifi = nullptr;
private:
protected:
QStackedLayout* main_layout = nullptr;
QWidget* wifiScreen = nullptr;
AdvancedNetworking* an = nullptr;

View File

@@ -4,6 +4,7 @@ widgets_src = [
"sunnypilot/qt/widgets/drive_stats.cc",
"sunnypilot/qt/widgets/prime.cc",
"sunnypilot/qt/widgets/scrollview.cc",
"sunnypilot/qt/network/networking.cc",
]
qt_util = [

View File

@@ -0,0 +1,45 @@
#include "selfdrive/ui/sunnypilot/qt/network/networking.h"
#include <QVBoxLayout>
#include <QPushButton>
#include <QStackedLayout>
NetworkingSP::NetworkingSP(QWidget *parent) : Networking(parent) {
auto vlayout = wifiScreen->findChild<QVBoxLayout*>();
auto hlayout = new QHBoxLayout();
// Create and setup scan button
auto scanButton = new QPushButton(tr("Scan"));
scanButton->setObjectName("scan_btn");
scanButton->setFixedSize(400, 100);
connect(wifi, &WifiManager::refreshSignal, this, [=]() { scanButton->setText(tr("Scan")); scanButton->setEnabled(true); });
connect(scanButton, &QPushButton::clicked, [=]() { scanButton->setText(tr("Scanning...")); scanButton->setEnabled(false); wifi->requestScan(); });
hlayout->addWidget(scanButton);
hlayout->addStretch(1);
// Look for an existing Advanced button
QPushButton* existingAdvanced = wifiScreen->findChild<QPushButton*>("advanced_btn");
if (existingAdvanced) {
hlayout->addWidget(existingAdvanced);
}
// Insert our new layout at the top of vlayout
vlayout->setMargin(40);
vlayout->insertLayout(0, hlayout);
// Add our scan button to the existing style selectors
auto newStyleSheet = styleSheet().replace(
", #advanced_btn ",
", #advanced_btn, #scan_btn "
).replace(
", #advanced_btn:pressed",
", #advanced_btn:pressed, #scan_btn:pressed"
).append(R"(
#scan_btn:disabled {
background-color: #121212;
color: #33FFFFFF;
}
)");
setStyleSheet(newStyleSheet);
}

View File

@@ -0,0 +1,17 @@
/**
* Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
*
* This file is part of sunnypilot and is licensed under the MIT License.
* See the LICENSE.md file in the root directory for more details.
*/
#pragma once
#include "selfdrive/ui/qt/network/networking.h"
class NetworkingSP : public Networking {
Q_OBJECT
public:
explicit NetworkingSP(QWidget *parent = nullptr);
};

View File

@@ -7,9 +7,9 @@
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h"
#include "selfdrive/ui/qt/network/networking.h"
#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h"
#include "selfdrive/ui/qt/offroad/developer_panel.h"
#include "selfdrive/ui/sunnypilot/qt/network/networking.h"
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/device_panel.h"
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/software_panel.h"
@@ -66,8 +66,8 @@ SettingsWindowSP::SettingsWindowSP(QWidget *parent) : SettingsWindow(parent) {
TogglesPanelSP *toggles = new TogglesPanelSP(this);
QObject::connect(this, &SettingsWindowSP::expandToggleDescription, toggles, &TogglesPanel::expandToggleDescription);
auto networking = new Networking(this);
QObject::connect(uiState()->prime_state, &PrimeState::changed, networking, &Networking::setPrimeType);
auto networking = new NetworkingSP(this);
QObject::connect(uiState()->prime_state, &PrimeState::changed, networking, &NetworkingSP::setPrimeType);
QList<PanelInfo> panels = {
PanelInfo(" " + tr("Device"), device, "../../sunnypilot/selfdrive/assets/offroad/icon_home.svg"),

View File

@@ -507,6 +507,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation>كلمة مرور خاطئة</translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete">متقدم</translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -503,6 +503,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation>Falsches Passwort</translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete">Erweitert</translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -503,6 +503,17 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation>Contraseña incorrecta</translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Scan</source>
<translation>Escanear</translation>
</message>
<message>
<source>Scanning...</source>
<translation>Escaneando...</translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -503,6 +503,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation>Mot de passe incorrect</translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete">Avancé</translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -502,6 +502,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation></translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete"></translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -502,6 +502,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation> </translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete"> </translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -503,6 +503,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation>Senha incorreta</translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete">Avançado</translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -502,6 +502,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation></translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete"></translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -502,6 +502,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation>Yalnış parola</translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete">Gelişmiş Seçenekler</translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -502,6 +502,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation></translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete"></translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>

View File

@@ -502,6 +502,21 @@ Pause Steering: ALC will be paused after the brake pedal is manually pressed.</s
<translation></translation>
</message>
</context>
<context>
<name>NetworkingSP</name>
<message>
<source>Advanced</source>
<translation type="obsolete"></translation>
</message>
<message>
<source>Scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scanning...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadAlert</name>
<message>