You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					107 lines
				
				2.2 KiB
			
		
		
			
		
	
	
					107 lines
				
				2.2 KiB
			| 
								 
											3 weeks ago
										 
									 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <map>
							 | 
						||
| 
								 | 
							
								#include <string>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <QButtonGroup>
							 | 
						||
| 
								 | 
							
								#include <QFrame>
							 | 
						||
| 
								 | 
							
								#include <QLabel>
							 | 
						||
| 
								 | 
							
								#include <QPushButton>
							 | 
						||
| 
								 | 
							
								#include <QStackedWidget>
							 | 
						||
| 
								 | 
							
								#include <QWidget>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "selfdrive/ui/ui.h"
							 | 
						||
| 
								 | 
							
								#include "selfdrive/ui/qt/util.h"
							 | 
						||
| 
								 | 
							
								#include "selfdrive/ui/qt/widgets/controls.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// ********** settings window + top-level panels **********
							 | 
						||
| 
								 | 
							
								class SettingsWindow : public QFrame {
							 | 
						||
| 
								 | 
							
								  Q_OBJECT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								  explicit SettingsWindow(QWidget *parent = 0);
							 | 
						||
| 
								 | 
							
								  void setCurrentPanel(int index, const QString ¶m = "");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								protected:
							 | 
						||
| 
								 | 
							
								  void showEvent(QShowEvent *event) override;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								signals:
							 | 
						||
| 
								 | 
							
								  void closeSettings();
							 | 
						||
| 
								 | 
							
								  void reviewTrainingGuide();
							 | 
						||
| 
								 | 
							
								  void showDriverView();
							 | 
						||
| 
								 | 
							
								  void expandToggleDescription(const QString ¶m);
							 | 
						||
| 
								 | 
							
								  void scrollToToggle(const QString ¶m);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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;
							 | 
						||
| 
								 | 
							
								  ButtonControl *pair_device;
							 | 
						||
| 
								 | 
							
								  ButtonControl *resetCalibBtn;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TogglesPanel : public ListWidget {
							 | 
						||
| 
								 | 
							
								  Q_OBJECT
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								  explicit TogglesPanel(SettingsWindow *parent);
							 | 
						||
| 
								 | 
							
								  void showEvent(QShowEvent *event) override;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public slots:
							 | 
						||
| 
								 | 
							
								  void expandToggleDescription(const QString ¶m);
							 | 
						||
| 
								 | 
							
								  void scrollToToggle(const QString ¶m);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private slots:
							 | 
						||
| 
								 | 
							
								  void updateState(const UIState &s);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								  Params params;
							 | 
						||
| 
								 | 
							
								  std::map<std::string, ParamControl*> toggles;
							 | 
						||
| 
								 | 
							
								  ButtonParamControl *long_personality_setting;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void updateToggles();
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SoftwarePanel : public ListWidget {
							 | 
						||
| 
								 | 
							
								  Q_OBJECT
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								  explicit SoftwarePanel(QWidget* parent = nullptr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								  void showEvent(QShowEvent *event) override;
							 | 
						||
| 
								 | 
							
								  void updateLabels();
							 | 
						||
| 
								 | 
							
								  void checkForUpdates();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  bool is_onroad = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  QLabel *onroadLbl;
							 | 
						||
| 
								 | 
							
								  LabelControl *versionLbl;
							 | 
						||
| 
								 | 
							
								  ButtonControl *installBtn;
							 | 
						||
| 
								 | 
							
								  ButtonControl *downloadBtn;
							 | 
						||
| 
								 | 
							
								  ButtonControl *targetBranchBtn;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Params params;
							 | 
						||
| 
								 | 
							
								  ParamWatcher *fs_watch;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Forward declaration
							 | 
						||
| 
								 | 
							
								class FirehosePanel;
							 |