mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 21:10:04 +00:00
GCC fixes for MapProvider iterator
This commit is contained in:
parent
98ab8904be
commit
1c1864e45d
3 changed files with 24 additions and 20 deletions
|
|
@ -19,8 +19,9 @@ enum class MapProvider
|
|||
MapTiler,
|
||||
Unknown
|
||||
};
|
||||
typedef util::Iterator<MapProvider, MapProvider::Mapbox, MapProvider::MapTiler>
|
||||
MapProviderIterator;
|
||||
typedef scwx::util::
|
||||
Iterator<MapProvider, MapProvider::Mapbox, MapProvider::MapTiler>
|
||||
MapProviderIterator;
|
||||
|
||||
struct MapStyle
|
||||
{
|
||||
|
|
|
|||
|
|
@ -41,15 +41,21 @@ public:
|
|||
mapProvider_.SetValidator(
|
||||
[](const std::string& value)
|
||||
{
|
||||
return std::find_if(map::MapProviderIterator().begin(),
|
||||
map::MapProviderIterator().end(),
|
||||
[&value](map::MapProvider mapProvider)
|
||||
{
|
||||
std::string mapProviderName =
|
||||
map::GetMapProviderName(mapProvider);
|
||||
boost::to_lower(mapProviderName);
|
||||
return value == mapProviderName;
|
||||
}) != map::MapProviderIterator().end();
|
||||
for (map::MapProvider mapProvider : map::MapProviderIterator())
|
||||
{
|
||||
// If the value is equal to a lower case map provider name
|
||||
std::string mapProviderName =
|
||||
map::GetMapProviderName(mapProvider);
|
||||
boost::to_lower(mapProviderName);
|
||||
if (value == mapProviderName)
|
||||
{
|
||||
// Regard as a match, valid
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// No match found, invalid
|
||||
return false;
|
||||
});
|
||||
mapboxApiKey_.SetValidator([](const std::string& value)
|
||||
{ return !value.empty(); });
|
||||
|
|
|
|||
|
|
@ -329,16 +329,13 @@ void SettingsDialogImpl::SetupGeneralTab()
|
|||
mapProvider_.SetMapFromValueFunction(
|
||||
[](const std::string& text) -> std::string
|
||||
{
|
||||
auto it = std::find_if(
|
||||
map::MapProviderIterator().begin(),
|
||||
map::MapProviderIterator().end(),
|
||||
[&text](map::MapProvider mapProvider)
|
||||
{ return boost::iequals(text, GetMapProviderName(mapProvider)); });
|
||||
|
||||
if (it != map::MapProviderIterator().end())
|
||||
for (map::MapProvider mapProvider : map::MapProviderIterator())
|
||||
{
|
||||
// Return map provider label
|
||||
return GetMapProviderName(*it);
|
||||
if (boost::iequals(text, map::GetMapProviderName(mapProvider)))
|
||||
{
|
||||
// Return map provider label
|
||||
return GetMapProviderName(mapProvider);
|
||||
}
|
||||
}
|
||||
|
||||
// Map provider label not found, return unknown
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue