#pragma once #include #include #include #include "selfdrive/ui/qt/offroad/wifiManager.h" #include "selfdrive/ui/qt/widgets/input.h" #include "selfdrive/ui/qt/widgets/ssh_keys.h" #include "selfdrive/ui/qt/widgets/toggle.h" class WifiUI : public QWidget { Q_OBJECT public: explicit WifiUI(QWidget *parent = 0, WifiManager* wifi = 0); private: WifiManager *wifi = nullptr; QVBoxLayout *list_layout = nullptr; QLabel *scanningLabel = nullptr; QVBoxLayout* main_layout; QPixmap lock; QPixmap checkmark; QPixmap circled_slash; QVector strengths; signals: void connectToNetwork(const Network &n); public slots: void refresh(); }; class AdvancedNetworking : public QWidget { Q_OBJECT public: explicit AdvancedNetworking(QWidget* parent = 0, WifiManager* wifi = 0); private: LabelControl* ipLabel; ToggleControl* tetheringToggle; ToggleControl* roamingToggle; ButtonControl* editApnButton; ToggleControl* meteredToggle; WifiManager* wifi = nullptr; Params params; signals: void backPress(); public slots: void toggleTethering(bool enabled); void refresh(); }; class Networking : public QFrame { Q_OBJECT public: explicit Networking(QWidget* parent = 0, bool show_advanced = true); WifiManager* wifi = nullptr; private: QStackedLayout* main_layout = nullptr; QWidget* wifiScreen = nullptr; AdvancedNetworking* an = nullptr; WifiUI* wifiWidget; protected: void showEvent(QShowEvent* event) override; void hideEvent(QHideEvent* event) override; public slots: void refresh(); private slots: void connectToNetwork(const Network &n); void wrongPassword(const QString &ssid); };