From 2acd8be06322fbf607b8fb3910eb8868fa776a88 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Fri, 7 Oct 2022 07:42:34 -0500 Subject: [PATCH] Enable sorting of the radar site list --- .../source/scwx/qt/ui/radar_site_dialog.cpp | 18 ++++++++++++++---- scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui | 3 +++ 2 files changed, 17 insertions(+), 4 deletions(-) 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 f6089b03..038e3bc1 100644 --- a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp @@ -4,6 +4,8 @@ #include #include +#include + namespace scwx { namespace qt @@ -17,8 +19,14 @@ static const auto logger_ = scwx::util::Logger::Create(logPrefix_); class RadarSiteDialogImpl { public: - explicit RadarSiteDialogImpl() {} + explicit RadarSiteDialogImpl() : + radarSiteModel_ {nullptr}, proxyModel_ {nullptr} + { + } ~RadarSiteDialogImpl() = default; + + model::RadarSiteModel* radarSiteModel_; + QSortFilterProxyModel* proxyModel_; }; RadarSiteDialog::RadarSiteDialog(QWidget* parent) : @@ -28,10 +36,12 @@ RadarSiteDialog::RadarSiteDialog(QWidget* parent) : { ui->setupUi(this); - model::RadarSiteModel* radarSiteModel = new model::RadarSiteModel(this); - ui->radarSiteView->setModel(radarSiteModel); + p->radarSiteModel_ = new model::RadarSiteModel(this); + p->proxyModel_ = new QSortFilterProxyModel(this); + p->proxyModel_->setSourceModel(p->radarSiteModel_); + ui->radarSiteView->setModel(p->proxyModel_); - for (int column = 0; column < radarSiteModel->columnCount(); column++) + for (int column = 0; column < p->radarSiteModel_->columnCount(); column++) { ui->radarSiteView->resizeColumnToContents(column); } diff --git a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui index 21bfe09a..8c4232e3 100644 --- a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui @@ -19,6 +19,9 @@ 0 + + true +