#pragma once #include "selfdrive/ui/qt/offroad/settings.h" #include "frogpilot/ui/qt/offroad/frogpilot_settings.h" class DeveloperPanel : public QFrame { Q_OBJECT public: explicit DeveloperPanel(SettingsWindow *parent); void showEvent(QShowEvent *event) override; // FrogPilot variables signals: void openSubPanel(); void openSubSubPanel(); private: Params params; ParamControl* adbToggle; ParamControl* joystickToggle; ParamControl* longManeuverToggle; ParamControl* experimentalLongitudinalToggle; bool is_release; bool offroad = false; // FrogPilot variables bool forceOpenDescriptions = false; bool hasBSM = true; bool hasOpenpilotLongitudinal = true; bool hasRadar = true; int tuningLevel; std::map toggles; std::vector sidebarMetricsToggles; FrogPilotButtonsControl *sidebarMetricsToggle; FrogPilotButtonToggleControl *borderMetricsButton; FrogPilotManageControl *developerUIToggle; QJsonObject frogpilotToggleLevels; 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); };