diff --git a/selfdrive/ui/qt/maps/map_panel.cc b/selfdrive/ui/qt/maps/map_panel.cc index 20f666a248..a22e323a6b 100644 --- a/selfdrive/ui/qt/maps/map_panel.cc +++ b/selfdrive/ui/qt/maps/map_panel.cc @@ -17,15 +17,16 @@ MapPanel::MapPanel(const QMapboxGLSettings &mapboxSettings, QWidget *parent) : Q QObject::connect(device(), &Device::interactiveTimeout, [=]() { content_stack->setCurrentIndex(0); }); - QObject::connect(map, &MapWindow::requestVisible, [=](bool visible) { - // when we show the map for a new route, signal HomeWindow to hide the sidebar - if (visible) { emit mapPanelRequested(); } - setVisible(visible); - }); -// QObject::connect(map, &MapWindow::requestSettings, this, &MapPanel::requestMapSettings); - QObject::connect(map, &MapWindow::requestSettings, [=](bool settings) { - content_stack->setCurrentIndex(settings ? 1 : 0); - }); + QObject::connect(map, &MapWindow::requestVisible, this, &MapPanel::requestVisible); +// QObject::connect(map, &MapWindow::requestVisible, [=](bool visible) { +// // when we show the map for a new route, signal HomeWindow to hide the sidebar +// if (visible) { emit mapPanelRequested(); } +// setVisible(visible); +// }); + QObject::connect(map, &MapWindow::requestSettings, this, &MapPanel::requestMapSettings); +// QObject::connect(map, &MapWindow::requestSettings, [=](bool settings) { +// content_stack->setCurrentIndex(settings ? 1 : 0); +// }); content_stack->addWidget(map); auto settings = new MapSettings(true, parent); @@ -35,14 +36,30 @@ MapPanel::MapPanel(const QMapboxGLSettings &mapboxSettings, QWidget *parent) : Q content_stack->addWidget(settings); } +void MapPanel::requestVisible(bool visible) { + if (visible != isVisible()) { + // signal HomeWindow to hide the sidebar and switch to map window if showing + // TODO: perhaps showEvent is better + if (visible) { + emit mapPanelRequested(); + content_stack->setCurrentIndex(0); + } + setVisible(visible); + } +} + void MapPanel::toggleMapSettings() { - emit mapPanelRequested(); - setVisible(true); + requestVisible(true); +// if (!isVisible()) { +// emit mapPanelRequested(); qDebug() << "emit mapPanelRequested()"; +// setVisible(true); +// } content_stack->setCurrentIndex((content_stack->currentIndex() + 1) % 2); } -void MapPanel::requestMapSettings(bool settings) { // TODO rename requestMapSettings - emit mapPanelRequested(); - setVisible(true); - content_stack->setCurrentIndex(1); +void MapPanel::requestMapSettings(bool settings) { + content_stack->setCurrentIndex(settings ? 1 : 0); +// emit mapPanelRequested(); +// setVisible(true); +// content_stack->setCurrentIndex(1); } diff --git a/selfdrive/ui/qt/maps/map_panel.h b/selfdrive/ui/qt/maps/map_panel.h index f10e1516ec..be4420a323 100644 --- a/selfdrive/ui/qt/maps/map_panel.h +++ b/selfdrive/ui/qt/maps/map_panel.h @@ -14,6 +14,7 @@ signals: void mapPanelRequested(); public slots: + void requestVisible(bool visible); void requestMapSettings(bool settings); void toggleMapSettings(); diff --git a/selfdrive/ui/qt/onroad.cc b/selfdrive/ui/qt/onroad.cc index f367ae9eba..1997534e6a 100644 --- a/selfdrive/ui/qt/onroad.cc +++ b/selfdrive/ui/qt/onroad.cc @@ -92,8 +92,7 @@ void OnroadWindow::offroadTransition(bool offroad) { map = m; QObject::connect(m, &MapPanel::mapPanelRequested, this, &OnroadWindow::mapPanelRequested); -// QObject::connect(nvg, &AnnotatedCameraWidget::mapSettingsRequested, m, &MapPanel::mapSettingsRequested); - QObject::connect(nvg, &AnnotatedCameraWidget::mapSettingsRequested, m, &MapPanel::toggleMapSettings); + QObject::connect(nvg, &AnnotatedCameraWidget::toggleMapSettings, m, &MapPanel::toggleMapSettings); m->setFixedWidth(topWidget(this)->width() / 2 - UI_BORDER_SIZE); split->insertWidget(0, m); @@ -257,7 +256,7 @@ AnnotatedCameraWidget::AnnotatedCameraWidget(VisionStreamType type, QWidget* par main_layout->addWidget(experimental_btn, 0, Qt::AlignTop | Qt::AlignRight); map_settings_btn = new MapSettingsButton(this); - QObject::connect(map_settings_btn, &MapSettingsButton::clicked, this, &AnnotatedCameraWidget::mapSettingsRequested); + QObject::connect(map_settings_btn, &MapSettingsButton::clicked, this, &AnnotatedCameraWidget::toggleMapSettings); main_layout->addWidget(map_settings_btn, 0, Qt::AlignBottom | Qt::AlignRight); dm_img = loadPixmap("../assets/img_driver_face.png", {img_size + 5, img_size + 5}); diff --git a/selfdrive/ui/qt/onroad.h b/selfdrive/ui/qt/onroad.h index e00b85d234..a3725621fa 100644 --- a/selfdrive/ui/qt/onroad.h +++ b/selfdrive/ui/qt/onroad.h @@ -55,7 +55,7 @@ public: explicit MapSettingsButton(QWidget *parent = 0); signals: - void mapSettingsRequested(); + void toggleMapSettings(); private: void paintEvent(QPaintEvent *event) override; @@ -85,7 +85,7 @@ public: void updateState(const UIState &s); signals: - void mapSettingsRequested(); + void toggleMapSettings(); private: void drawIcon(QPainter &p, int x, int y, QPixmap &img, QBrush bg, float opacity);