Storing radar site selection

This commit is contained in:
Dan Paulat 2022-10-08 09:29:00 -05:00
parent f473a02d1d
commit 6977119083
2 changed files with 34 additions and 1 deletions

View file

@ -27,7 +27,8 @@ public:
radarSiteModel_ {new model::RadarSiteModel(self_)},
proxyModel_ {new QSortFilterProxyModel(self_)},
mapPosition_ {},
mapUpdateDeferred_ {false}
mapUpdateDeferred_ {false},
selectedRadarSite_ {"?"}
{
proxyModel_->setSourceModel(radarSiteModel_);
proxyModel_->setSortRole(common::SortRole);
@ -42,6 +43,8 @@ public:
scwx::common::Coordinate mapPosition_;
bool mapUpdateDeferred_;
std::string selectedRadarSite_;
};
RadarSiteDialog::RadarSiteDialog(QWidget* parent) :
@ -74,6 +77,29 @@ RadarSiteDialog::RadarSiteDialog(QWidget* parent) :
{
ui->buttonBox->button(QDialogButtonBox::Ok)
->setEnabled(selected.size() > 0);
if (selected.size() > 0)
{
QModelIndex selectedIndex =
p->proxyModel_->mapToSource(selected[0].indexes()[0]);
QVariant variantData = p->radarSiteModel_->data(selectedIndex);
if (variantData.typeId() == QMetaType::QString)
{
p->selectedRadarSite_ =
variantData.toString().toStdString();
}
else
{
logger_->warn("Unexpected selection data type");
p->selectedRadarSite_ = "?";
}
}
else
{
p->selectedRadarSite_ = "?";
}
logger_->debug("Selected: {}", p->selectedRadarSite_);
});
}
@ -82,6 +108,11 @@ RadarSiteDialog::~RadarSiteDialog()
delete ui;
}
std::string RadarSiteDialog::radar_site() const
{
return p->selectedRadarSite_;
}
void RadarSiteDialog::showEvent(QShowEvent* event)
{
if (p->mapUpdateDeferred_)

View file

@ -24,6 +24,8 @@ public:
explicit RadarSiteDialog(QWidget* parent = nullptr);
~RadarSiteDialog();
std::string radar_site() const;
protected:
void showEvent(QShowEvent*) override;