#pragma once #include #include #include #include #include #include #include #include "selfdrive/ui/qt/widgets/controls.h" // ********** settings window + top-level panels ********** class SettingsWindow : public QFrame { Q_OBJECT public: explicit SettingsWindow(QWidget *parent = 0); protected: void hideEvent(QHideEvent *event) override; void showEvent(QShowEvent *event) override; signals: void closeSettings(); void reviewTrainingGuide(); void showDriverView(); private: QPushButton *sidebar_alert_widget; QWidget *sidebar_widget; QButtonGroup *nav_btns; QStackedWidget *panel_widget; }; class DevicePanel : public ListWidget { Q_OBJECT public: explicit DevicePanel(SettingsWindow *parent); signals: void reviewTrainingGuide(); void showDriverView(); private slots: void poweroff(); void reboot(); void updateCalibDescription(); private: Params params; }; class TogglesPanel : public ListWidget { Q_OBJECT public: explicit TogglesPanel(SettingsWindow *parent); }; class SoftwarePanel : public ListWidget { Q_OBJECT public: explicit SoftwarePanel(QWidget* parent = nullptr); private: void showEvent(QShowEvent *event) override; void updateLabels(); LabelControl *gitBranchLbl; LabelControl *gitCommitLbl; LabelControl *osVersionLbl; LabelControl *versionLbl; LabelControl *lastUpdateLbl; ButtonControl *updateBtn; Params params; QFileSystemWatcher *fs_watch; }; class C2NetworkPanel: public QWidget { Q_OBJECT public: explicit C2NetworkPanel(QWidget* parent = nullptr); private: void showEvent(QShowEvent *event) override; QString getIPAddress(); LabelControl *ipaddress; };