mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-11-02 03:00:04 +00:00
Update map provider setting based on API key availability
This commit is contained in:
parent
9c5de8e9ee
commit
6c5ec2d996
1 changed files with 41 additions and 0 deletions
|
|
@ -23,6 +23,7 @@ static const auto logger_ = scwx::util::Logger::Create(logPrefix_);
|
||||||
static boost::json::value ConvertSettingsToJson();
|
static boost::json::value ConvertSettingsToJson();
|
||||||
static void GenerateDefaultSettings();
|
static void GenerateDefaultSettings();
|
||||||
static bool LoadSettings(const boost::json::object& settingsJson);
|
static bool LoadSettings(const boost::json::object& settingsJson);
|
||||||
|
static void ValidateSettings();
|
||||||
|
|
||||||
static bool initialized_ {false};
|
static bool initialized_ {false};
|
||||||
static std::string settingsPath_ {};
|
static std::string settingsPath_ {};
|
||||||
|
|
@ -46,6 +47,7 @@ void Initialize()
|
||||||
initialized_ = true;
|
initialized_ = true;
|
||||||
|
|
||||||
ReadSettings(settingsPath_);
|
ReadSettings(settingsPath_);
|
||||||
|
ValidateSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReadSettings(const std::string& settingsPath)
|
void ReadSettings(const std::string& settingsPath)
|
||||||
|
|
@ -137,6 +139,45 @@ static bool LoadSettings(const boost::json::object& settingsJson)
|
||||||
return jsonDirty;
|
return jsonDirty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ValidateSettings()
|
||||||
|
{
|
||||||
|
logger_->debug("Validating settings");
|
||||||
|
|
||||||
|
bool settingsChanged = false;
|
||||||
|
|
||||||
|
auto& generalSettings = general_settings();
|
||||||
|
|
||||||
|
// Validate map provider
|
||||||
|
std::string mapProvider = generalSettings.map_provider().GetValue();
|
||||||
|
std::string mapboxApiKey = generalSettings.mapbox_api_key().GetValue();
|
||||||
|
std::string maptilerApiKey = generalSettings.maptiler_api_key().GetValue();
|
||||||
|
|
||||||
|
if (mapProvider == "maptiler" && //
|
||||||
|
mapboxApiKey.size() > 1 && //
|
||||||
|
maptilerApiKey == "?")
|
||||||
|
{
|
||||||
|
logger_->info("Setting Map Provider to Mapbox based on API key settings");
|
||||||
|
|
||||||
|
generalSettings.map_provider().SetValue("mapbox");
|
||||||
|
settingsChanged = true;
|
||||||
|
}
|
||||||
|
else if (mapProvider == "mapbox" && //
|
||||||
|
maptilerApiKey.size() > 1 && //
|
||||||
|
mapboxApiKey == "?")
|
||||||
|
{
|
||||||
|
logger_->info(
|
||||||
|
"Setting Map Provider to MapTiler based on API key settings");
|
||||||
|
|
||||||
|
generalSettings.map_provider().SetValue("maptiler");
|
||||||
|
settingsChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settingsChanged)
|
||||||
|
{
|
||||||
|
SaveSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace SettingsManager
|
} // namespace SettingsManager
|
||||||
} // namespace manager
|
} // namespace manager
|
||||||
} // namespace qt
|
} // namespace qt
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue