diff --git a/selfdrive/ui/qt/home.cc b/selfdrive/ui/qt/home.cc index 85c6c34267..0f54061f3c 100644 --- a/selfdrive/ui/qt/home.cc +++ b/selfdrive/ui/qt/home.cc @@ -34,6 +34,7 @@ HomeWindow::HomeWindow(QWidget* parent) : QWidget(parent) { slayout->addWidget(home); onroad = new OnroadWindow(this); + QObject::connect(onroad, &OnroadWindow::mapWindowShown, this, [=] { sidebar->hide(); }); slayout->addWidget(onroad); body = new BodyWindow(this); diff --git a/selfdrive/ui/qt/maps/map_panel.h b/selfdrive/ui/qt/maps/map_panel.h index abea77483a..2db0c0a0bf 100644 --- a/selfdrive/ui/qt/maps/map_panel.h +++ b/selfdrive/ui/qt/maps/map_panel.h @@ -12,6 +12,12 @@ public: bool isShowingMap() const; +private: + void showEvent(QShowEvent *event) { emit mapWindowShown(); }; + +signals: + void mapWindowShown(); + private: QStackedLayout *content_stack; }; diff --git a/selfdrive/ui/qt/onroad.cc b/selfdrive/ui/qt/onroad.cc index 8809e85ebb..75e306a4a1 100644 --- a/selfdrive/ui/qt/onroad.cc +++ b/selfdrive/ui/qt/onroad.cc @@ -92,6 +92,8 @@ void OnroadWindow::offroadTransition(bool offroad) { auto m = new MapPanel(get_mapbox_settings()); map = m; + QObject::connect(m, &MapPanel::mapWindowShown, this, &OnroadWindow::mapWindowShown); + m->setFixedWidth(topWidget(this)->width() / 2 - bdr_s); split->insertWidget(0, m); diff --git a/selfdrive/ui/qt/onroad.h b/selfdrive/ui/qt/onroad.h index 5a5a84f0e1..ad7baf96c0 100644 --- a/selfdrive/ui/qt/onroad.h +++ b/selfdrive/ui/qt/onroad.h @@ -115,6 +115,9 @@ public: OnroadWindow(QWidget* parent = 0); bool isMapVisible() const { return map && map->isVisible(); } +signals: + void mapWindowShown(); + private: void paintEvent(QPaintEvent *event); void mousePressEvent(QMouseEvent* e) override;