# 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 QMapLibre : : Settings & 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 , this , [ = ] ( ) {
content_stack - > setCurrentIndex ( 0 ) ;
} ) ;
QObject : : connect ( map , & MapWindow : : requestVisible , this , [ = ] ( 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 , [ = ] ( bool settings ) {
content_stack - > setCurrentIndex ( settings ? 1 : 0 ) ;
} ) ;
content_stack - > addWidget ( map ) ;
auto settings = new MapSettings ( true , parent ) ;
QObject : : connect ( settings , & MapSettings : : closeSettings , this , [ = ] ( ) {
content_stack - > setCurrentIndex ( 0 ) ;
} ) ;
content_stack - > addWidget ( settings ) ;
}
void MapPanel : : toggleMapSettings ( ) {
// show settings if not visible, then toggle between map and settings
int new_index = isVisible ( ) ? ( 1 - content_stack - > currentIndex ( ) ) : 1 ;
content_stack - > setCurrentIndex ( new_index ) ;
emit mapPanelRequested ( ) ;
show ( ) ;
}