UI: double click to switch between body and onroad views (#24214)

* UI: double click to switch between body and onroad views

* fix that

* Update selfdrive/ui/qt/home.cc

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 639255bd10
taco
Adeeb Shihadeh 3 years ago committed by GitHub
parent d2edbf520b
commit 6371a16f4e
  1. 2
      selfdrive/ui/qt/body.cc
  2. 15
      selfdrive/ui/qt/home.cc
  3. 1
      selfdrive/ui/qt/home.h

@ -14,6 +14,8 @@ BodyWindow::BodyWindow(QWidget *parent) : QLabel(parent) {
setAlignment(Qt::AlignCenter); setAlignment(Qt::AlignCenter);
setAttribute(Qt::WA_TransparentForMouseEvents, true);
QObject::connect(uiState(), &UIState::uiUpdate, this, &BodyWindow::updateState); QObject::connect(uiState(), &UIState::uiUpdate, this, &BodyWindow::updateState);
} }

@ -32,6 +32,7 @@ HomeWindow::HomeWindow(QWidget* parent) : QWidget(parent) {
body = new BodyWindow(this); body = new BodyWindow(this);
slayout->addWidget(body); slayout->addWidget(body);
body->setEnabled(false);
driver_view = new DriverViewWindow(this); driver_view = new DriverViewWindow(this);
connect(driver_view, &DriverViewWindow::done, [=] { connect(driver_view, &DriverViewWindow::done, [=] {
@ -51,7 +52,8 @@ void HomeWindow::updateState(const UIState &s) {
const SubMaster &sm = *(s.sm); const SubMaster &sm = *(s.sm);
// switch to the generic robot UI // switch to the generic robot UI
if (onroad->isVisible() && sm["carParams"].getCarParams().getNotCar()) { if (onroad->isVisible() && !body->isEnabled() && sm["carParams"].getCarParams().getNotCar()) {
body->setEnabled(true);
slayout->setCurrentWidget(body); slayout->setCurrentWidget(body);
} }
} }
@ -82,6 +84,17 @@ void HomeWindow::mousePressEvent(QMouseEvent* e) {
} }
} }
void HomeWindow::mouseDoubleClickEvent(QMouseEvent* e) {
const SubMaster &sm = *(uiState()->sm);
if (sm["carParams"].getCarParams().getNotCar()) {
if (onroad->isVisible()) {
slayout->setCurrentWidget(body);
} else if (body->isVisible()) {
slayout->setCurrentWidget(onroad);
}
}
}
// OffroadHome: the offroad home page // OffroadHome: the offroad home page
OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) { OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) {

@ -51,6 +51,7 @@ public slots:
protected: protected:
void mousePressEvent(QMouseEvent* e) override; void mousePressEvent(QMouseEvent* e) override;
void mouseDoubleClickEvent(QMouseEvent* e) override;
private: private:
Sidebar *sidebar; Sidebar *sidebar;

Loading…
Cancel
Save