From f2addd29e6045cd29e63113fa75585d11552fbf0 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Tue, 10 Oct 2023 22:33:23 -0500 Subject: [PATCH] Add dedicated Placefile Manager dialog separate from settings --- .../font-awesome-6/layer-group-solid.svg | 1 + scwx-qt/scwx-qt.cmake | 3 + scwx-qt/scwx-qt.qrc | 1 + scwx-qt/source/scwx/qt/main/main_window.cpp | 11 +++ scwx-qt/source/scwx/qt/main/main_window.hpp | 1 + scwx-qt/source/scwx/qt/main/main_window.ui | 26 ++++++ .../source/scwx/qt/ui/placefile_dialog.cpp | 45 ++++++++++ .../source/scwx/qt/ui/placefile_dialog.hpp | 35 ++++++++ scwx-qt/source/scwx/qt/ui/placefile_dialog.ui | 88 +++++++++++++++++++ scwx-qt/source/scwx/qt/ui/settings_dialog.cpp | 18 +--- scwx-qt/source/scwx/qt/ui/settings_dialog.ui | 27 +----- 11 files changed, 215 insertions(+), 41 deletions(-) create mode 100644 scwx-qt/res/icons/font-awesome-6/layer-group-solid.svg create mode 100644 scwx-qt/source/scwx/qt/ui/placefile_dialog.cpp create mode 100644 scwx-qt/source/scwx/qt/ui/placefile_dialog.hpp create mode 100644 scwx-qt/source/scwx/qt/ui/placefile_dialog.ui diff --git a/scwx-qt/res/icons/font-awesome-6/layer-group-solid.svg b/scwx-qt/res/icons/font-awesome-6/layer-group-solid.svg new file mode 100644 index 00000000..a6366610 --- /dev/null +++ b/scwx-qt/res/icons/font-awesome-6/layer-group-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/scwx-qt/scwx-qt.cmake b/scwx-qt/scwx-qt.cmake index 4b8cadda..60e9a87f 100644 --- a/scwx-qt/scwx-qt.cmake +++ b/scwx-qt/scwx-qt.cmake @@ -186,6 +186,7 @@ set(HDR_UI source/scwx/qt/ui/about_dialog.hpp source/scwx/qt/ui/level2_settings_widget.hpp source/scwx/qt/ui/level3_products_widget.hpp source/scwx/qt/ui/open_url_dialog.hpp + source/scwx/qt/ui/placefile_dialog.hpp source/scwx/qt/ui/placefile_settings_widget.hpp source/scwx/qt/ui/radar_site_dialog.hpp source/scwx/qt/ui/settings_dialog.hpp @@ -203,6 +204,7 @@ set(SRC_UI source/scwx/qt/ui/about_dialog.cpp source/scwx/qt/ui/level2_settings_widget.cpp source/scwx/qt/ui/level3_products_widget.cpp source/scwx/qt/ui/open_url_dialog.cpp + source/scwx/qt/ui/placefile_dialog.cpp source/scwx/qt/ui/placefile_settings_widget.cpp source/scwx/qt/ui/radar_site_dialog.cpp source/scwx/qt/ui/settings_dialog.cpp @@ -214,6 +216,7 @@ set(UI_UI source/scwx/qt/ui/about_dialog.ui source/scwx/qt/ui/collapsible_group.ui source/scwx/qt/ui/imgui_debug_dialog.ui source/scwx/qt/ui/open_url_dialog.ui + source/scwx/qt/ui/placefile_dialog.ui source/scwx/qt/ui/placefile_settings_widget.ui source/scwx/qt/ui/radar_site_dialog.ui source/scwx/qt/ui/settings_dialog.ui diff --git a/scwx-qt/scwx-qt.qrc b/scwx-qt/scwx-qt.qrc index 47e49c4c..4f914f25 100644 --- a/scwx-qt/scwx-qt.qrc +++ b/scwx-qt/scwx-qt.qrc @@ -30,6 +30,7 @@ res/icons/font-awesome-6/forward-step-solid.svg res/icons/font-awesome-6/gears-solid.svg res/icons/font-awesome-6/github.svg + res/icons/font-awesome-6/layer-group-solid.svg res/icons/font-awesome-6/palette-solid.svg res/icons/font-awesome-6/pause-solid.svg res/icons/font-awesome-6/play-solid.svg diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index 756ca182..b3aa618f 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -77,6 +78,7 @@ public: animationDockWidget_ {nullptr}, aboutDialog_ {nullptr}, imGuiDebugDialog_ {nullptr}, + placefileDialog_ {nullptr}, radarSiteDialog_ {nullptr}, settingsDialog_ {nullptr}, updateDialog_ {nullptr}, @@ -165,6 +167,7 @@ public: ui::AnimationDockWidget* animationDockWidget_; ui::AboutDialog* aboutDialog_; ui::ImGuiDebugDialog* imGuiDebugDialog_; + ui::PlacefileDialog* placefileDialog_; ui::RadarSiteDialog* radarSiteDialog_; ui::SettingsDialog* settingsDialog_; ui::UpdateDialog* updateDialog_; @@ -243,6 +246,9 @@ MainWindow::MainWindow(QWidget* parent) : // Radar Site Dialog p->radarSiteDialog_ = new ui::RadarSiteDialog(this); + // Placefile Manager Dialog + p->placefileDialog_ = new ui::PlacefileDialog(this); + // Settings Dialog p->settingsDialog_ = new ui::SettingsDialog(this); @@ -443,6 +449,11 @@ void MainWindow::on_actionExit_triggered() close(); } +void MainWindow::on_actionPlacefileManager_triggered() +{ + p->placefileDialog_->show(); +} + void MainWindow::on_actionImGuiDebug_triggered() { p->imGuiDebugDialog_->show(); diff --git a/scwx-qt/source/scwx/qt/main/main_window.hpp b/scwx-qt/source/scwx/qt/main/main_window.hpp index 6ed96aba..2657abea 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.hpp +++ b/scwx-qt/source/scwx/qt/main/main_window.hpp @@ -36,6 +36,7 @@ private slots: void on_actionOpenTextEvent_triggered(); void on_actionSettings_triggered(); void on_actionExit_triggered(); + void on_actionPlacefileManager_triggered(); void on_actionImGuiDebug_triggered(); void on_actionDumpRadarProductRecords_triggered(); void on_actionUserManual_triggered(); diff --git a/scwx-qt/source/scwx/qt/main/main_window.ui b/scwx-qt/source/scwx/qt/main/main_window.ui index 369c8d28..d2065105 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.ui +++ b/scwx-qt/source/scwx/qt/main/main_window.ui @@ -87,8 +87,16 @@ + + + &Tools + + + + + @@ -415,6 +423,24 @@ &Check for Updates + + + + :/res/icons/font-awesome-6/earth-americas-solid.svg:/res/icons/font-awesome-6/earth-americas-solid.svg + + + &Placefile Manager + + + + + + :/res/icons/font-awesome-6/layer-group-solid.svg:/res/icons/font-awesome-6/layer-group-solid.svg + + + &Layer Manager + + diff --git a/scwx-qt/source/scwx/qt/ui/placefile_dialog.cpp b/scwx-qt/source/scwx/qt/ui/placefile_dialog.cpp new file mode 100644 index 00000000..6adb96ba --- /dev/null +++ b/scwx-qt/source/scwx/qt/ui/placefile_dialog.cpp @@ -0,0 +1,45 @@ +#include "placefile_dialog.hpp" +#include "ui_placefile_dialog.h" + +#include +#include + +namespace scwx +{ +namespace qt +{ +namespace ui +{ + +static const std::string logPrefix_ = "scwx::qt::ui::placefile_dialog"; +static const auto logger_ = scwx::util::Logger::Create(logPrefix_); + +class PlacefileDialogImpl +{ +public: + explicit PlacefileDialogImpl() {} + ~PlacefileDialogImpl() = default; + + PlacefileSettingsWidget* placefileSettingsWidget_ {nullptr}; +}; + +PlacefileDialog::PlacefileDialog(QWidget* parent) : + QDialog(parent), + p {std::make_unique()}, + ui(new Ui::PlacefileDialog) +{ + ui->setupUi(this); + + p->placefileSettingsWidget_ = new PlacefileSettingsWidget(this); + p->placefileSettingsWidget_->layout()->setContentsMargins(0, 0, 0, 0); + ui->contentsFrame->layout()->addWidget(p->placefileSettingsWidget_); +} + +PlacefileDialog::~PlacefileDialog() +{ + delete ui; +} + +} // namespace ui +} // namespace qt +} // namespace scwx diff --git a/scwx-qt/source/scwx/qt/ui/placefile_dialog.hpp b/scwx-qt/source/scwx/qt/ui/placefile_dialog.hpp new file mode 100644 index 00000000..eb93cc44 --- /dev/null +++ b/scwx-qt/source/scwx/qt/ui/placefile_dialog.hpp @@ -0,0 +1,35 @@ +#pragma once + +#include + +namespace Ui +{ +class PlacefileDialog; +} + +namespace scwx +{ +namespace qt +{ +namespace ui +{ + +class PlacefileDialogImpl; + +class PlacefileDialog : public QDialog +{ + Q_OBJECT + +public: + explicit PlacefileDialog(QWidget* parent = nullptr); + ~PlacefileDialog(); + +private: + friend class PlacefileDialogImpl; + std::unique_ptr p; + Ui::PlacefileDialog* ui; +}; + +} // namespace ui +} // namespace qt +} // namespace scwx diff --git a/scwx-qt/source/scwx/qt/ui/placefile_dialog.ui b/scwx-qt/source/scwx/qt/ui/placefile_dialog.ui new file mode 100644 index 00000000..8ff045a6 --- /dev/null +++ b/scwx-qt/source/scwx/qt/ui/placefile_dialog.ui @@ -0,0 +1,88 @@ + + + PlacefileDialog + + + + 0 + 0 + 700 + 600 + + + + Placefile Manager + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + + + + buttonBox + accepted() + PlacefileDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + PlacefileDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp index ae32d450..ee216db0 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -135,7 +134,6 @@ public: void SetupGeneralTab(); void SetupPalettesColorTablesTab(); void SetupPalettesAlertsTab(); - void SetupPlacefilesTab(); void SetupTextTab(); void ShowColorDialog(QLineEdit* lineEdit, QFrame* frame = nullptr); @@ -162,10 +160,9 @@ public: RadarSiteLabel(std::shared_ptr& radarSite); static void SetBackgroundColor(const std::string& value, QFrame* frame); - SettingsDialog* self_; - PlacefileSettingsWidget* placefileSettingsWidget_ {nullptr}; - RadarSiteDialog* radarSiteDialog_; - QFontDialog* fontDialog_; + SettingsDialog* self_; + RadarSiteDialog* radarSiteDialog_; + QFontDialog* fontDialog_; QStandardItemModel* fontCategoryModel_; @@ -226,9 +223,6 @@ SettingsDialog::SettingsDialog(QWidget* parent) : // Text p->SetupTextTab(); - // Placefiles - p->SetupPlacefilesTab(); - p->ConnectSignals(); } @@ -735,12 +729,6 @@ void SettingsDialogImpl::SetupPalettesAlertsTab() } } -void SettingsDialogImpl::SetupPlacefilesTab() -{ - placefileSettingsWidget_ = new PlacefileSettingsWidget(self_); - self_->ui->placefiles->layout()->addWidget(placefileSettingsWidget_); -} - void SettingsDialogImpl::SetupTextTab() { settings::TextSettings& textSettings = settings::TextSettings::Instance(); diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui index 248a75fa..8a065168 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui @@ -82,15 +82,6 @@ :/res/icons/font-awesome-6/font-solid.svg:/res/icons/font-awesome-6/font-solid.svg - - - Placefiles - - - - :/res/icons/font-awesome-6/earth-americas-solid.svg:/res/icons/font-awesome-6/earth-americas-solid.svg - - @@ -350,7 +341,7 @@ 0 0 - 481 + 512 382 @@ -704,22 +695,6 @@ - - - - 0 - - - 0 - - - 0 - - - 0 - - -