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 038e3bc1..c51431be 100644 --- a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp @@ -19,32 +19,40 @@ static const auto logger_ = scwx::util::Logger::Create(logPrefix_); class RadarSiteDialogImpl { public: - explicit RadarSiteDialogImpl() : - radarSiteModel_ {nullptr}, proxyModel_ {nullptr} + explicit RadarSiteDialogImpl(RadarSiteDialog* self) : + self_ {self}, + radarSiteModel_ {new model::RadarSiteModel(self_)}, + proxyModel_ {new QSortFilterProxyModel(self_)} { + proxyModel_->setSourceModel(radarSiteModel_); + proxyModel_->setFilterCaseSensitivity(Qt::CaseInsensitive); + proxyModel_->setFilterKeyColumn(-1); } ~RadarSiteDialogImpl() = default; + RadarSiteDialog* self_; model::RadarSiteModel* radarSiteModel_; QSortFilterProxyModel* proxyModel_; }; RadarSiteDialog::RadarSiteDialog(QWidget* parent) : QDialog(parent), - p(std::make_unique()), + p(std::make_unique(this)), ui(new Ui::RadarSiteDialog) { ui->setupUi(this); - p->radarSiteModel_ = new model::RadarSiteModel(this); - p->proxyModel_ = new QSortFilterProxyModel(this); - p->proxyModel_->setSourceModel(p->radarSiteModel_); + // Radar Site View ui->radarSiteView->setModel(p->proxyModel_); - for (int column = 0; column < p->radarSiteModel_->columnCount(); column++) { ui->radarSiteView->resizeColumnToContents(column); } + + connect(ui->radarSiteFilter, + &QLineEdit::textChanged, + p->proxyModel_, + &QSortFilterProxyModel::setFilterWildcard); } RadarSiteDialog::~RadarSiteDialog() 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 8c4232e3..27bba44f 100644 --- a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui @@ -16,6 +16,9 @@ + + true + 0 @@ -25,13 +28,47 @@ - - - Qt::Horizontal + + + QFrame::StyledPanel - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + QFrame::Raised + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Filter + + + true + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + +