mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-30 21:30:05 +00:00 
			
		
		
		
	Allow selection of the active map
This commit is contained in:
		
							parent
							
								
									4485b915c1
								
							
						
					
					
						commit
						b2e75f3c1f
					
				
					 1 changed files with 34 additions and 7 deletions
				
			
		|  | @ -40,12 +40,14 @@ public: | ||||||
|    ~MainWindowImpl() = default; |    ~MainWindowImpl() = default; | ||||||
| 
 | 
 | ||||||
|    void ConfigureMapLayout(); |    void ConfigureMapLayout(); | ||||||
|  |    void HandleFocusChange(QWidget* focused); | ||||||
|    void InitializeConnections(); |    void InitializeConnections(); | ||||||
|    void SelectElevation(map::MapWidget* mapWidget, float elevation); |    void SelectElevation(map::MapWidget* mapWidget, float elevation); | ||||||
|    void SelectRadarProduct(map::MapWidget*       mapWidget, |    void SelectRadarProduct(map::MapWidget*       mapWidget, | ||||||
|                            common::Level2Product product); |                            common::Level2Product product); | ||||||
|  |    void SetActiveMap(map::MapWidget* mapWidget); | ||||||
|    void UpdateElevationSelection(float elevation); |    void UpdateElevationSelection(float elevation); | ||||||
|    void UpdateRadarProductSettings(map::MapWidget* mapWidget); |    void UpdateRadarProductSettings(); | ||||||
| 
 | 
 | ||||||
|    MainWindow*       mainWindow_; |    MainWindow*       mainWindow_; | ||||||
|    QMapboxGLSettings settings_; |    QMapboxGLSettings settings_; | ||||||
|  | @ -105,6 +107,11 @@ MainWindow::MainWindow(QWidget* parent) : | ||||||
|    { |    { | ||||||
|       p->SelectRadarProduct(p->maps_.at(1), common::Level2Product::Velocity); |       p->SelectRadarProduct(p->maps_.at(1), common::Level2Product::Velocity); | ||||||
|    } |    } | ||||||
|  | 
 | ||||||
|  |    connect(qApp, | ||||||
|  |            &QApplication::focusChanged, | ||||||
|  |            this, | ||||||
|  |            [=](QWidget* old, QWidget* now) { p->HandleFocusChange(now); }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| MainWindow::~MainWindow() | MainWindow::~MainWindow() | ||||||
|  | @ -230,7 +237,17 @@ void MainWindowImpl::ConfigureMapLayout() | ||||||
| 
 | 
 | ||||||
|    mainWindow_->ui->centralwidget->layout()->addWidget(vs); |    mainWindow_->ui->centralwidget->layout()->addWidget(vs); | ||||||
| 
 | 
 | ||||||
|    activeMap_ = maps_.at(0); |    SetActiveMap(maps_.at(0)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void MainWindowImpl::HandleFocusChange(QWidget* focused) | ||||||
|  | { | ||||||
|  |    map::MapWidget* mapWidget = dynamic_cast<map::MapWidget*>(focused); | ||||||
|  | 
 | ||||||
|  |    if (mapWidget != nullptr) | ||||||
|  |    { | ||||||
|  |       SetActiveMap(mapWidget); | ||||||
|  |    } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MainWindowImpl::InitializeConnections() | void MainWindowImpl::InitializeConnections() | ||||||
|  | @ -239,7 +256,7 @@ void MainWindowImpl::InitializeConnections() | ||||||
|       activeMap_, |       activeMap_, | ||||||
|       &map::MapWidget::RadarSweepUpdated, |       &map::MapWidget::RadarSweepUpdated, | ||||||
|       this, |       this, | ||||||
|       [this]() { UpdateRadarProductSettings(activeMap_); }, |       [this]() { UpdateRadarProductSettings(); }, | ||||||
|       Qt::QueuedConnection); |       Qt::QueuedConnection); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -282,6 +299,16 @@ void MainWindowImpl::SelectRadarProduct(map::MapWidget*       mapWidget, | ||||||
|    mapWidget->SelectRadarProduct(product); |    mapWidget->SelectRadarProduct(product); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void MainWindowImpl::SetActiveMap(map::MapWidget* mapWidget) | ||||||
|  | { | ||||||
|  |    if (mapWidget == activeMap_) | ||||||
|  |    { | ||||||
|  |       return; | ||||||
|  |    } | ||||||
|  | 
 | ||||||
|  |    activeMap_ = mapWidget; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void MainWindowImpl::UpdateElevationSelection(float elevation) | void MainWindowImpl::UpdateElevationSelection(float elevation) | ||||||
| { | { | ||||||
|    QString buttonText {QString::number(elevation, 'f', 1) + |    QString buttonText {QString::number(elevation, 'f', 1) + | ||||||
|  | @ -312,10 +339,10 @@ void MainWindowImpl::UpdateMapParameters( | ||||||
|    } |    } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MainWindowImpl::UpdateRadarProductSettings(map::MapWidget* mapWidget) | void MainWindowImpl::UpdateRadarProductSettings() | ||||||
| { | { | ||||||
|    float              currentElevation = mapWidget->GetElevation(); |    float              currentElevation = activeMap_->GetElevation(); | ||||||
|    std::vector<float> elevationCuts    = mapWidget->GetElevationCuts(); |    std::vector<float> elevationCuts    = activeMap_->GetElevationCuts(); | ||||||
| 
 | 
 | ||||||
|    if (elevationCuts_ != elevationCuts) |    if (elevationCuts_ != elevationCuts) | ||||||
|    { |    { | ||||||
|  | @ -336,7 +363,7 @@ void MainWindowImpl::UpdateRadarProductSettings(map::MapWidget* mapWidget) | ||||||
|          layout->addWidget(toolButton); |          layout->addWidget(toolButton); | ||||||
| 
 | 
 | ||||||
|          connect(toolButton, &QToolButton::clicked, this, [=]() { |          connect(toolButton, &QToolButton::clicked, this, [=]() { | ||||||
|             SelectElevation(mapWidget, elevationCut); |             SelectElevation(activeMap_, elevationCut); | ||||||
|          }); |          }); | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat