From 569a9216db77e650ec55a3062724d7c881cab60e Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Sat, 20 Sep 2025 17:36:13 -0400 Subject: [PATCH] ui: only draw speed limit offset when speed limit is valid (#1270) --- selfdrive/ui/sunnypilot/qt/onroad/hud.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/selfdrive/ui/sunnypilot/qt/onroad/hud.cc b/selfdrive/ui/sunnypilot/qt/onroad/hud.cc index 991710bbf..680542239 100644 --- a/selfdrive/ui/sunnypilot/qt/onroad/hud.cc +++ b/selfdrive/ui/sunnypilot/qt/onroad/hud.cc @@ -333,15 +333,16 @@ void HudRendererSP::drawStandstillTimer(QPainter &p, int x, int y) { } void HudRendererSP::drawSpeedLimitSigns(QPainter &p) { + bool speedLimitValid = speedLimit > 0; int speedLimitRounded = std::nearbyint(speedLimit); bool overspeed = speedLimitRounded < std::nearbyint(speed) && speedLimitRounded > 0; bool speedLimitWarningEnabled = speedLimitMode == SpeedLimitMode::WARNING; - QString speedLimitStr = speedLimit > 0 ? QString::number(speedLimitRounded) : "---"; + QString speedLimitStr = speedLimitValid ? QString::number(speedLimitRounded) : "---"; // Offset display text QString speedLimitSubText = ""; if (speedLimitOffset != 0) { - speedLimitSubText = (speedLimitOffset > 0 ? "+" : "") + QString::number(std::nearbyint(speedLimitOffset)); + speedLimitSubText = (speedLimitOffset > 0 ? "+" : "-") + QString::number(std::nearbyint(speedLimitOffset)); } // Position next to MAX speed box @@ -392,7 +393,7 @@ void HudRendererSP::drawSpeedLimitSigns(QPainter &p) { p.drawText(center_circle, Qt::AlignCenter, speedLimitStr); // Offset value in small circular box - if (!speedLimitSubText.isEmpty()) { + if (!speedLimitSubText.isEmpty() && speedLimitValid) { int offset_circle_size = circle_size * 0.4; int overlap = offset_circle_size * 0.25; QRect offset_circle_rect( @@ -437,7 +438,7 @@ void HudRendererSP::drawSpeedLimitSigns(QPainter &p) { p.drawText(inner_rect.adjusted(0, 80, 0, 0), Qt::AlignTop | Qt::AlignHCenter, speedLimitStr); // Offset value in small box - if (!speedLimitSubText.isEmpty()) { + if (!speedLimitSubText.isEmpty() && speedLimitValid) { int offset_box_size = sign_rect.width() * 0.4; int overlap = offset_box_size * 0.25; QRect offset_box_rect(