Fall back to default color palette on failure to load color palette.

This commit is contained in:
AdenKoperczak 2025-02-28 12:20:12 -05:00
parent b4f888ad15
commit 8be9cc72de

View file

@ -1866,26 +1866,48 @@ void MapWidgetImpl::InitializeNewRadarProductView(
const std::string& colorPalette)
{
boost::asio::post(threadPool_,
[=, this]()
[colorPalette, this]()
{
try
{
auto radarProductView =
context_->radar_product_view();
auto& paletteSetting =
settings::PaletteSettings::Instance().palette(
colorPalette);
std::string colorTableFile =
settings::PaletteSettings::Instance()
.palette(colorPalette)
.GetValue();
if (!colorTableFile.empty())
paletteSetting.GetValue();
if (colorTableFile.empty())
{
std::unique_ptr<std::istream> colorTableStream =
util::OpenFile(colorTableFile);
std::shared_ptr<common::ColorTable> colorTable =
common::ColorTable::Load(*colorTableStream);
radarProductView->LoadColorTable(colorTable);
colorTableFile = paletteSetting.GetDefault();
}
std::unique_ptr<std::istream> colorTableStream =
util::OpenFile(colorTableFile);
if (colorTableStream->fail())
{
logger_->warn("Could not open color table {}",
colorTableFile);
colorTableStream =
util::OpenFile(paletteSetting.GetDefault());
}
std::shared_ptr<common::ColorTable> colorTable =
common::ColorTable::Load(*colorTableStream);
if (!colorTable->IsValid())
{
logger_->warn("Could not load color table {}",
colorTableFile);
colorTableStream =
util::OpenFile(paletteSetting.GetDefault());
colorTable =
common::ColorTable::Load(*colorTableStream);
}
radarProductView->LoadColorTable(colorTable);
radarProductView->Initialize();
}
catch (const std::exception& ex)