Radar site dialog

This commit is contained in:
Dan Paulat 2022-10-06 23:24:00 -05:00
parent 60a85a6b14
commit 9e3c525109
6 changed files with 162 additions and 4 deletions

View file

@ -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 set(HDR_UI source/scwx/qt/ui/flow_layout.hpp
source/scwx/qt/ui/level2_products_widget.hpp source/scwx/qt/ui/level2_products_widget.hpp
source/scwx/qt/ui/level2_settings_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 set(SRC_UI source/scwx/qt/ui/flow_layout.cpp
source/scwx/qt/ui/level2_products_widget.cpp source/scwx/qt/ui/level2_products_widget.cpp
source/scwx/qt/ui/level2_settings_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 set(HDR_UTIL source/scwx/qt/util/font.hpp
source/scwx/qt/util/font_buffer.hpp source/scwx/qt/util/font_buffer.hpp
source/scwx/qt/util/json.hpp source/scwx/qt/util/json.hpp
@ -172,6 +175,7 @@ set(PROJECT_SOURCES ${HDR_MAIN}
${SRC_TYPES} ${SRC_TYPES}
${HDR_UI} ${HDR_UI}
${SRC_UI} ${SRC_UI}
${UI_UI}
${HDR_UTIL} ${HDR_UTIL}
${SRC_UTIL} ${SRC_UTIL}
${HDR_VIEW} ${HDR_VIEW}
@ -207,6 +211,7 @@ source_group("Header Files\\types" FILES ${HDR_TYPES})
source_group("Source Files\\types" FILES ${SRC_TYPES}) source_group("Source Files\\types" FILES ${SRC_TYPES})
source_group("Header Files\\ui" FILES ${HDR_UI}) source_group("Header Files\\ui" FILES ${HDR_UI})
source_group("Source Files\\ui" FILES ${SRC_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("Header Files\\util" FILES ${HDR_UTIL})
source_group("Source Files\\util" FILES ${SRC_UTIL}) source_group("Source Files\\util" FILES ${SRC_UTIL})
source_group("Header Files\\view" FILES ${HDR_VIEW}) source_group("Header Files\\view" FILES ${HDR_VIEW})

View file

@ -11,6 +11,7 @@
#include <scwx/qt/ui/level2_products_widget.hpp> #include <scwx/qt/ui/level2_products_widget.hpp>
#include <scwx/qt/ui/level2_settings_widget.hpp> #include <scwx/qt/ui/level2_settings_widget.hpp>
#include <scwx/qt/ui/level3_products_widget.hpp> #include <scwx/qt/ui/level3_products_widget.hpp>
#include <scwx/qt/ui/radar_site_dialog.hpp>
#include <scwx/common/characters.hpp> #include <scwx/common/characters.hpp>
#include <scwx/common/products.hpp> #include <scwx/common/products.hpp>
#include <scwx/common/vcp.hpp> #include <scwx/common/vcp.hpp>
@ -43,6 +44,7 @@ public:
activeMap_ {nullptr}, activeMap_ {nullptr},
level2ProductsWidget_ {nullptr}, level2ProductsWidget_ {nullptr},
level2SettingsWidget_ {nullptr}, level2SettingsWidget_ {nullptr},
radarSiteDialog_ {nullptr},
maps_ {}, maps_ {},
elevationCuts_ {}, elevationCuts_ {},
elevationButtonsChanged_ {false}, elevationButtonsChanged_ {false},
@ -99,6 +101,8 @@ public:
ui::Level3ProductsWidget* level3ProductsWidget_; ui::Level3ProductsWidget* level3ProductsWidget_;
ui::RadarSiteDialog* radarSiteDialog_;
std::vector<map::MapWidget*> maps_; std::vector<map::MapWidget*> maps_;
std::vector<float> elevationCuts_; std::vector<float> elevationCuts_;
@ -144,6 +148,9 @@ MainWindow::MainWindow(QWidget* parent) :
// Configure Map // Configure Map
p->ConfigureMapLayout(); p->ConfigureMapLayout();
// Radar Site Dialog
p->radarSiteDialog_ = new ui::RadarSiteDialog(this);
// Add Level 2 Products // Add Level 2 Products
p->level2ProductsWidget_ = new ui::Level2ProductsWidget(this); p->level2ProductsWidget_ = new ui::Level2ProductsWidget(this);
ui->radarProductGroupBox->layout()->replaceWidget(ui->level2ProductFrame, ui->radarProductGroupBox->layout()->replaceWidget(ui->level2ProductFrame,
@ -285,6 +292,11 @@ void MainWindow::on_actionExit_triggered()
close(); close();
} }
void MainWindow::on_radarSiteSelectButton_clicked()
{
p->radarSiteDialog_->show();
}
void MainWindow::on_resourceTreeCollapseAllButton_clicked() void MainWindow::on_resourceTreeCollapseAllButton_clicked()
{ {
ui->resourceTreeView->collapseAll(); ui->resourceTreeView->collapseAll();

View file

@ -16,12 +16,12 @@ namespace qt
namespace main namespace main
{ {
class MainWindowImpl;
class MainWindow : public QMainWindow class MainWindow : public QMainWindow
{ {
Q_OBJECT Q_OBJECT
friend class MainWindowImpl;
public: public:
MainWindow(QWidget* parent = nullptr); MainWindow(QWidget* parent = nullptr);
~MainWindow(); ~MainWindow();
@ -31,12 +31,15 @@ public:
private slots: private slots:
void on_actionOpen_triggered(); void on_actionOpen_triggered();
void on_actionExit_triggered(); void on_actionExit_triggered();
void on_radarSiteSelectButton_clicked();
void on_resourceTreeCollapseAllButton_clicked(); void on_resourceTreeCollapseAllButton_clicked();
void on_resourceTreeExpandAllButton_clicked(); void on_resourceTreeExpandAllButton_clicked();
private: private:
std::unique_ptr<MainWindowImpl> p; std::unique_ptr<MainWindowImpl> p;
Ui::MainWindow* ui; Ui::MainWindow* ui;
friend class MainWindowImpl;
}; };
} // namespace main } // namespace main

View file

@ -0,0 +1,37 @@
#include "radar_site_dialog.hpp"
#include "./ui_radar_site_dialog.h"
#include <scwx/qt/model/radar_site_model.hpp>
namespace scwx
{
namespace qt
{
namespace ui
{
class RadarSiteDialogImpl
{
public:
explicit RadarSiteDialogImpl() {}
~RadarSiteDialogImpl() = default;
};
RadarSiteDialog::RadarSiteDialog(QWidget* parent) :
QDialog(parent),
p(std::make_unique<RadarSiteDialogImpl>()),
ui(new Ui::RadarSiteDialog)
{
ui->setupUi(this);
ui->radarSiteView->setModel(new model::RadarSiteModel(this));
}
RadarSiteDialog::~RadarSiteDialog()
{
delete ui;
}
} // namespace ui
} // namespace qt
} // namespace scwx

View file

@ -0,0 +1,34 @@
#pragma once
#include <QDialog>
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<RadarSiteDialogImpl> p;
Ui::RadarSiteDialog* ui;
};
} // namespace ui
} // namespace qt
} // namespace scwx

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>RadarSiteDialog</class>
<widget class="QDialog" name="RadarSiteDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Select Radar Site</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTableView" name="radarSiteView"/>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>RadarSiteDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>RadarSiteDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>