mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-29 21:00:06 +00:00
Add setting for cursor icon scale
This commit is contained in:
parent
0086dc3e0f
commit
1ff686629b
13 changed files with 439 additions and 327 deletions
9
scwx-qt/res/textures/images/dot.svg
Normal file
9
scwx-qt/res/textures/images/dot.svg
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<svg version="1.1"
|
||||||
|
viewBox="0 0 100 100"
|
||||||
|
width="3" height="3"
|
||||||
|
xmlns="http://www.w3.org/2000/svg">
|
||||||
|
|
||||||
|
<circle r="50" cx="50" cy="50" fill="black"></circle>
|
||||||
|
<circle r="25" cx="50" cy="50" fill="white"></circle>
|
||||||
|
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 241 B |
|
|
@ -91,6 +91,7 @@
|
||||||
<file>res/textures/images/cursor-17.png</file>
|
<file>res/textures/images/cursor-17.png</file>
|
||||||
<file>res/textures/images/crosshairs-24.png</file>
|
<file>res/textures/images/crosshairs-24.png</file>
|
||||||
<file>res/textures/images/dot-3.png</file>
|
<file>res/textures/images/dot-3.png</file>
|
||||||
|
<file>res/textures/images/dot.svg</file>
|
||||||
<file>res/textures/images/location-marker.svg</file>
|
<file>res/textures/images/location-marker.svg</file>
|
||||||
<file>res/textures/images/mapbox-logo.svg</file>
|
<file>res/textures/images/mapbox-logo.svg</file>
|
||||||
<file>res/textures/images/maptiler-logo.svg</file>
|
<file>res/textures/images/maptiler-logo.svg</file>
|
||||||
|
|
|
||||||
|
|
@ -43,10 +43,17 @@ void Initialize()
|
||||||
void Shutdown() {}
|
void Shutdown() {}
|
||||||
|
|
||||||
std::shared_ptr<boost::gil::rgba8_image_t>
|
std::shared_ptr<boost::gil::rgba8_image_t>
|
||||||
LoadImageResource(const std::string& urlString)
|
LoadImageResource(const std::string& urlString, double scale)
|
||||||
{
|
{
|
||||||
util::TextureAtlas& textureAtlas = util::TextureAtlas::Instance();
|
util::TextureAtlas& textureAtlas = util::TextureAtlas::Instance();
|
||||||
return textureAtlas.CacheTexture(urlString, urlString);
|
return textureAtlas.CacheTexture(urlString, urlString, scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<boost::gil::rgba8_image_t> LoadImageResource(
|
||||||
|
const std::string& urlString, const std::string& textureName, double scale)
|
||||||
|
{
|
||||||
|
util::TextureAtlas& textureAtlas = util::TextureAtlas::Instance();
|
||||||
|
return textureAtlas.CacheTexture(textureName, urlString, scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::shared_ptr<boost::gil::rgba8_image_t>>
|
std::vector<std::shared_ptr<boost::gil::rgba8_image_t>>
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,13 @@ void Initialize();
|
||||||
void Shutdown();
|
void Shutdown();
|
||||||
|
|
||||||
std::shared_ptr<boost::gil::rgba8_image_t>
|
std::shared_ptr<boost::gil::rgba8_image_t>
|
||||||
LoadImageResource(const std::string& urlString);
|
LoadImageResource(const std::string& urlString, double scale = 1);
|
||||||
|
std::shared_ptr<boost::gil::rgba8_image_t>
|
||||||
|
LoadImageResource(const std::string& urlString,
|
||||||
|
const std::string& textureName,
|
||||||
|
double scale = 1);
|
||||||
std::vector<std::shared_ptr<boost::gil::rgba8_image_t>>
|
std::vector<std::shared_ptr<boost::gil::rgba8_image_t>>
|
||||||
LoadImageResources(const std::vector<std::string>& urlStrings);
|
LoadImageResources(const std::vector<std::string>& urlStrings);
|
||||||
void BuildAtlas();
|
void BuildAtlas();
|
||||||
|
|
||||||
} // namespace ResourceManager
|
} // namespace ResourceManager
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
#include <scwx/qt/map/overlay_layer.hpp>
|
|
||||||
#include <scwx/qt/gl/draw/geo_icons.hpp>
|
#include <scwx/qt/gl/draw/geo_icons.hpp>
|
||||||
#include <scwx/qt/gl/draw/icons.hpp>
|
#include <scwx/qt/gl/draw/icons.hpp>
|
||||||
#include <scwx/qt/gl/draw/rectangle.hpp>
|
#include <scwx/qt/gl/draw/rectangle.hpp>
|
||||||
#include <scwx/qt/manager/font_manager.hpp>
|
#include <scwx/qt/manager/font_manager.hpp>
|
||||||
#include <scwx/qt/manager/position_manager.hpp>
|
#include <scwx/qt/manager/position_manager.hpp>
|
||||||
|
#include <scwx/qt/manager/resource_manager.hpp>
|
||||||
#include <scwx/qt/map/map_settings.hpp>
|
#include <scwx/qt/map/map_settings.hpp>
|
||||||
|
#include <scwx/qt/map/overlay_layer.hpp>
|
||||||
#include <scwx/qt/settings/general_settings.hpp>
|
#include <scwx/qt/settings/general_settings.hpp>
|
||||||
#include <scwx/qt/types/texture_types.hpp>
|
#include <scwx/qt/types/texture_types.hpp>
|
||||||
#include <scwx/qt/view/radar_product_view.hpp>
|
#include <scwx/qt/view/radar_product_view.hpp>
|
||||||
|
|
@ -88,6 +89,9 @@ public:
|
||||||
showMapLogoCallbackUuid_);
|
showMapLogoCallbackUuid_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetupGeoIcons();
|
||||||
|
void SetCusorLocation(common::Coordinate coordinate);
|
||||||
|
|
||||||
OverlayLayer* self_;
|
OverlayLayer* self_;
|
||||||
|
|
||||||
boost::uuids::uuid clockFormatCallbackUuid_;
|
boost::uuids::uuid clockFormatCallbackUuid_;
|
||||||
|
|
@ -115,11 +119,13 @@ public:
|
||||||
types::GetTextureName(types::ImageTexture::CardinalPoint24)};
|
types::GetTextureName(types::ImageTexture::CardinalPoint24)};
|
||||||
const std::string& compassIconName_ {
|
const std::string& compassIconName_ {
|
||||||
types::GetTextureName(types::ImageTexture::Compass24)};
|
types::GetTextureName(types::ImageTexture::Compass24)};
|
||||||
const std::string& cursorIconName_ {
|
std::string cursorIconName_ {
|
||||||
types::GetTextureName(types::ImageTexture::Dot3)};
|
types::GetTextureName(types::ImageTexture::Dot3)};
|
||||||
const std::string& mapCenterIconName_ {
|
const std::string& mapCenterIconName_ {
|
||||||
types::GetTextureName(types::ImageTexture::Cursor17)};
|
types::GetTextureName(types::ImageTexture::Cursor17)};
|
||||||
|
|
||||||
|
std::shared_ptr<boost::gil::rgba8_image_t> cursorIconImage_ {nullptr};
|
||||||
|
|
||||||
const std::string& mapboxLogoImageName_ {
|
const std::string& mapboxLogoImageName_ {
|
||||||
types::GetTextureName(types::ImageTexture::MapboxLogo)};
|
types::GetTextureName(types::ImageTexture::MapboxLogo)};
|
||||||
const std::string& mapTilerLogoImageName_ {
|
const std::string& mapTilerLogoImageName_ {
|
||||||
|
|
@ -137,6 +143,8 @@ public:
|
||||||
float lastFontSize_ {0.0f};
|
float lastFontSize_ {0.0f};
|
||||||
QMargins lastColorTableMargins_ {};
|
QMargins lastColorTableMargins_ {};
|
||||||
|
|
||||||
|
double cursorScale_ {1};
|
||||||
|
|
||||||
std::string sweepTimeString_ {};
|
std::string sweepTimeString_ {};
|
||||||
bool sweepTimeNeedsUpdate_ {true};
|
bool sweepTimeNeedsUpdate_ {true};
|
||||||
bool sweepTimePicked_ {false};
|
bool sweepTimePicked_ {false};
|
||||||
|
|
@ -156,6 +164,45 @@ OverlayLayer::OverlayLayer(std::shared_ptr<MapContext> context) :
|
||||||
|
|
||||||
OverlayLayer::~OverlayLayer() = default;
|
OverlayLayer::~OverlayLayer() = default;
|
||||||
|
|
||||||
|
void OverlayLayerImpl::SetCusorLocation(common::Coordinate coordinate)
|
||||||
|
{
|
||||||
|
const double offset = 3 * cursorScale_ / 2;
|
||||||
|
geoIcons_->SetIconLocation(cursorIcon_,
|
||||||
|
coordinate.latitude_,
|
||||||
|
coordinate.longitude_,
|
||||||
|
-offset,
|
||||||
|
offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OverlayLayerImpl::SetupGeoIcons()
|
||||||
|
{
|
||||||
|
const std::string& texturePath =
|
||||||
|
types::GetTexturePath(types::ImageTexture::Dot3);
|
||||||
|
cursorIconName_ = fmt::format(
|
||||||
|
"{}x{}", types::GetTextureName(types::ImageTexture::Dot3), cursorScale_);
|
||||||
|
cursorIconImage_ = manager::ResourceManager::LoadImageResource(
|
||||||
|
texturePath, cursorIconName_, cursorScale_);
|
||||||
|
|
||||||
|
auto coordinate = currentPosition_.coordinate();
|
||||||
|
geoIcons_->StartIconSheets();
|
||||||
|
geoIcons_->AddIconSheet(cursorIconName_);
|
||||||
|
geoIcons_->AddIconSheet(locationIconName_);
|
||||||
|
geoIcons_->FinishIconSheets();
|
||||||
|
|
||||||
|
geoIcons_->StartIcons();
|
||||||
|
|
||||||
|
cursorIcon_ = geoIcons_->AddIcon();
|
||||||
|
geoIcons_->SetIconTexture(cursorIcon_, cursorIconName_, 0);
|
||||||
|
|
||||||
|
locationIcon_ = geoIcons_->AddIcon();
|
||||||
|
geoIcons_->SetIconTexture(locationIcon_, locationIconName_, 0);
|
||||||
|
geoIcons_->SetIconAngle(locationIcon_, units::angle::degrees<double> {45.0});
|
||||||
|
geoIcons_->SetIconLocation(
|
||||||
|
locationIcon_, coordinate.latitude(), coordinate.longitude());
|
||||||
|
|
||||||
|
geoIcons_->FinishIcons();
|
||||||
|
}
|
||||||
|
|
||||||
void OverlayLayer::Initialize()
|
void OverlayLayer::Initialize()
|
||||||
{
|
{
|
||||||
logger_->debug("Initialize()");
|
logger_->debug("Initialize()");
|
||||||
|
|
@ -173,27 +220,18 @@ void OverlayLayer::Initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
p->currentPosition_ = p->positionManager_->position();
|
p->currentPosition_ = p->positionManager_->position();
|
||||||
auto coordinate = p->currentPosition_.coordinate();
|
|
||||||
|
|
||||||
// Geo Icons
|
// Geo Icons
|
||||||
p->geoIcons_->StartIconSheets();
|
auto& generalSettings = settings::GeneralSettings::Instance();
|
||||||
p->geoIcons_->AddIconSheet(p->cursorIconName_);
|
p->cursorScale_ = generalSettings.cursor_icon_scale().GetValue();
|
||||||
p->geoIcons_->AddIconSheet(p->locationIconName_);
|
p->SetupGeoIcons();
|
||||||
p->geoIcons_->FinishIconSheets();
|
generalSettings.cursor_icon_scale().RegisterValueChangedCallback(
|
||||||
|
[this](double value)
|
||||||
p->geoIcons_->StartIcons();
|
{
|
||||||
|
p->cursorScale_ = value;
|
||||||
p->cursorIcon_ = p->geoIcons_->AddIcon();
|
p->SetupGeoIcons();
|
||||||
p->geoIcons_->SetIconTexture(p->cursorIcon_, p->cursorIconName_, 0);
|
Q_EMIT NeedsRendering();
|
||||||
|
});
|
||||||
p->locationIcon_ = p->geoIcons_->AddIcon();
|
|
||||||
p->geoIcons_->SetIconTexture(p->locationIcon_, p->locationIconName_, 0);
|
|
||||||
p->geoIcons_->SetIconAngle(p->locationIcon_,
|
|
||||||
units::angle::degrees<double> {45.0});
|
|
||||||
p->geoIcons_->SetIconLocation(
|
|
||||||
p->locationIcon_, coordinate.latitude(), coordinate.longitude());
|
|
||||||
|
|
||||||
p->geoIcons_->FinishIcons();
|
|
||||||
|
|
||||||
// Icons
|
// Icons
|
||||||
p->icons_->StartIconSheets();
|
p->icons_->StartIconSheets();
|
||||||
|
|
@ -339,9 +377,7 @@ void OverlayLayer::Render(const QMapLibre::CustomLayerRenderParameters& params)
|
||||||
p->geoIcons_->SetIconVisible(p->cursorIcon_, cursorIconVisible);
|
p->geoIcons_->SetIconVisible(p->cursorIcon_, cursorIconVisible);
|
||||||
if (cursorIconVisible)
|
if (cursorIconVisible)
|
||||||
{
|
{
|
||||||
common::Coordinate mouseCoordinate = context()->mouse_coordinate();
|
p->SetCusorLocation(context()->mouse_coordinate());
|
||||||
p->geoIcons_->SetIconLocation(
|
|
||||||
p->cursorIcon_, mouseCoordinate.latitude_, mouseCoordinate.longitude_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Location Icon
|
// Location Icon
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,10 @@ public:
|
||||||
cursorIconAlwaysOn_.SetDefault(false);
|
cursorIconAlwaysOn_.SetDefault(false);
|
||||||
radarSiteThreshold_.SetDefault(0.0);
|
radarSiteThreshold_.SetDefault(0.0);
|
||||||
highPrivilegeWarningEnabled_.SetDefault(true);
|
highPrivilegeWarningEnabled_.SetDefault(true);
|
||||||
|
cursorIconScale_.SetDefault(1.0);
|
||||||
|
|
||||||
|
cursorIconScale_.SetMinimum(1.0);
|
||||||
|
cursorIconScale_.SetMaximum(5.0);
|
||||||
fontSizes_.SetElementMinimum(1);
|
fontSizes_.SetElementMinimum(1);
|
||||||
fontSizes_.SetElementMaximum(72);
|
fontSizes_.SetElementMaximum(72);
|
||||||
fontSizes_.SetValidator([](const std::vector<std::int64_t>& value)
|
fontSizes_.SetValidator([](const std::vector<std::int64_t>& value)
|
||||||
|
|
@ -185,6 +188,7 @@ public:
|
||||||
SettingsVariable<double> radarSiteThreshold_ {"radar_site_threshold"};
|
SettingsVariable<double> radarSiteThreshold_ {"radar_site_threshold"};
|
||||||
SettingsVariable<bool> highPrivilegeWarningEnabled_ {
|
SettingsVariable<bool> highPrivilegeWarningEnabled_ {
|
||||||
"high_privilege_warning_enabled"};
|
"high_privilege_warning_enabled"};
|
||||||
|
SettingsVariable<double> cursorIconScale_ {"cursor_icon_scale"};
|
||||||
};
|
};
|
||||||
|
|
||||||
GeneralSettings::GeneralSettings() :
|
GeneralSettings::GeneralSettings() :
|
||||||
|
|
@ -222,7 +226,8 @@ GeneralSettings::GeneralSettings() :
|
||||||
&p->warningsProvider_,
|
&p->warningsProvider_,
|
||||||
&p->cursorIconAlwaysOn_,
|
&p->cursorIconAlwaysOn_,
|
||||||
&p->radarSiteThreshold_,
|
&p->radarSiteThreshold_,
|
||||||
&p->highPrivilegeWarningEnabled_});
|
&p->highPrivilegeWarningEnabled_,
|
||||||
|
&p->cursorIconScale_});
|
||||||
SetDefaults();
|
SetDefaults();
|
||||||
}
|
}
|
||||||
GeneralSettings::~GeneralSettings() = default;
|
GeneralSettings::~GeneralSettings() = default;
|
||||||
|
|
@ -397,6 +402,11 @@ SettingsVariable<bool>& GeneralSettings::high_privilege_warning_enabled() const
|
||||||
return p->highPrivilegeWarningEnabled_;
|
return p->highPrivilegeWarningEnabled_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SettingsVariable<double>& GeneralSettings::cursor_icon_scale() const
|
||||||
|
{
|
||||||
|
return p->cursorIconScale_;
|
||||||
|
}
|
||||||
|
|
||||||
bool GeneralSettings::Shutdown()
|
bool GeneralSettings::Shutdown()
|
||||||
{
|
{
|
||||||
bool dataChanged = false;
|
bool dataChanged = false;
|
||||||
|
|
@ -455,7 +465,8 @@ bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs)
|
||||||
lhs.p->cursorIconAlwaysOn_ == rhs.p->cursorIconAlwaysOn_ &&
|
lhs.p->cursorIconAlwaysOn_ == rhs.p->cursorIconAlwaysOn_ &&
|
||||||
lhs.p->radarSiteThreshold_ == rhs.p->radarSiteThreshold_ &&
|
lhs.p->radarSiteThreshold_ == rhs.p->radarSiteThreshold_ &&
|
||||||
lhs.p->highPrivilegeWarningEnabled_ ==
|
lhs.p->highPrivilegeWarningEnabled_ ==
|
||||||
rhs.p->highPrivilegeWarningEnabled_);
|
rhs.p->highPrivilegeWarningEnabled_ &&
|
||||||
|
lhs.p->cursorIconScale_ == rhs.p->cursorIconScale_);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace scwx::qt::settings
|
} // namespace scwx::qt::settings
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ public:
|
||||||
[[nodiscard]] SettingsVariable<bool>& cursor_icon_always_on() const;
|
[[nodiscard]] SettingsVariable<bool>& cursor_icon_always_on() const;
|
||||||
[[nodiscard]] SettingsVariable<double>& radar_site_threshold() const;
|
[[nodiscard]] SettingsVariable<double>& radar_site_threshold() const;
|
||||||
[[nodiscard]] SettingsVariable<bool>& high_privilege_warning_enabled() const;
|
[[nodiscard]] SettingsVariable<bool>& high_privilege_warning_enabled() const;
|
||||||
|
[[nodiscard]] SettingsVariable<double>& cursor_icon_scale() const;
|
||||||
|
|
||||||
static GeneralSettings& Instance();
|
static GeneralSettings& Instance();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ static const std::unordered_map<ImageTexture, TextureInfo> imageTextureInfo_ {
|
||||||
{"images/crosshairs-24", ":/res/textures/images/crosshairs-24.png"}},
|
{"images/crosshairs-24", ":/res/textures/images/crosshairs-24.png"}},
|
||||||
{ImageTexture::Cursor17,
|
{ImageTexture::Cursor17,
|
||||||
{"images/cursor-17", ":/res/textures/images/cursor-17.png"}},
|
{"images/cursor-17", ":/res/textures/images/cursor-17.png"}},
|
||||||
{ImageTexture::Dot3, {"images/dot-3", ":/res/textures/images/dot-3.png"}},
|
{ImageTexture::Dot3, {"images/dot-3", ":/res/textures/images/dot.svg"}},
|
||||||
{ImageTexture::LocationBriefcase,
|
{ImageTexture::LocationBriefcase,
|
||||||
{"images/location-briefcase",
|
{"images/location-briefcase",
|
||||||
":/res/icons/font-awesome-6/briefcase-solid.svg"}},
|
":/res/icons/font-awesome-6/briefcase-solid.svg"}},
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,7 @@ public:
|
||||||
&showSmoothedRangeFolding_,
|
&showSmoothedRangeFolding_,
|
||||||
&updateNotificationsEnabled_,
|
&updateNotificationsEnabled_,
|
||||||
&cursorIconAlwaysOn_,
|
&cursorIconAlwaysOn_,
|
||||||
|
&cursorIconScale_,
|
||||||
&debugEnabled_,
|
&debugEnabled_,
|
||||||
&alertAudioSoundFile_,
|
&alertAudioSoundFile_,
|
||||||
&alertAudioLocationMethod_,
|
&alertAudioLocationMethod_,
|
||||||
|
|
@ -266,6 +267,7 @@ public:
|
||||||
settings::SettingsInterface<bool> showSmoothedRangeFolding_ {};
|
settings::SettingsInterface<bool> showSmoothedRangeFolding_ {};
|
||||||
settings::SettingsInterface<bool> updateNotificationsEnabled_ {};
|
settings::SettingsInterface<bool> updateNotificationsEnabled_ {};
|
||||||
settings::SettingsInterface<bool> cursorIconAlwaysOn_ {};
|
settings::SettingsInterface<bool> cursorIconAlwaysOn_ {};
|
||||||
|
settings::SettingsInterface<double> cursorIconScale_ {};
|
||||||
settings::SettingsInterface<bool> debugEnabled_ {};
|
settings::SettingsInterface<bool> debugEnabled_ {};
|
||||||
|
|
||||||
std::unordered_map<std::string, settings::SettingsInterface<std::string>>
|
std::unordered_map<std::string, settings::SettingsInterface<std::string>>
|
||||||
|
|
@ -811,6 +813,10 @@ void SettingsDialogImpl::SetupGeneralTab()
|
||||||
radarSiteThresholdUpdateUnits(
|
radarSiteThresholdUpdateUnits(
|
||||||
settings::UnitSettings::Instance().distance_units().GetValue());
|
settings::UnitSettings::Instance().distance_units().GetValue());
|
||||||
|
|
||||||
|
cursorIconScale_.SetSettingsVariable(generalSettings.cursor_icon_scale());
|
||||||
|
cursorIconScale_.SetEditWidget(self_->ui->cursorIconScaleSpinBox);
|
||||||
|
cursorIconScale_.SetResetButton(self_->ui->resetCursorIconScaleButton);
|
||||||
|
|
||||||
antiAliasingEnabled_.SetSettingsVariable(
|
antiAliasingEnabled_.SetSettingsVariable(
|
||||||
generalSettings.anti_aliasing_enabled());
|
generalSettings.anti_aliasing_enabled());
|
||||||
antiAliasingEnabled_.SetEditWidget(self_->ui->antiAliasingEnabledCheckBox);
|
antiAliasingEnabled_.SetEditWidget(self_->ui->antiAliasingEnabledCheckBox);
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>-412</y>
|
<y>-412</y>
|
||||||
<width>511</width>
|
<width>511</width>
|
||||||
<height>841</height>
|
<height>873</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
|
@ -159,31 +159,33 @@
|
||||||
<property name="bottomMargin">
|
<property name="bottomMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="5" column="0">
|
<item row="1" column="2">
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QComboBox" name="clockFormatComboBox"/>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="2">
|
||||||
|
<widget class="QComboBox" name="positioningPluginComboBox"/>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="2">
|
||||||
|
<widget class="QSpinBox" name="gridHeightSpinBox"/>
|
||||||
|
</item>
|
||||||
|
<item row="23" column="0">
|
||||||
|
<widget class="QLabel" name="label_31">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Grid Width</string>
|
<string>Radar Site Threshold</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="18" column="2">
|
<item row="14" column="0">
|
||||||
<widget class="QComboBox" name="themeComboBox"/>
|
<widget class="QLabel" name="label_26">
|
||||||
</item>
|
|
||||||
<item row="13" column="4">
|
|
||||||
<widget class="QToolButton" name="resetMapTilerApiKeyButton">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>Custom Map URL</string>
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="3">
|
<item row="22" column="0">
|
||||||
<widget class="QToolButton" name="gpsSourceSelectButton">
|
<widget class="QLabel" name="label_22">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>Warnings Provider</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
@ -198,18 +200,25 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="2">
|
<item row="9" column="0">
|
||||||
<widget class="QComboBox" name="clockFormatComboBox"/>
|
<widget class="QLabel" name="label_25">
|
||||||
</item>
|
|
||||||
<item row="12" column="0">
|
|
||||||
<widget class="QLabel" name="label_4">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Mapbox API Key</string>
|
<string>GPS Source</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="22" column="4">
|
<item row="14" column="2">
|
||||||
<widget class="QToolButton" name="resetWarningsProviderButton">
|
<widget class="QLineEdit" name="customMapUrlLineEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="13" column="0">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>MapTiler API Key</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="4">
|
||||||
|
<widget class="QToolButton" name="resetRadarSiteButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
@ -219,8 +228,54 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="19" column="4">
|
<item row="5" column="4">
|
||||||
<widget class="QToolButton" name="resetThemeFileButton">
|
<widget class="QToolButton" name="resetGridWidthButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="18" column="4">
|
||||||
|
<widget class="QToolButton" name="resetThemeButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Default Radar Site</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="15" column="0">
|
||||||
|
<widget class="QLabel" name="label_27">
|
||||||
|
<property name="text">
|
||||||
|
<string>Custom Map Layer</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QComboBox" name="defaultAlertActionComboBox"/>
|
||||||
|
</item>
|
||||||
|
<item row="12" column="0">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Mapbox API Key</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="14" column="4">
|
||||||
|
<widget class="QToolButton" name="resetCustomMapUrlButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
@ -237,166 +292,12 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="4">
|
|
||||||
<widget class="QToolButton" name="resetNmeaSourceButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="QLabel" name="label_21">
|
|
||||||
<property name="text">
|
|
||||||
<string>Default Time Zone</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="13" column="2">
|
|
||||||
<widget class="scwx::qt::ui::QApiKeyEdit" name="mapTilerApiKeyLineEdit">
|
|
||||||
<property name="echoMode">
|
|
||||||
<enum>QLineEdit::EchoMode::Password</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="12" column="2">
|
|
||||||
<widget class="scwx::qt::ui::QApiKeyEdit" name="mapboxApiKeyLineEdit">
|
|
||||||
<property name="echoMode">
|
|
||||||
<enum>QLineEdit::EchoMode::Password</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="8" column="2">
|
|
||||||
<widget class="QComboBox" name="positioningPluginComboBox"/>
|
|
||||||
</item>
|
|
||||||
<item row="18" column="4">
|
|
||||||
<widget class="QToolButton" name="resetThemeButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="19" column="0">
|
|
||||||
<widget class="QLabel" name="label_30">
|
|
||||||
<property name="text">
|
|
||||||
<string>Theme File</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="2">
|
<item row="5" column="2">
|
||||||
<widget class="QSpinBox" name="gridWidthSpinBox"/>
|
<widget class="QSpinBox" name="gridWidthSpinBox"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="4">
|
|
||||||
<widget class="QToolButton" name="resetGridHeightButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="4">
|
|
||||||
<widget class="QToolButton" name="resetRadarSiteButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="2">
|
<item row="4" column="2">
|
||||||
<widget class="QComboBox" name="defaultTimeZoneComboBox"/>
|
<widget class="QComboBox" name="defaultTimeZoneComboBox"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="4">
|
|
||||||
<widget class="QToolButton" name="resetGridWidthButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="14" column="2">
|
|
||||||
<widget class="QLineEdit" name="customMapUrlLineEdit"/>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="defaultAlertActionLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Default Alert Action</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="13" column="0">
|
|
||||||
<widget class="QLabel" name="label_6">
|
|
||||||
<property name="text">
|
|
||||||
<string>MapTiler API Key</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="11" column="4">
|
|
||||||
<widget class="QToolButton" name="resetMapProviderButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="19" column="3">
|
|
||||||
<widget class="QToolButton" name="themeFileSelectButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="9" column="0">
|
|
||||||
<widget class="QLabel" name="label_25">
|
|
||||||
<property name="text">
|
|
||||||
<string>GPS Source</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="15" column="2">
|
|
||||||
<widget class="QLineEdit" name="customMapLayerLineEdit"/>
|
|
||||||
</item>
|
|
||||||
<item row="14" column="0">
|
|
||||||
<widget class="QLabel" name="label_26">
|
|
||||||
<property name="text">
|
|
||||||
<string>Custom Map URL</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="10" column="2">
|
|
||||||
<widget class="QSpinBox" name="nmeaBaudRateSpinBox">
|
|
||||||
<property name="minimum">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>999999999</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="11" column="2">
|
|
||||||
<widget class="QComboBox" name="mapProviderComboBox"/>
|
|
||||||
</item>
|
|
||||||
<item row="19" column="2">
|
|
||||||
<widget class="QLineEdit" name="themeFileLineEdit"/>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="4">
|
<item row="2" column="4">
|
||||||
<widget class="QToolButton" name="resetDefaultAlertActionButton">
|
<widget class="QToolButton" name="resetDefaultAlertActionButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
@ -419,20 +320,38 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="2">
|
<item row="10" column="2">
|
||||||
<widget class="QLineEdit" name="nmeaSourceLineEdit"/>
|
<widget class="QSpinBox" name="nmeaBaudRateSpinBox">
|
||||||
</item>
|
<property name="minimum">
|
||||||
<item row="11" column="0">
|
<number>1</number>
|
||||||
<widget class="QLabel" name="label_7">
|
</property>
|
||||||
<property name="text">
|
<property name="maximum">
|
||||||
<string>Map Provider</string>
|
<number>999999999</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="18" column="0">
|
<item row="12" column="4">
|
||||||
<widget class="QLabel" name="label_5">
|
<widget class="QToolButton" name="resetMapboxApiKeyButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Theme</string>
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="19" column="0">
|
||||||
|
<widget class="QLabel" name="label_30">
|
||||||
|
<property name="text">
|
||||||
|
<string>Theme File</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Grid Width</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
@ -447,22 +366,8 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="22" column="0">
|
<item row="9" column="4">
|
||||||
<widget class="QLabel" name="label_22">
|
<widget class="QToolButton" name="resetNmeaSourceButton">
|
||||||
<property name="text">
|
|
||||||
<string>Warnings Provider</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string>Default Radar Site</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="14" column="4">
|
|
||||||
<widget class="QToolButton" name="resetCustomMapUrlButton">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
@ -472,58 +377,6 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="10" column="0">
|
|
||||||
<widget class="QLabel" name="label_24">
|
|
||||||
<property name="text">
|
|
||||||
<string>GPS Baud Rate</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="15" column="0">
|
|
||||||
<widget class="QLabel" name="label_27">
|
|
||||||
<property name="text">
|
|
||||||
<string>Custom Map Layer</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="2">
|
|
||||||
<widget class="QSpinBox" name="gridHeightSpinBox"/>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="2">
|
|
||||||
<widget class="QComboBox" name="defaultAlertActionComboBox"/>
|
|
||||||
</item>
|
|
||||||
<item row="12" column="4">
|
|
||||||
<widget class="QToolButton" name="resetMapboxApiKeyButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="22" column="2">
|
|
||||||
<widget class="QLineEdit" name="warningsProviderLineEdit"/>
|
|
||||||
</item>
|
|
||||||
<item row="8" column="4">
|
|
||||||
<widget class="QToolButton" name="resetPositioningPluginButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="3">
|
|
||||||
<widget class="QToolButton" name="radarSiteSelectButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="0">
|
<item row="6" column="0">
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="label_3">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
@ -531,8 +384,11 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="4">
|
<item row="15" column="2">
|
||||||
<widget class="QToolButton" name="resetClockFormatButton">
|
<widget class="QLineEdit" name="customMapLayerLineEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="22" column="4">
|
||||||
|
<widget class="QToolButton" name="resetWarningsProviderButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
@ -542,31 +398,70 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="0">
|
<item row="15" column="3">
|
||||||
<widget class="QLabel" name="label_23">
|
<widget class="QToolButton" name="customMapLayerToolButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>GPS Plugin</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_21">
|
||||||
|
<property name="text">
|
||||||
|
<string>Default Time Zone</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="11" column="2">
|
||||||
|
<widget class="QComboBox" name="mapProviderComboBox"/>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="2">
|
||||||
|
<widget class="QLineEdit" name="nmeaSourceLineEdit"/>
|
||||||
|
</item>
|
||||||
<item row="3" column="2">
|
<item row="3" column="2">
|
||||||
<widget class="QComboBox" name="radarSiteComboBox"/>
|
<widget class="QComboBox" name="radarSiteComboBox"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="23" column="0">
|
<item row="19" column="3">
|
||||||
<widget class="QLabel" name="label_31">
|
<widget class="QToolButton" name="themeFileSelectButton">
|
||||||
<property name="text">
|
|
||||||
<string>Radar Site Threshold</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="23" column="4">
|
|
||||||
<widget class="QToolButton" name="resetRadarSiteThresholdButton">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
</widget>
|
||||||
<iconset resource="../../../../scwx-qt.qrc">
|
</item>
|
||||||
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
<item row="11" column="0">
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="text">
|
||||||
|
<string>Map Provider</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="12" column="2">
|
||||||
|
<widget class="scwx::qt::ui::QApiKeyEdit" name="mapboxApiKeyLineEdit">
|
||||||
|
<property name="echoMode">
|
||||||
|
<enum>QLineEdit::EchoMode::Password</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="18" column="2">
|
||||||
|
<widget class="QComboBox" name="themeComboBox"/>
|
||||||
|
</item>
|
||||||
|
<item row="18" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Theme</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="22" column="2">
|
||||||
|
<widget class="QLineEdit" name="warningsProviderLineEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="23" column="3">
|
||||||
|
<widget class="QLabel" name="radarSiteThresholdUnitLabel">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
@ -598,21 +493,163 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="23" column="3">
|
<item row="23" column="4">
|
||||||
<widget class="QLabel" name="radarSiteThresholdUnitLabel">
|
<widget class="QToolButton" name="resetRadarSiteThresholdButton">
|
||||||
<property name="toolTip">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="15" column="3">
|
<item row="13" column="4">
|
||||||
<widget class="QToolButton" name="customMapLayerToolButton">
|
<widget class="QToolButton" name="resetMapTilerApiKeyButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="13" column="2">
|
||||||
|
<widget class="scwx::qt::ui::QApiKeyEdit" name="mapTilerApiKeyLineEdit">
|
||||||
|
<property name="echoMode">
|
||||||
|
<enum>QLineEdit::EchoMode::Password</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="4">
|
||||||
|
<widget class="QToolButton" name="resetPositioningPluginButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="0">
|
||||||
|
<widget class="QLabel" name="label_24">
|
||||||
|
<property name="text">
|
||||||
|
<string>GPS Baud Rate</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="19" column="4">
|
||||||
|
<widget class="QToolButton" name="resetThemeFileButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="defaultAlertActionLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Default Alert Action</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="19" column="2">
|
||||||
|
<widget class="QLineEdit" name="themeFileLineEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="3">
|
||||||
|
<widget class="QToolButton" name="radarSiteSelectButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="4">
|
||||||
|
<widget class="QToolButton" name="resetGridHeightButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="4">
|
||||||
|
<widget class="QToolButton" name="resetClockFormatButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<widget class="QLabel" name="label_23">
|
||||||
|
<property name="text">
|
||||||
|
<string>GPS Plugin</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="3">
|
||||||
|
<widget class="QToolButton" name="gpsSourceSelectButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="11" column="4">
|
||||||
|
<widget class="QToolButton" name="resetMapProviderButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="24" column="0">
|
||||||
|
<widget class="QLabel" name="label_32">
|
||||||
|
<property name="text">
|
||||||
|
<string>Multi-Pane Cursor Size</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="24" column="2">
|
||||||
|
<widget class="QDoubleSpinBox" name="cursorIconScaleSpinBox">
|
||||||
|
<property name="decimals">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>1.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>5.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="stepType">
|
||||||
|
<enum>QAbstractSpinBox::StepType::DefaultStepType</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="24" column="4">
|
||||||
|
<widget class="QToolButton" name="resetCursorIconScaleButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../../../scwx-qt.qrc">
|
||||||
|
<normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</normaloff>:/res/icons/font-awesome-6/rotate-left-solid.svg</iconset>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
|
||||||
|
|
@ -50,12 +50,12 @@ public:
|
||||||
~Impl() {}
|
~Impl() {}
|
||||||
|
|
||||||
static std::shared_ptr<boost::gil::rgba8_image_t>
|
static std::shared_ptr<boost::gil::rgba8_image_t>
|
||||||
LoadImage(const std::string& imagePath);
|
LoadImage(const std::string& imagePath, double scale = 1);
|
||||||
|
|
||||||
static std::shared_ptr<boost::gil::rgba8_image_t>
|
static std::shared_ptr<boost::gil::rgba8_image_t>
|
||||||
ReadPngFile(const QString& imagePath);
|
ReadPngFile(const QString& imagePath);
|
||||||
static std::shared_ptr<boost::gil::rgba8_image_t>
|
static std::shared_ptr<boost::gil::rgba8_image_t>
|
||||||
ReadSvgFile(const QString& imagePath);
|
ReadSvgFile(const QString& imagePath, double scale = 1);
|
||||||
|
|
||||||
std::vector<std::shared_ptr<boost::gil::rgba8_image_t>>
|
std::vector<std::shared_ptr<boost::gil::rgba8_image_t>>
|
||||||
registeredTextures_ {};
|
registeredTextures_ {};
|
||||||
|
|
@ -92,12 +92,12 @@ void TextureAtlas::RegisterTexture(const std::string& name,
|
||||||
p->registeredTextures_.emplace_back(std::move(image));
|
p->registeredTextures_.emplace_back(std::move(image));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<boost::gil::rgba8_image_t>
|
std::shared_ptr<boost::gil::rgba8_image_t> TextureAtlas::CacheTexture(
|
||||||
TextureAtlas::CacheTexture(const std::string& name, const std::string& path)
|
const std::string& name, const std::string& path, double scale)
|
||||||
{
|
{
|
||||||
// Attempt to load the image
|
// Attempt to load the image
|
||||||
std::shared_ptr<boost::gil::rgba8_image_t> image =
|
std::shared_ptr<boost::gil::rgba8_image_t> image =
|
||||||
TextureAtlas::Impl::LoadImage(path);
|
TextureAtlas::Impl::LoadImage(path, scale);
|
||||||
|
|
||||||
// If the image is valid
|
// If the image is valid
|
||||||
if (image != nullptr && image->width() > 0 && image->height() > 0)
|
if (image != nullptr && image->width() > 0 && image->height() > 0)
|
||||||
|
|
@ -380,7 +380,7 @@ TextureAttributes TextureAtlas::GetTextureAttributes(const std::string& name)
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<boost::gil::rgba8_image_t>
|
std::shared_ptr<boost::gil::rgba8_image_t>
|
||||||
TextureAtlas::Impl::LoadImage(const std::string& imagePath)
|
TextureAtlas::Impl::LoadImage(const std::string& imagePath, double scale)
|
||||||
{
|
{
|
||||||
logger_->debug("Loading image: {}", imagePath);
|
logger_->debug("Loading image: {}", imagePath);
|
||||||
|
|
||||||
|
|
@ -398,7 +398,7 @@ TextureAtlas::Impl::LoadImage(const std::string& imagePath)
|
||||||
|
|
||||||
if (suffix == "svg")
|
if (suffix == "svg")
|
||||||
{
|
{
|
||||||
image = ReadSvgFile(qLocalImagePath);
|
image = ReadSvgFile(qLocalImagePath, scale);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -509,10 +509,10 @@ TextureAtlas::Impl::ReadPngFile(const QString& imagePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<boost::gil::rgba8_image_t>
|
std::shared_ptr<boost::gil::rgba8_image_t>
|
||||||
TextureAtlas::Impl::ReadSvgFile(const QString& imagePath)
|
TextureAtlas::Impl::ReadSvgFile(const QString& imagePath, double scale)
|
||||||
{
|
{
|
||||||
QSvgRenderer renderer {imagePath};
|
QSvgRenderer renderer {imagePath};
|
||||||
QPixmap pixmap {renderer.defaultSize()};
|
QPixmap pixmap {renderer.defaultSize() * scale};
|
||||||
pixmap.fill(Qt::GlobalColor::transparent);
|
pixmap.fill(Qt::GlobalColor::transparent);
|
||||||
|
|
||||||
QPainter painter {&pixmap};
|
QPainter painter {&pixmap};
|
||||||
|
|
|
||||||
|
|
@ -74,8 +74,8 @@ public:
|
||||||
std::uint64_t BuildCount() const;
|
std::uint64_t BuildCount() const;
|
||||||
|
|
||||||
void RegisterTexture(const std::string& name, const std::string& path);
|
void RegisterTexture(const std::string& name, const std::string& path);
|
||||||
std::shared_ptr<boost::gil::rgba8_image_t>
|
std::shared_ptr<boost::gil::rgba8_image_t> CacheTexture(
|
||||||
CacheTexture(const std::string& name, const std::string& path);
|
const std::string& name, const std::string& path, double scale = 1);
|
||||||
void BuildAtlas(std::size_t width, std::size_t height);
|
void BuildAtlas(std::size_t width, std::size_t height);
|
||||||
void BufferAtlas(gl::OpenGLFunctions& gl, GLuint texture);
|
void BufferAtlas(gl::OpenGLFunctions& gl, GLuint texture);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit f03a46f31b0378ca4077372c106d6967bb7ad66f
|
Subproject commit 6115c15987fd75dd019db995e6bdc07a05b83dcc
|
||||||
Loading…
Add table
Add a link
Reference in a new issue