From 9e3c525109ff38ca8082af8fcc23fa1a644769b0 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Thu, 6 Oct 2022 23:24:00 -0500 Subject: [PATCH] Radar site dialog --- scwx-qt/scwx-qt.cmake | 9 ++- scwx-qt/source/scwx/qt/main/main_window.cpp | 12 ++++ scwx-qt/source/scwx/qt/main/main_window.hpp | 7 +- .../source/scwx/qt/ui/radar_site_dialog.cpp | 37 ++++++++++ .../source/scwx/qt/ui/radar_site_dialog.hpp | 34 ++++++++++ .../source/scwx/qt/ui/radar_site_dialog.ui | 67 +++++++++++++++++++ 6 files changed, 162 insertions(+), 4 deletions(-) create mode 100644 scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp create mode 100644 scwx-qt/source/scwx/qt/ui/radar_site_dialog.hpp create mode 100644 scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui diff --git a/scwx-qt/scwx-qt.cmake b/scwx-qt/scwx-qt.cmake index 6d307676..6aa180b5 100644 --- a/scwx-qt/scwx-qt.cmake +++ b/scwx-qt/scwx-qt.cmake @@ -102,11 +102,14 @@ set(SRC_TYPES source/scwx/qt/types/radar_product_record.cpp) set(HDR_UI source/scwx/qt/ui/flow_layout.hpp source/scwx/qt/ui/level2_products_widget.hpp source/scwx/qt/ui/level2_settings_widget.hpp - source/scwx/qt/ui/level3_products_widget.hpp) + source/scwx/qt/ui/level3_products_widget.hpp + source/scwx/qt/ui/radar_site_dialog.hpp) set(SRC_UI source/scwx/qt/ui/flow_layout.cpp source/scwx/qt/ui/level2_products_widget.cpp source/scwx/qt/ui/level2_settings_widget.cpp - source/scwx/qt/ui/level3_products_widget.cpp) + source/scwx/qt/ui/level3_products_widget.cpp + source/scwx/qt/ui/radar_site_dialog.cpp) +set(UI_UI source/scwx/qt/ui/radar_site_dialog.ui) set(HDR_UTIL source/scwx/qt/util/font.hpp source/scwx/qt/util/font_buffer.hpp source/scwx/qt/util/json.hpp @@ -172,6 +175,7 @@ set(PROJECT_SOURCES ${HDR_MAIN} ${SRC_TYPES} ${HDR_UI} ${SRC_UI} + ${UI_UI} ${HDR_UTIL} ${SRC_UTIL} ${HDR_VIEW} @@ -207,6 +211,7 @@ source_group("Header Files\\types" FILES ${HDR_TYPES}) source_group("Source Files\\types" FILES ${SRC_TYPES}) source_group("Header Files\\ui" FILES ${HDR_UI}) source_group("Source Files\\ui" FILES ${SRC_UI}) +source_group("UI Files\\ui" FILES ${UI_UI}) source_group("Header Files\\util" FILES ${HDR_UTIL}) source_group("Source Files\\util" FILES ${SRC_UTIL}) source_group("Header Files\\view" FILES ${HDR_VIEW}) diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index 484ad01a..f0ff3018 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -43,6 +44,7 @@ public: activeMap_ {nullptr}, level2ProductsWidget_ {nullptr}, level2SettingsWidget_ {nullptr}, + radarSiteDialog_ {nullptr}, maps_ {}, elevationCuts_ {}, elevationButtonsChanged_ {false}, @@ -99,6 +101,8 @@ public: ui::Level3ProductsWidget* level3ProductsWidget_; + ui::RadarSiteDialog* radarSiteDialog_; + std::vector maps_; std::vector elevationCuts_; @@ -144,6 +148,9 @@ MainWindow::MainWindow(QWidget* parent) : // Configure Map p->ConfigureMapLayout(); + // Radar Site Dialog + p->radarSiteDialog_ = new ui::RadarSiteDialog(this); + // Add Level 2 Products p->level2ProductsWidget_ = new ui::Level2ProductsWidget(this); ui->radarProductGroupBox->layout()->replaceWidget(ui->level2ProductFrame, @@ -285,6 +292,11 @@ void MainWindow::on_actionExit_triggered() close(); } +void MainWindow::on_radarSiteSelectButton_clicked() +{ + p->radarSiteDialog_->show(); +} + void MainWindow::on_resourceTreeCollapseAllButton_clicked() { ui->resourceTreeView->collapseAll(); diff --git a/scwx-qt/source/scwx/qt/main/main_window.hpp b/scwx-qt/source/scwx/qt/main/main_window.hpp index bd313a79..380a3830 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.hpp +++ b/scwx-qt/source/scwx/qt/main/main_window.hpp @@ -16,12 +16,12 @@ namespace qt namespace main { +class MainWindowImpl; + class MainWindow : public QMainWindow { Q_OBJECT - friend class MainWindowImpl; - public: MainWindow(QWidget* parent = nullptr); ~MainWindow(); @@ -31,12 +31,15 @@ public: private slots: void on_actionOpen_triggered(); void on_actionExit_triggered(); + void on_radarSiteSelectButton_clicked(); void on_resourceTreeCollapseAllButton_clicked(); void on_resourceTreeExpandAllButton_clicked(); private: std::unique_ptr p; Ui::MainWindow* ui; + + friend class MainWindowImpl; }; } // namespace main diff --git a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp new file mode 100644 index 00000000..3ba36e29 --- /dev/null +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.cpp @@ -0,0 +1,37 @@ +#include "radar_site_dialog.hpp" +#include "./ui_radar_site_dialog.h" + +#include + +namespace scwx +{ +namespace qt +{ +namespace ui +{ + +class RadarSiteDialogImpl +{ +public: + explicit RadarSiteDialogImpl() {} + ~RadarSiteDialogImpl() = default; +}; + +RadarSiteDialog::RadarSiteDialog(QWidget* parent) : + QDialog(parent), + p(std::make_unique()), + ui(new Ui::RadarSiteDialog) +{ + ui->setupUi(this); + + ui->radarSiteView->setModel(new model::RadarSiteModel(this)); +} + +RadarSiteDialog::~RadarSiteDialog() +{ + delete ui; +} + +} // namespace ui +} // namespace qt +} // namespace scwx diff --git a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.hpp b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.hpp new file mode 100644 index 00000000..f8b3e5c6 --- /dev/null +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include + +namespace Ui +{ +class RadarSiteDialog; +} + +namespace scwx +{ +namespace qt +{ +namespace ui +{ + +class RadarSiteDialogImpl; + +class RadarSiteDialog : public QDialog +{ + Q_OBJECT + +public: + explicit RadarSiteDialog(QWidget* parent = nullptr); + ~RadarSiteDialog(); + +private: + std::unique_ptr p; + Ui::RadarSiteDialog* ui; +}; + +} // namespace ui +} // namespace qt +} // namespace scwx diff --git a/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui new file mode 100644 index 00000000..38480897 --- /dev/null +++ b/scwx-qt/source/scwx/qt/ui/radar_site_dialog.ui @@ -0,0 +1,67 @@ + + + RadarSiteDialog + + + + 0 + 0 + 400 + 300 + + + + Select Radar Site + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + RadarSiteDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + RadarSiteDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + +