UI: Indicate when Nav on OP is enabled (#28665)

* Indicate whether nav is enabled in UI

* update border spacing on both enabled and navEnabled change

* update less

* more

* cleanup

* simplify

* fix

---------

Co-authored-by: Cameron Clough <cameronjclough@gmail.com>
old-commit-hash: a66135665c
beeps
Mitchell Goff 2 years ago committed by GitHub
parent d663b5843e
commit 6a21c44d90
  1. 21
      selfdrive/ui/qt/onroad.cc
  2. 1
      selfdrive/ui/qt/onroad.h

@ -64,9 +64,20 @@ void OnroadWindow::updateState(const UIState &s) {
nvg->updateState(s);
if (bg != bgColor) {
// update spacing
bool navDisabledNow = (*s.sm)["controlsState"].getControlsState().getEnabled() &&
!(*s.sm)["modelV2"].getModelV2().getNavEnabled();
if (navDisabled != navDisabledNow) {
split->setSpacing(navDisabledNow ? bdr_s * 2 : 0);
if (map) {
map->setFixedWidth(topWidget(this)->width() / 2 - bdr_s * (navDisabledNow ? 2 : 1));
}
}
// repaint border
if (bg != bgColor || navDisabled != navDisabledNow) {
bg = bgColor;
navDisabled = navDisabledNow;
update();
}
}
@ -79,6 +90,7 @@ void OnroadWindow::mousePressEvent(QMouseEvent* e) {
return;
}
map->setVisible(!sidebarVisible && !map->isVisible());
update();
}
#endif
// propagation event to parent(HomeWindow)
@ -109,6 +121,13 @@ void OnroadWindow::offroadTransition(bool offroad) {
void OnroadWindow::paintEvent(QPaintEvent *event) {
QPainter p(this);
p.fillRect(rect(), QColor(bg.red(), bg.green(), bg.blue(), 255));
if (isMapVisible() && navDisabled) {
QRect map_r = uiState()->scene.map_on_left
? QRect(0, 0, width() / 2, height())
: QRect(width() / 2, 0, width() / 2, height());
p.fillRect(map_r, bg_colors[STATUS_DISENGAGED]);
}
}
// ***** onroad widgets *****

@ -128,6 +128,7 @@ private:
QColor bg = bg_colors[STATUS_DISENGAGED];
QWidget *map = nullptr;
QHBoxLayout* split;
bool navDisabled = false;
private slots:
void offroadTransition(bool offroad);

Loading…
Cancel
Save