From 290e9fb9f6e5ad6da3113f3976847f168f1e981c Mon Sep 17 00:00:00 2001 From: sshane Date: Fri, 18 Jun 2021 21:14:26 -0700 Subject: [PATCH] UI: forget button and security type icon (#21320) * forget and security buttons first draft * Text left margin closely matches other panels * add lock label * implement new icon * actually add icon rename * smaller lock icon smaller icon * better --- selfdrive/assets/offroad/icon_close.svg | 4 +++ selfdrive/assets/offroad/icon_lock_closed.svg | 4 +++ selfdrive/ui/qt/offroad/networking.cc | 27 ++++++++++++++++++- selfdrive/ui/qt/offroad/wifiManager.cc | 6 ++--- selfdrive/ui/qt/offroad/wifiManager.h | 2 +- 5 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 selfdrive/assets/offroad/icon_close.svg create mode 100644 selfdrive/assets/offroad/icon_lock_closed.svg diff --git a/selfdrive/assets/offroad/icon_close.svg b/selfdrive/assets/offroad/icon_close.svg new file mode 100644 index 0000000000..4c063371af --- /dev/null +++ b/selfdrive/assets/offroad/icon_close.svg @@ -0,0 +1,4 @@ + + + + diff --git a/selfdrive/assets/offroad/icon_lock_closed.svg b/selfdrive/assets/offroad/icon_lock_closed.svg new file mode 100644 index 0000000000..b787097409 --- /dev/null +++ b/selfdrive/assets/offroad/icon_lock_closed.svg @@ -0,0 +1,4 @@ + + + + diff --git a/selfdrive/ui/qt/offroad/networking.cc b/selfdrive/ui/qt/offroad/networking.cc index e5ea703b42..ebcb10e318 100644 --- a/selfdrive/ui/qt/offroad/networking.cc +++ b/selfdrive/ui/qt/offroad/networking.cc @@ -206,12 +206,37 @@ void WifiUI::refresh() { int i = 0; for (Network &network : wifi->seen_networks) { QHBoxLayout *hlayout = new QHBoxLayout; - hlayout->addSpacing(50); QLabel *ssid_label = new QLabel(QString::fromUtf8(network.ssid)); ssid_label->setStyleSheet("font-size: 55px;"); hlayout->addWidget(ssid_label, 1, Qt::AlignLeft); + if (wifi->isKnownNetwork(network.ssid)) { + QPushButton *forgetBtn = new QPushButton(); + QPixmap pix("../assets/offroad/icon_close.svg"); + + forgetBtn->setIcon(QIcon(pix)); + forgetBtn->setIconSize(QSize(35, 35)); + forgetBtn->setStyleSheet("QPushButton { background-color: #E22C2C; }"); + forgetBtn->setFixedSize(100, 90); + + QObject::connect(forgetBtn, &QPushButton::released, [=]() { + if (ConfirmationDialog::confirm("Are you sure you want to forget " + QString::fromUtf8(network.ssid) + "?", this)) { + wifi->forgetConnection(network.ssid); + } + }); + + hlayout->addWidget(forgetBtn, 0, Qt::AlignRight); + } else if (network.security_type == SecurityType::WPA) { + QLabel *lockIcon = new QLabel(); + QPixmap pix("../assets/offroad/icon_lock_closed.svg"); + lockIcon->setPixmap(pix.scaledToWidth(35, Qt::SmoothTransformation)); + lockIcon->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + lockIcon->setStyleSheet("QLabel { margin: 0px; padding-left: 15px; padding-right: 15px; }"); + + hlayout->addWidget(lockIcon, 0, Qt::AlignRight); + } + // strength indicator unsigned int strength_scale = network.strength / 17; hlayout->addWidget(new NetworkStrengthWidget(strength_scale), 0, Qt::AlignRight); diff --git a/selfdrive/ui/qt/offroad/wifiManager.cc b/selfdrive/ui/qt/offroad/wifiManager.cc index 0588cbd561..a29fe1a443 100644 --- a/selfdrive/ui/qt/offroad/wifiManager.cc +++ b/selfdrive/ui/qt/offroad/wifiManager.cc @@ -213,7 +213,7 @@ void WifiManager::connect(const Network &n, const QString &password) { void WifiManager::connect(const Network &n, const QString &username, const QString &password) { connecting_to_network = n.ssid; // disconnect(); - forgetNetwork(n.ssid); //Clear all connections that may already exist to the network we are connecting + forgetConnection(n.ssid); //Clear all connections that may already exist to the network we are connecting connect(n.ssid, username, password, n.security_type); } @@ -283,7 +283,7 @@ bool WifiManager::isKnownNetwork(const QString &ssid) { return !pathFromSsid(ssid).path().isEmpty(); } -void WifiManager::forgetNetwork(const QString &ssid) { +void WifiManager::forgetConnection(const QString &ssid) { QDBusObjectPath path = pathFromSsid(ssid); if (!path.path().isEmpty()) { QDBusInterface nm2(nm_service, path.path(), nm_settings_conn_iface, bus); @@ -480,7 +480,7 @@ bool WifiManager::tetheringEnabled() { void WifiManager::changeTetheringPassword(const QString &newPassword) { tetheringPassword = newPassword; if (isKnownNetwork(tethering_ssid.toUtf8())) { - forgetNetwork(tethering_ssid.toUtf8()); + forgetConnection(tethering_ssid.toUtf8()); } addTetheringConnection(); } diff --git a/selfdrive/ui/qt/offroad/wifiManager.h b/selfdrive/ui/qt/offroad/wifiManager.h index 31b1288635..7aac7025d7 100644 --- a/selfdrive/ui/qt/offroad/wifiManager.h +++ b/selfdrive/ui/qt/offroad/wifiManager.h @@ -35,6 +35,7 @@ public: QString ipv4_address; void refreshNetworks(); + void forgetConnection(const QString &ssid); bool isKnownNetwork(const QString &ssid); void connect(const Network &ssid); @@ -66,7 +67,6 @@ private: void connect(const QByteArray &ssid, const QString &username, const QString &password, SecurityType security_type); QString get_active_ap(); void deactivateConnection(const QString &ssid); - void forgetNetwork(const QString &ssid); QVector get_active_connections(); uint get_wifi_device_state(); QByteArray get_property(const QString &network_path, const QString &property);