Use layer names in ImGui Context names

This commit is contained in:
AdenKoperczak 2025-03-19 14:14:43 -04:00
parent ec296d98eb
commit 2be140d291
9 changed files with 38 additions and 25 deletions

View file

@ -229,7 +229,10 @@ public:
AlertLayer::AlertLayer(std::shared_ptr<MapContext> context,
awips::Phenomenon phenomenon) :
DrawLayer(context), p(std::make_unique<Impl>(this, context, phenomenon))
DrawLayer(
context,
fmt::format("AlertLayer {}", awips::GetPhenomenonText(phenomenon))),
p(std::make_unique<Impl>(this, context, phenomenon))
{
for (auto alertActive : {false, true})
{

View file

@ -20,11 +20,13 @@ static const auto logger_ = scwx::util::Logger::Create(logPrefix_);
class DrawLayerImpl
{
public:
explicit DrawLayerImpl(std::shared_ptr<MapContext> context) :
explicit DrawLayerImpl(std::shared_ptr<MapContext> context,
const std::string& imGuiContextName) :
context_ {std::move(context)}, drawList_ {}
{
static size_t currentMapId_ {0u};
imGuiContextName_ = fmt::format("Layer {}", ++currentMapId_);
static size_t currentLayerId_ {0u};
imGuiContextName_ =
fmt::format("{} {}", imGuiContextName, ++currentLayerId_);
// This must be initialized after the last line
// NOLINTNEXTLINE(cppcoreguidelines-prefer-member-initializer)
imGuiContext_ =
@ -65,8 +67,10 @@ public:
bool imGuiRendererInitialized_ {};
};
DrawLayer::DrawLayer(const std::shared_ptr<MapContext>& context) :
GenericLayer(context), p(std::make_unique<DrawLayerImpl>(context))
DrawLayer::DrawLayer(const std::shared_ptr<MapContext>& context,
const std::string& imGuiContextName) :
GenericLayer(context),
p(std::make_unique<DrawLayerImpl>(context, imGuiContextName))
{
}
DrawLayer::~DrawLayer() = default;

View file

@ -15,7 +15,8 @@ class DrawLayerImpl;
class DrawLayer : public GenericLayer
{
public:
explicit DrawLayer(const std::shared_ptr<MapContext>& context);
explicit DrawLayer(const std::shared_ptr<MapContext>& context,
const std::string& imGuiContextName);
virtual ~DrawLayer();
virtual void Initialize() override;

View file

@ -38,18 +38,20 @@ public:
MapContext(MapContext&&) noexcept;
MapContext& operator=(MapContext&&) noexcept;
std::weak_ptr<QMapLibre::Map> map() const;
std::string map_copyrights() const;
MapProvider map_provider() const;
MapSettings& settings();
QMargins color_table_margins() const;
float pixel_ratio() const;
common::Coordinate mouse_coordinate() const;
std::shared_ptr<view::OverlayProductView> overlay_product_view() const;
std::shared_ptr<view::RadarProductView> radar_product_view() const;
common::RadarProductGroup radar_product_group() const;
std::string radar_product() const;
int16_t radar_product_code() const;
[[nodiscard]] std::weak_ptr<QMapLibre::Map> map() const;
[[nodiscard]] std::string map_copyrights() const;
[[nodiscard]] MapProvider map_provider() const;
[[nodiscard]] MapSettings& settings();
[[nodiscard]] QMargins color_table_margins() const;
[[nodiscard]] float pixel_ratio() const;
[[nodiscard]] common::Coordinate mouse_coordinate() const;
[[nodiscard]] std::shared_ptr<view::OverlayProductView>
overlay_product_view() const;
[[nodiscard]] std::shared_ptr<view::RadarProductView>
radar_product_view() const;
[[nodiscard]] common::RadarProductGroup radar_product_group() const;
[[nodiscard]] std::string radar_product() const;
[[nodiscard]] int16_t radar_product_code() const;
[[nodiscard]] QWidget* widget() const;
void set_map(const std::shared_ptr<QMapLibre::Map>& map);

View file

@ -129,7 +129,8 @@ void MarkerLayer::Impl::ReloadMarkers()
}
MarkerLayer::MarkerLayer(const std::shared_ptr<MapContext>& context) :
DrawLayer(context), p(std::make_unique<MarkerLayer::Impl>(this, context))
DrawLayer(context, "MarkerLayer"),
p(std::make_unique<MarkerLayer::Impl>(this, context))
{
AddDrawItem(p->geoIcons_);
}

View file

@ -143,7 +143,8 @@ public:
};
OverlayLayer::OverlayLayer(std::shared_ptr<MapContext> context) :
DrawLayer(context), p(std::make_unique<OverlayLayerImpl>(this, context))
DrawLayer(context, "OverlayLayer"),
p(std::make_unique<OverlayLayerImpl>(this, context))
{
AddDrawItem(p->activeBoxOuter_);
AddDrawItem(p->activeBoxInner_);

View file

@ -109,7 +109,8 @@ public:
};
OverlayProductLayer::OverlayProductLayer(std::shared_ptr<MapContext> context) :
DrawLayer(context), p(std::make_unique<Impl>(this, context))
DrawLayer(context, "OverlayProductLayer"),
p(std::make_unique<Impl>(this, context))
{
auto overlayProductView = context->overlay_product_view();
connect(overlayProductView.get(),

View file

@ -66,7 +66,7 @@ public:
PlacefileLayer::PlacefileLayer(const std::shared_ptr<MapContext>& context,
const std::string& placefileName) :
DrawLayer(context),
DrawLayer(context, fmt::format("PlacefileLayer {}", placefileName)),
p(std::make_unique<PlacefileLayer::Impl>(this, context, placefileName))
{
AddDrawItem(p->placefileImages_);

View file

@ -44,7 +44,7 @@ public:
};
RadarSiteLayer::RadarSiteLayer(std::shared_ptr<MapContext> context) :
DrawLayer(context), p(std::make_unique<Impl>(this))
DrawLayer(context, "RadarSiteLayer"), p(std::make_unique<Impl>(this))
{
}