#pragma once #include "selfdrive/ui/qt/offroad/settings.h" #include "starpilot/ui/qt/offroad/starpilot_settings.h" class DeveloperPanel : public QFrame { Q_OBJECT public: explicit DeveloperPanel(SettingsWindow *parent); void showEvent(QShowEvent *event) override; signals: void openSubPanel(); void openSubSubPanel(); void showAllTogglesChanged(); private: Params params; ParamControl* adbToggle; ParamControl* joystickToggle; ParamControl* longManeuverToggle; ParamControl* experimentalLongitudinalToggle; bool is_release; bool offroad = false; bool forceOpenDescriptions = false; bool hasBSM = true; bool hasOpenpilotLongitudinal = true; bool hasRadar = true; int tuningLevel; std::map toggles; std::vector sidebarMetricsToggles; StarPilotButtonsControl *sidebarMetricsToggle; StarPilotButtonToggleControl *borderMetricsButton; StarPilotManageControl *developerUIToggle; QJsonObject starpilotToggleLevels; QSet developerMetricKeys = {"AdjacentPathMetrics", "BorderMetrics", "FPSCounter", "LeadInfo", "NumericalTemp", "SidebarMetrics", "UseSI"}; QSet developerSidebarKeys = {"DeveloperSidebarMetric1", "DeveloperSidebarMetric2", "DeveloperSidebarMetric3", "DeveloperSidebarMetric4", "DeveloperSidebarMetric5", "DeveloperSidebarMetric6", "DeveloperSidebarMetric7"}; QSet developerUIKeys = {"DeveloperMetrics", "DeveloperSidebar", "DeveloperWidgets"}; QSet developerWidgetKeys = {"AdjacentLeadsUI", "RadarTracksUI", "ShowStoppingPoint"}; QSet parentKeys; QStackedLayout *mainLayout; QWidget *mainWidget; ScrollView *developerMetricPanel; ScrollView *developerSidebarPanel; ScrollView *developerUIPanel; ScrollView *developerWidgetPanel; private slots: void updateToggles(bool _offroad); };