#pragma once #include "frogpilot/ui/qt/offroad/frogpilot_settings.h" class FrogPilotVisualsPanel : public FrogPilotListWidget { Q_OBJECT public: explicit FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent); signals: void openSubPanel(); void openSubSubPanel(); protected: void showEvent(QShowEvent *event) override; private: void updateMetric(bool metric, bool bootRun); void updateToggles(); bool developerUIOpen; bool forceOpenDescriptions; bool hasAutoTune; bool hasBSM; bool hasOpenpilotLongitudinal; bool hasRadar; int tuningLevel; std::map toggles; QSet advancedCustomOnroadUIKeys = {"HideAlerts", "HideLeadMarker", "HideMapIcon", "HideMaxSpeed", "HideSpeed", "HideSpeedLimit", "WheelSpeed"}; QSet customOnroadUIKeys = {"AccelerationPath", "AdjacentPath", "BlindSpotPath", "Compass", "OnroadDistanceButton", "PedalsOnUI", "RotatingWheel"}; 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 modelUIKeys = {"DynamicPathWidth", "LaneLinesWidth", "PathEdgeWidth", "PathWidth", "RoadEdgesWidth", "UnlimitedLength"}; QSet navigationUIKeys = {"BigMap", "MapStyle", "RoadNameUI", "ShowSpeedLimits", "SLCMapboxFiller", "UseVienna"}; QSet qualityOfLifeKeys = {"CameraView", "DriverCamera", "StoppedTimer"}; QSet parentKeys; std::vector sidebarMetricsToggles; FrogPilotButtonsControl *sidebarMetricsToggle; FrogPilotButtonToggleControl *borderMetricsButton; FrogPilotSettingsWindow *parent; Params params; QJsonObject frogpilotToggleLevels; };