From 6977119083f2601516d3cf9734ebb9838a4e945a Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sat, 8 Oct 2022 09:29:00 -0500 Subject: [PATCH] Storing radar site selection --- .../source/scwx/qt/ui/radar_site_dialog.cpp | 33 ++++++++++++++++++- .../source/scwx/qt/ui/radar_site_dialog.hpp | 2 ++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp index fa0b69eb..67544705 100644 --- a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp @@ -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_) diff --git a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.hpp b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.hpp index c8ef4cd0..2ceac766 100644 --- a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.hpp +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.hpp @@ -24,6 +24,8 @@ public: explicit RadarSiteDialog(QWidget* parent = nullptr); ~RadarSiteDialog(); + std::string radar_site() const; + protected: void showEvent(QShowEvent*) override;