|  |  |  | #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, 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();
 | 
					
						
							|  |  |  | }
 |