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

@ -11,6 +11,7 @@
#include <scwx/qt/ui/level2_products_widget.hpp>
#include <scwx/qt/ui/level2_settings_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/products.hpp>
#include <scwx/common/vcp.hpp>
@ -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<map::MapWidget*> maps_;
std::vector<float> 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();

View file

@ -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<MainWindowImpl> p;
Ui::MainWindow* ui;
friend class MainWindowImpl;
};
} // 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>