mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 17:40:05 +00:00
Add available products to Level 3 Products Widget
This commit is contained in:
parent
7e084d28e9
commit
e69f9a8008
3 changed files with 167 additions and 24 deletions
|
|
@ -73,6 +73,7 @@ public:
|
|||
~MainWindowImpl() = default;
|
||||
|
||||
void ConfigureMapLayout();
|
||||
void ConnectMapSignals();
|
||||
void HandleFocusChange(QWidget* focused);
|
||||
void SelectElevation(map::MapWidget* mapWidget, float elevation);
|
||||
void SelectRadarProduct(map::MapWidget* mapWidget,
|
||||
|
|
@ -80,6 +81,7 @@ public:
|
|||
const std::string& productName,
|
||||
int16_t productCode);
|
||||
void SetActiveMap(map::MapWidget* mapWidget);
|
||||
void UpdateAvailableLevel3Products();
|
||||
void UpdateElevationSelection(float elevation);
|
||||
void UpdateRadarProductSelection(common::RadarProductGroup group,
|
||||
const std::string& product);
|
||||
|
|
@ -151,6 +153,8 @@ MainWindow::MainWindow(QWidget* parent) :
|
|||
0);
|
||||
}
|
||||
|
||||
p->ConnectMapSignals();
|
||||
|
||||
connect(qApp,
|
||||
&QApplication::focusChanged,
|
||||
this,
|
||||
|
|
@ -301,29 +305,6 @@ void MainWindowImpl::ConfigureMapLayout()
|
|||
if (maps_.at(mapIndex) == nullptr)
|
||||
{
|
||||
maps_[mapIndex] = new map::MapWidget(settings_);
|
||||
|
||||
connect(maps_[mapIndex],
|
||||
&map::MapWidget::MapParametersChanged,
|
||||
this,
|
||||
&MainWindowImpl::UpdateMapParameters);
|
||||
|
||||
connect(
|
||||
maps_[mapIndex],
|
||||
&map::MapWidget::RadarSweepUpdated,
|
||||
this,
|
||||
[=]()
|
||||
{
|
||||
if (maps_[mapIndex] == activeMap_)
|
||||
{
|
||||
UpdateRadarProductSelection(
|
||||
activeMap_->GetRadarProductGroup(),
|
||||
activeMap_->GetRadarProductName());
|
||||
UpdateRadarProductSettings();
|
||||
UpdateRadarSite();
|
||||
UpdateVcp();
|
||||
}
|
||||
},
|
||||
Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
hs->addWidget(maps_[mapIndex]);
|
||||
|
|
@ -337,6 +318,50 @@ void MainWindowImpl::ConfigureMapLayout()
|
|||
SetActiveMap(maps_.at(0));
|
||||
}
|
||||
|
||||
void MainWindowImpl::ConnectMapSignals()
|
||||
{
|
||||
std::for_each(maps_.cbegin(),
|
||||
maps_.cend(),
|
||||
[&](auto& mapWidget)
|
||||
{
|
||||
connect(mapWidget,
|
||||
&map::MapWidget::MapParametersChanged,
|
||||
this,
|
||||
&MainWindowImpl::UpdateMapParameters);
|
||||
|
||||
connect(
|
||||
mapWidget,
|
||||
&map::MapWidget::RadarSweepUpdated,
|
||||
this,
|
||||
[&]()
|
||||
{
|
||||
if (mapWidget == activeMap_)
|
||||
{
|
||||
UpdateRadarProductSelection(
|
||||
mapWidget->GetRadarProductGroup(),
|
||||
mapWidget->GetRadarProductName());
|
||||
UpdateRadarProductSettings();
|
||||
UpdateRadarSite();
|
||||
UpdateVcp();
|
||||
}
|
||||
},
|
||||
Qt::QueuedConnection);
|
||||
|
||||
connect(
|
||||
mapWidget,
|
||||
&map::MapWidget::Level3ProductsChanged,
|
||||
this,
|
||||
[&]()
|
||||
{
|
||||
if (mapWidget == activeMap_)
|
||||
{
|
||||
UpdateAvailableLevel3Products();
|
||||
}
|
||||
},
|
||||
Qt::QueuedConnection);
|
||||
});
|
||||
}
|
||||
|
||||
void MainWindowImpl::HandleFocusChange(QWidget* focused)
|
||||
{
|
||||
map::MapWidget* mapWidget = dynamic_cast<map::MapWidget*>(focused);
|
||||
|
|
@ -344,6 +369,7 @@ void MainWindowImpl::HandleFocusChange(QWidget* focused)
|
|||
if (mapWidget != nullptr)
|
||||
{
|
||||
SetActiveMap(mapWidget);
|
||||
UpdateAvailableLevel3Products();
|
||||
UpdateRadarProductSelection(mapWidget->GetRadarProductGroup(),
|
||||
mapWidget->GetRadarProductName());
|
||||
UpdateRadarProductSettings();
|
||||
|
|
@ -395,6 +421,12 @@ void MainWindowImpl::SetActiveMap(map::MapWidget* mapWidget)
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindowImpl::UpdateAvailableLevel3Products()
|
||||
{
|
||||
level3ProductsWidget_->UpdateAvailableProducts(
|
||||
activeMap_->GetAvailableLevel3Categories());
|
||||
}
|
||||
|
||||
void MainWindowImpl::UpdateElevationSelection(float elevation)
|
||||
{
|
||||
level2SettingsWidget_->UpdateElevationSelection(elevation);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue