diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index f603fcc6..4c560580 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -201,7 +202,7 @@ void MainWindow::showEvent(QShowEvent* event) resizeDocks({ui->radarToolboxDock}, {150}, Qt::Horizontal); } -void MainWindow::on_actionOpen_triggered() +void MainWindow::on_actionOpenNexrad_triggered() { static const std::string nexradFilter = "NEXRAD Products (*)"; @@ -264,6 +265,38 @@ void MainWindow::on_actionOpen_triggered() dialog->open(); } +void MainWindow::on_actionOpenTextEvent_triggered() +{ + static const std::string textFilter = "Text Event Products (*.txt)"; + static const std::string allFilter = "All Files (*)"; + + QFileDialog* dialog = new QFileDialog(this); + + dialog->setFileMode(QFileDialog::ExistingFile); + dialog->setNameFilters({tr(textFilter.c_str()), tr(allFilter.c_str())}); + dialog->setAttribute(Qt::WA_DeleteOnClose); + + // Make sure the parent window properly repaints on close + connect( + dialog, + &QFileDialog::finished, + this, + [=]() { update(); }, + Qt::QueuedConnection); + + connect(dialog, + &QFileDialog::fileSelected, + this, + [=](const QString& file) + { + logger_->info("Selected: {}", file.toStdString()); + manager::TextEventManager::Instance().LoadFile( + file.toStdString()); + }); + + dialog->open(); +} + void MainWindow::on_actionExit_triggered() { close(); diff --git a/scwx-qt/source/scwx/qt/main/main_window.hpp b/scwx-qt/source/scwx/qt/main/main_window.hpp index d6d9a034..ab708b58 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.hpp +++ b/scwx-qt/source/scwx/qt/main/main_window.hpp @@ -32,7 +32,8 @@ signals: void ActiveMapMoved(double latitude, double longitude); private slots: - void on_actionOpen_triggered(); + void on_actionOpenNexrad_triggered(); + void on_actionOpenTextEvent_triggered(); void on_actionExit_triggered(); void on_radarSiteSelectButton_clicked(); void on_resourceTreeCollapseAllButton_clicked(); diff --git a/scwx-qt/source/scwx/qt/main/main_window.ui b/scwx-qt/source/scwx/qt/main/main_window.ui index ae1e3782..791e9f97 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.ui +++ b/scwx-qt/source/scwx/qt/main/main_window.ui @@ -42,7 +42,14 @@ &File - + + + &Open + + + + + @@ -309,14 +316,6 @@ About &Supercell Wx... - - - &Open... - - - Ctrl+O - - Radar Toolbox @@ -327,6 +326,16 @@ &Resource Explorer + + + &NEXRAD Product... + + + + + Text &Event Product... + +