From 4c685e5abb0d164e7f84a9cbda2e4d689b271c18 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sat, 22 Jul 2023 14:15:56 -0500 Subject: [PATCH] Add placefile settings initial layout --- .../font-awesome-6/earth-americas-solid.svg | 1 + scwx-qt/scwx-qt.cmake | 3 + scwx-qt/scwx-qt.qrc | 1 + .../scwx/qt/ui/placefile_settings_widget.cpp | 38 ++++++++ .../scwx/qt/ui/placefile_settings_widget.hpp | 35 ++++++++ .../scwx/qt/ui/placefile_settings_widget.ui | 88 +++++++++++++++++++ scwx-qt/source/scwx/qt/ui/settings_dialog.cpp | 16 +++- scwx-qt/source/scwx/qt/ui/settings_dialog.ui | 29 +++++- 8 files changed, 207 insertions(+), 4 deletions(-) create mode 100644 scwx-qt/res/icons/font-awesome-6/earth-americas-solid.svg create mode 100644 scwx-qt/source/scwx/qt/ui/placefile_settings_widget.cpp create mode 100644 scwx-qt/source/scwx/qt/ui/placefile_settings_widget.hpp create mode 100644 scwx-qt/source/scwx/qt/ui/placefile_settings_widget.ui diff --git a/scwx-qt/res/icons/font-awesome-6/earth-americas-solid.svg b/scwx-qt/res/icons/font-awesome-6/earth-americas-solid.svg new file mode 100644 index 00000000..f427a71e --- /dev/null +++ b/scwx-qt/res/icons/font-awesome-6/earth-americas-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 3856117f..691741a9 100644 --- a/scwx-qt/scwx-qt.cmake +++ b/scwx-qt/scwx-qt.cmake @@ -160,6 +160,7 @@ set(HDR_UI source/scwx/qt/ui/about_dialog.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/placefile_settings_widget.hpp source/scwx/qt/ui/radar_site_dialog.hpp source/scwx/qt/ui/settings_dialog.hpp source/scwx/qt/ui/update_dialog.hpp) @@ -174,6 +175,7 @@ set(SRC_UI source/scwx/qt/ui/about_dialog.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/placefile_settings_widget.cpp source/scwx/qt/ui/radar_site_dialog.cpp source/scwx/qt/ui/settings_dialog.cpp source/scwx/qt/ui/update_dialog.cpp) @@ -183,6 +185,7 @@ set(UI_UI source/scwx/qt/ui/about_dialog.ui source/scwx/qt/ui/animation_dock_widget.ui source/scwx/qt/ui/collapsible_group.ui source/scwx/qt/ui/imgui_debug_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 source/scwx/qt/ui/update_dialog.ui) diff --git a/scwx-qt/scwx-qt.qrc b/scwx-qt/scwx-qt.qrc index 8f29eed1..6d786fff 100644 --- a/scwx-qt/scwx-qt.qrc +++ b/scwx-qt/scwx-qt.qrc @@ -21,6 +21,7 @@ res/icons/font-awesome-6/backward-step-solid.svg res/icons/font-awesome-6/book-solid.svg res/icons/font-awesome-6/discord.svg + res/icons/font-awesome-6/earth-americas-solid.svg res/icons/font-awesome-6/forward-step-solid.svg res/icons/font-awesome-6/gears-solid.svg res/icons/font-awesome-6/github.svg diff --git a/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.cpp b/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.cpp new file mode 100644 index 00000000..c8578c78 --- /dev/null +++ b/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.cpp @@ -0,0 +1,38 @@ +#include "placefile_settings_widget.hpp" +#include "ui_placefile_settings_widget.h" + +namespace scwx +{ +namespace qt +{ +namespace ui +{ + +class PlacefileSettingsWidgetImpl +{ +public: + explicit PlacefileSettingsWidgetImpl(PlacefileSettingsWidget* self) : + self_ {self} + { + } + ~PlacefileSettingsWidgetImpl() = default; + + PlacefileSettingsWidget* self_; +}; + +PlacefileSettingsWidget::PlacefileSettingsWidget(QWidget* parent) : + QFrame(parent), + p {std::make_unique(this)}, + ui(new Ui::PlacefileSettingsWidget) +{ + ui->setupUi(this); +} + +PlacefileSettingsWidget::~PlacefileSettingsWidget() +{ + delete ui; +} + +} // namespace ui +} // namespace qt +} // namespace scwx diff --git a/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.hpp b/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.hpp new file mode 100644 index 00000000..69628446 --- /dev/null +++ b/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.hpp @@ -0,0 +1,35 @@ +#pragma once + +#include + +namespace Ui +{ +class PlacefileSettingsWidget; +} + +namespace scwx +{ +namespace qt +{ +namespace ui +{ + +class PlacefileSettingsWidgetImpl; + +class PlacefileSettingsWidget : public QFrame +{ + Q_OBJECT + +public: + explicit PlacefileSettingsWidget(QWidget* parent = nullptr); + ~PlacefileSettingsWidget(); + +private: + friend class PlacefileSettingsWidgetImpl; + std::unique_ptr p; + Ui::PlacefileSettingsWidget* ui; +}; + +} // namespace ui +} // namespace qt +} // namespace scwx diff --git a/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.ui b/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.ui new file mode 100644 index 00000000..145aef86 --- /dev/null +++ b/scwx-qt/source/scwx/qt/ui/placefile_settings_widget.ui @@ -0,0 +1,88 @@ + + + PlacefileSettingsWidget + + + + 0 + 0 + 400 + 300 + + + + Frame + + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Filter + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + &Add + + + + + + + false + + + &Remove + + + + + + + + + + + diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp index ee962794..e3672c5f 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -115,6 +116,7 @@ public: void SetupGeneralTab(); void SetupPalettesColorTablesTab(); void SetupPalettesAlertsTab(); + void SetupPlacefilesTab(); void ShowColorDialog(QLineEdit* lineEdit, QFrame* frame = nullptr); void UpdateRadarDialogLocation(const std::string& id); @@ -136,8 +138,9 @@ public: RadarSiteLabel(std::shared_ptr& radarSite); static void SetBackgroundColor(const std::string& value, QFrame* frame); - SettingsDialog* self_; - RadarSiteDialog* radarSiteDialog_; + SettingsDialog* self_; + PlacefileSettingsWidget* placefileSettingsWidget_; + RadarSiteDialog* radarSiteDialog_; settings::SettingsInterface defaultRadarSite_ {}; settings::SettingsInterface> fontSizes_ {}; @@ -178,6 +181,9 @@ SettingsDialog::SettingsDialog(QWidget* parent) : // Palettes > Alerts p->SetupPalettesAlertsTab(); + // Placefiles + p->SetupPlacefilesTab(); + p->ConnectSignals(); } @@ -618,6 +624,12 @@ void SettingsDialogImpl::SetupPalettesAlertsTab() } } +void SettingsDialogImpl::SetupPlacefilesTab() +{ + placefileSettingsWidget_ = new PlacefileSettingsWidget(self_); + self_->ui->placefiles->layout()->addWidget(placefileSettingsWidget_); +} + QImage SettingsDialogImpl::GenerateColorTableImage( std::shared_ptr colorTable, std::uint16_t min, diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui index e12f8909..9a4b2c86 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.ui +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.ui @@ -73,6 +73,15 @@ :/res/icons/font-awesome-6/palette-solid.svg:/res/icons/font-awesome-6/palette-solid.svg + + + Placefiles + + + + :/res/icons/font-awesome-6/earth-americas-solid.svg:/res/icons/font-awesome-6/earth-americas-solid.svg + + @@ -338,8 +347,8 @@ 0 0 - 66 - 18 + 481 + 382 @@ -410,6 +419,22 @@ + + + + 0 + + + 0 + + + 0 + + + 0 + + +