Hide current speed in onroad UI

Added toggle to hide the current speed from the onroad UI and an additional function to enable/disable it by clicking on it via the onroad UI.
This commit is contained in:
FrogAi
2024-03-26 23:41:39 -07:00
parent 2bd2a74b2c
commit 6cbbfe4b9b
6 changed files with 25 additions and 3 deletions
+2
View File
@@ -282,6 +282,8 @@ std::unordered_map<std::string, uint32_t> keys = {
{"HideCEMStatusBar", PERSISTENT},
{"HideDisableOpenpilotLongitudinal", PERSISTENT},
{"HideLeadMarker", PERSISTENT},
{"HideSpeed", PERSISTENT},
{"HideSpeedUI", PERSISTENT},
{"IncreaseThermalLimits", PERSISTENT},
{"LaneLinesWidth", PERSISTENT},
{"LateralTune", PERSISTENT},
@@ -42,6 +42,7 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(SettingsWindow *parent) : FrogPilot
{"BigMap", tr("Big Map"), tr("Increase the size of the map in the onroad UI."), ""},
{"CameraView", tr("Camera View"), tr("Choose your preferred camera view for the onroad UI. This is purely a visual change and doesn't impact how openpilot drives."), ""},
{"DriverCamera", tr("Driver Camera On Reverse"), tr("Show the driver camera feed when in reverse."), ""},
{"HideSpeed", tr("Hide Speed"), tr("Hide the speed indicator in the onroad UI. Additional toggle allows it to be hidden/shown via tapping the speed itself."), ""},
};
for (const auto &[param, title, desc, icon] : visualToggles) {
@@ -172,6 +173,10 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(SettingsWindow *parent) : FrogPilot
std::vector<QString> mapToggles{"FullMap"};
std::vector<QString> mapToggleNames{tr("Full Map")};
toggle = new FrogPilotParamToggleControl(param, title, desc, icon, mapToggles, mapToggleNames);
} else if (param == "HideSpeed") {
std::vector<QString> hideSpeedToggles{"HideSpeedUI"};
std::vector<QString> hideSpeedToggleNames{tr("Control Via UI")};
toggle = new FrogPilotParamToggleControl(param, title, desc, icon, hideSpeedToggles, hideSpeedToggleNames);
} else {
toggle = new ParamControl(param, title, desc, icon, this);
@@ -28,7 +28,7 @@ private:
std::set<QString> customOnroadUIKeys = {"CustomPaths", "DeveloperUI", "FPSCounter", "LeadInfo"};
std::set<QString> customThemeKeys = {"CustomColors", "CustomIcons", "CustomSignals", "CustomSounds"};
std::set<QString> modelUIKeys = {"DynamicPathWidth", "HideLeadMarker", "LaneLinesWidth", "PathEdgeWidth", "PathWidth", "RoadEdgesWidth", "UnlimitedLength"};
std::set<QString> qolKeys = {"BigMap", "CameraView", "DriverCamera", "FullMap"};
std::set<QString> qolKeys = {"BigMap", "CameraView", "DriverCamera", "FullMap", "HideSpeed"};
std::set<QString> screenKeys = {};
std::map<std::string, ParamControl*> toggles;
+13 -2
View File
@@ -103,8 +103,19 @@ void OnroadWindow::mousePressEvent(QMouseEvent* e) {
// FrogPilot clickable widgets
bool widgetClicked = false;
// Hide speed button
QRect hideSpeedRect(rect().center().x() - 175, 50, 350, 350);
bool isSpeedClicked = hideSpeedRect.contains(e->pos()) && scene.hide_speed_ui;
if (isSpeedClicked) {
bool currentHideSpeed = scene.hide_speed;
uiState()->scene.hide_speed = !currentHideSpeed;
params.putBoolNonBlocking("HideSpeed", !currentHideSpeed);
widgetClicked = true;
// If the click wasn't for anything specific, change the value of "ExperimentalMode"
if (scene.experimental_mode_via_screen && e->pos() != timeoutPoint) {
} else if (scene.experimental_mode_via_screen && e->pos() != timeoutPoint) {
if (clickTimer.isActive()) {
clickTimer.stop();
@@ -557,7 +568,7 @@ void AnnotatedCameraWidget::drawHud(QPainter &p) {
}
// current speed
if (!bigMapOpen) {
if (!(scene.hide_speed || bigMapOpen)) {
p.setFont(InterFont(176, QFont::Bold));
drawText(p, rect().center().x(), 210, speedStr);
p.setFont(InterFont(66));
+2
View File
@@ -336,6 +336,8 @@ void ui_update_frogpilot_params(UIState *s) {
scene.full_map = scene.big_map && params.getBool("FullMap");
scene.camera_view = quality_of_life_visuals ? params.getInt("CameraView") : 0;
scene.driver_camera = quality_of_life_visuals && params.getBool("DriverCamera");
scene.hide_speed = quality_of_life_visuals && params.getBool("HideSpeed");
scene.hide_speed_ui = scene.hide_speed && params.getBool("HideSpeedUI");
}
void UIState::updateStatus() {
+2
View File
@@ -189,6 +189,8 @@ typedef struct UIScene {
bool full_map;
bool has_auto_tune;
bool hide_lead_marker;
bool hide_speed;
bool hide_speed_ui;
bool lead_info;
bool live_valid;
bool map_open;