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_)}, radarSiteModel_ {new model::RadarSiteModel(self_)},
proxyModel_ {new QSortFilterProxyModel(self_)}, proxyModel_ {new QSortFilterProxyModel(self_)},
mapPosition_ {}, mapPosition_ {},
mapUpdateDeferred_ {false} mapUpdateDeferred_ {false},
selectedRadarSite_ {"?"}
{ {
proxyModel_->setSourceModel(radarSiteModel_); proxyModel_->setSourceModel(radarSiteModel_);
proxyModel_->setSortRole(common::SortRole); proxyModel_->setSortRole(common::SortRole);
@ -42,6 +43,8 @@ public:
scwx::common::Coordinate mapPosition_; scwx::common::Coordinate mapPosition_;
bool mapUpdateDeferred_; bool mapUpdateDeferred_;
std::string selectedRadarSite_;
}; };
RadarSiteDialog::RadarSiteDialog(QWidget* parent) : RadarSiteDialog::RadarSiteDialog(QWidget* parent) :
@ -74,6 +77,29 @@ RadarSiteDialog::RadarSiteDialog(QWidget* parent) :
{ {
ui->buttonBox->button(QDialogButtonBox::Ok) ui->buttonBox->button(QDialogButtonBox::Ok)
->setEnabled(selected.size() > 0); ->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; delete ui;
} }
std::string RadarSiteDialog::radar_site() const
{
return p->selectedRadarSite_;
}
void RadarSiteDialog::showEvent(QShowEvent* event) void RadarSiteDialog::showEvent(QShowEvent* event)
{ {
if (p->mapUpdateDeferred_) if (p->mapUpdateDeferred_)

View file

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