# include "selfdrive/ui/qt/maps/map_panel.h"
# include <QHBoxLayout>
# include <QWidget>
# include "selfdrive/ui/qt/maps/map.h"
# include "selfdrive/ui/qt/maps/map_settings.h"
# include "selfdrive/ui/qt/util.h"
# include "selfdrive/ui/ui.h"
MapPanel : : MapPanel ( const QMapboxGLSettings & mapboxSettings , QWidget * parent ) : QFrame ( parent ) {
content_stack = new QStackedLayout ( this ) ;
content_stack - > setContentsMargins ( 0 , 0 , 0 , 0 ) ;
auto map = new MapWindow ( mapboxSettings ) ;
QObject : : connect ( uiState ( ) , & UIState : : offroadTransition , map , & MapWindow : : offroadTransition ) ;
QObject : : connect ( device ( ) , & Device : : interactiveTimeout , [ = ] ( ) {
content_stack - > setCurrentIndex ( 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 ) ;
QObject : : connect ( settings , & MapSettings : : closeSettings , [ = ] ( ) {
content_stack - > setCurrentIndex ( 0 ) ;
} ) ;
content_stack - > addWidget ( settings ) ;
}
void MapPanel : : requestVisible ( bool visible ) {
if ( visible & & ! isVisible ( ) ) {
qDebug ( ) < < " emit mapPanelRequested() " ;
emit mapPanelRequested ( ) ;
}
// if (visible != isVisible()) {
// // signal HomeWindow to hide the sidebar and switch to map window if showing
// if (visible) {
// emit mapPanelRequested();
// content_stack->setCurrentIndex(0);
// }
// setVisible(visible);
// }
setVisible ( visible ) ;
}
void MapPanel : : toggleMapSettings ( ) {
// emit mapPanelRequested();
// setVisible(true);
requestVisible ( true ) ;
// requestVisible(true);
// if (!isVisible()) {
// emit mapPanelRequested(); qDebug() << "emit mapPanelRequested()";
// setVisible(true);
// }
int index = isVisible ( ) ? ( ( content_stack - > currentIndex ( ) + 1 ) % 2 ) : 1 ;
content_stack - > setCurrentIndex ( index ) ;
}
//void MapPanel::requestMapSettings(bool settings) {
// content_stack->setCurrentIndex(settings ? 1 : 0);
//// emit mapPanelRequested();
//// setVisible(true);
//// content_stack->setCurrentIndex(1);
//}