mirror of
https://codeberg.org/comaps/comaps
synced 2026-01-22 02:53:59 +00:00
@@ -93,9 +93,11 @@ std::string_view constexpr kAllow3dKey = "Allow3d";
|
||||
std::string_view constexpr kAllow3dBuildingsKey = "Buildings3d";
|
||||
std::string_view constexpr kAllowAutoZoom = "AutoZoom";
|
||||
std::string_view constexpr kTrafficEnabledKey = "TrafficEnabled";
|
||||
std::string_view constexpr kTransitSchemeEnabledKey = "TransitSchemeEnabled";
|
||||
std::string_view constexpr kIsolinesEnabledKey = "IsolinesEnabled";
|
||||
std::string_view constexpr kOutdoorsEnabledKey = "OutdoorsEnabled";
|
||||
std::string_view constexpr kMapModeKey = "MapMode";
|
||||
std::string_view constexpr kMapModeDefaultIsolinesKey = "MapModeDefaultHasIsolines";
|
||||
std::string_view constexpr kMapModeHikingIsolinesKey = "MapModeHikingHasIsolines";
|
||||
std::string_view constexpr kMapModeCyclingIsolinesKey = "MapModeCyclingHasIsolines";
|
||||
std::string_view constexpr kMapModePublicTransportSubwaysKey = "MapModePublicTransportHasSubways";
|
||||
std::string_view constexpr kTrafficSimplifiedColorsKey = "TrafficSimplifiedColors";
|
||||
std::string_view constexpr kLargeFontsSize = "LargeFontsSize";
|
||||
std::string_view constexpr kTranslitMode = "TransliterationMode";
|
||||
@@ -211,21 +213,6 @@ TrafficManager & Framework::GetTrafficManager()
|
||||
return m_trafficManager;
|
||||
}
|
||||
|
||||
TransitReadManager & Framework::GetTransitManager()
|
||||
{
|
||||
return m_transitManager;
|
||||
}
|
||||
|
||||
IsolinesManager & Framework::GetIsolinesManager()
|
||||
{
|
||||
return m_isolinesManager;
|
||||
}
|
||||
|
||||
IsolinesManager const & Framework::GetIsolinesManager() const
|
||||
{
|
||||
return m_isolinesManager;
|
||||
}
|
||||
|
||||
void Framework::OnUserPositionChanged(m2::PointD const & position, bool hasPosition)
|
||||
{
|
||||
GetBookmarkManager().MyPositionMark().SetUserPosition(position, hasPosition);
|
||||
@@ -353,8 +340,8 @@ Framework::Framework(FrameworkParams const & params, bool loadMaps)
|
||||
// m_trafficManager.SetSimplifiedColorScheme(LoadTrafficSimplifiedColors());
|
||||
// m_trafficManager.SetEnabled(LoadTrafficEnabled());
|
||||
|
||||
m_isolinesManager.SetEnabled(LoadIsolinesEnabled());
|
||||
|
||||
SwitchToMapMode(CurrentMapMode());
|
||||
|
||||
InitTransliteration();
|
||||
LOG(LDEBUG, ("Transliterators initialized"));
|
||||
|
||||
@@ -1482,7 +1469,6 @@ void Framework::CreateDrapeEngine(ref_ptr<dp::GraphicsContextFactory> contextFac
|
||||
auto const isAutozoomEnabled = LoadAutoZoom();
|
||||
|
||||
auto const trafficEnabled = m_trafficManager.IsEnabled();
|
||||
auto const isolinesEnabled = m_isolinesManager.IsEnabled();
|
||||
|
||||
auto const simplifiedTrafficColors = m_trafficManager.HasSimplifiedColorScheme();
|
||||
auto const fontsScaleFactor = LoadLargeFontsSize() ? kLargeFontsScaleFactor : 1.0;
|
||||
@@ -1492,7 +1478,7 @@ void Framework::CreateDrapeEngine(ref_ptr<dp::GraphicsContextFactory> contextFac
|
||||
df::MapDataProvider(std::move(idReadFn), std::move(featureReadFn), std::move(isCountryLoadedByNameFn),
|
||||
std::move(updateCurrentCountryFn)),
|
||||
params.m_hints, params.m_visualScale, fontsScaleFactor, std::move(params.m_widgetsInitInfo),
|
||||
std::move(myPositionModeChangedFn), allow3dBuildings, trafficEnabled, isolinesEnabled,
|
||||
std::move(myPositionModeChangedFn), allow3dBuildings, trafficEnabled, false,
|
||||
params.m_isChoosePositionMode, params.m_isChoosePositionMode, GetSelectedFeatureTriangles(),
|
||||
m_routingManager.IsRoutingActive() && m_routingManager.IsRoutingFollowing(), isAutozoomEnabled,
|
||||
simplifiedTrafficColors, std::nullopt /* arrow3dCustomDecl */, std::move(overlaysShowStatsFn),
|
||||
@@ -1530,9 +1516,6 @@ void Framework::CreateDrapeEngine(ref_ptr<dp::GraphicsContextFactory> contextFac
|
||||
|
||||
InvalidateUserMarks();
|
||||
|
||||
auto const transitSchemeEnabled = LoadTransitSchemeEnabled();
|
||||
m_transitManager.EnableTransitSchemeMode(transitSchemeEnabled);
|
||||
|
||||
// Show debug info if it's enabled in the config.
|
||||
bool showDebugInfo;
|
||||
if (!settings::Get(kShowDebugInfo, showDebugInfo))
|
||||
@@ -1541,6 +1524,8 @@ void Framework::CreateDrapeEngine(ref_ptr<dp::GraphicsContextFactory> contextFac
|
||||
m_drapeEngine->ShowDebugInfo(showDebugInfo);
|
||||
|
||||
benchmark::RunGraphicsBenchmark(this);
|
||||
|
||||
SwitchToMapMode(CurrentMapMode());
|
||||
}
|
||||
|
||||
void Framework::OnRecoverSurface(int width, int height, bool recreateContextDependentResources)
|
||||
@@ -2510,43 +2495,216 @@ void Framework::SaveAutoZoom(bool allowAutoZoom)
|
||||
settings::Set(kAllowAutoZoom, allowAutoZoom);
|
||||
}
|
||||
|
||||
bool Framework::LoadTransitSchemeEnabled()
|
||||
MapMode Framework::CurrentMapMode()
|
||||
{
|
||||
bool enabled;
|
||||
if (!settings::Get(kTransitSchemeEnabledKey, enabled))
|
||||
enabled = false;
|
||||
return enabled;
|
||||
string mapModeValue = "Default";
|
||||
UNUSED_VALUE(settings::Get(kMapModeKey, mapModeValue));
|
||||
|
||||
MapMode mapMode = DEFAULT;
|
||||
if (mapModeValue == "Hiking")
|
||||
mapMode = HIKING;
|
||||
else if (mapModeValue == "Cycling")
|
||||
mapMode = CYCLING;
|
||||
else if (mapModeValue == "Driving")
|
||||
mapMode = DRIVING;
|
||||
else if (mapModeValue == "PublicTransport")
|
||||
mapMode = PUBLICTRANSPORT;
|
||||
|
||||
return mapMode;
|
||||
}
|
||||
|
||||
void Framework::SaveTransitSchemeEnabled(bool enabled)
|
||||
void Framework::SwitchToMapMode(MapMode const mapMode)
|
||||
{
|
||||
settings::Set(kTransitSchemeEnabledKey, enabled);
|
||||
MapStyle mapStyle = GetMapStyle();
|
||||
|
||||
string mapModeValue = "Default";
|
||||
switch (mapMode)
|
||||
{
|
||||
case HIKING:
|
||||
mapModeValue = "Hiking";
|
||||
if (MapStyleIsDark(mapStyle))
|
||||
mapStyle = MapStyleHikingDark;
|
||||
else
|
||||
mapStyle = MapStyleHikingLight;
|
||||
break;
|
||||
case CYCLING:
|
||||
mapModeValue = "Cycling";
|
||||
if (MapStyleIsDark(mapStyle))
|
||||
mapStyle = MapStyleCyclingDark;
|
||||
else
|
||||
mapStyle = MapStyleCyclingLight;
|
||||
break;
|
||||
case DRIVING:
|
||||
mapModeValue = "Driving";
|
||||
if (MapStyleIsDark(mapStyle))
|
||||
mapStyle = MapStyleDrivingDark;
|
||||
else
|
||||
mapStyle = MapStyleDrivingLight;
|
||||
break;
|
||||
case PUBLICTRANSPORT:
|
||||
mapModeValue = "PublicTransport";
|
||||
if (MapStyleIsDark(mapStyle))
|
||||
mapStyle = MapStylePublicTransportDark;
|
||||
else
|
||||
mapStyle = MapStylePublicTransportLight;
|
||||
break;
|
||||
default:
|
||||
mapModeValue = "Default";
|
||||
if (MapStyleIsDark(mapStyle))
|
||||
mapStyle = MapStyleDefaultDark;
|
||||
else
|
||||
mapStyle = MapStyleDefaultLight;
|
||||
break;
|
||||
}
|
||||
|
||||
settings::Set(kMapModeKey, mapModeValue);
|
||||
|
||||
SetMapStyle(mapStyle);
|
||||
|
||||
RefreshMapMode();
|
||||
}
|
||||
|
||||
bool Framework::LoadIsolinesEnabled()
|
||||
MapAppearance Framework::CurrentMapAppearance()
|
||||
{
|
||||
bool enabled;
|
||||
if (!settings::Get(kIsolinesEnabledKey, enabled))
|
||||
enabled = false;
|
||||
return enabled;
|
||||
if (MapStyleIsDark(GetMapStyle()))
|
||||
return DARK;
|
||||
|
||||
return LIGHT;
|
||||
}
|
||||
|
||||
void Framework::SaveIsolinesEnabled(bool enabled)
|
||||
void Framework::SwitchToMapAppearance(MapAppearance const mapAppearance)
|
||||
{
|
||||
settings::Set(kIsolinesEnabledKey, enabled);
|
||||
MapStyle mapStyle = GetMapStyle();
|
||||
if (mapAppearance == DARK)
|
||||
mapStyle = GetLightMapStyleVariant(mapStyle);
|
||||
else
|
||||
mapStyle = GetDarkMapStyleVariant(mapStyle);
|
||||
|
||||
SetMapStyle(mapStyle);
|
||||
}
|
||||
|
||||
bool Framework::LoadOutdoorsEnabled()
|
||||
bool Framework::IsUsingVehicleStyle()
|
||||
{
|
||||
bool enabled;
|
||||
if (!settings::Get(kOutdoorsEnabledKey, enabled))
|
||||
enabled = false;
|
||||
return enabled;
|
||||
MapStyle const mapStyle = GetMapStyle();
|
||||
return mapStyle == MapStyleVehicleLight || mapStyle == MapStyleVehicleDark;
|
||||
}
|
||||
|
||||
void Framework::SaveOutdoorsEnabled(bool enabled)
|
||||
void Framework::SwitchToUsingVehicleStyle(bool const shouldUseVehicleStyle)
|
||||
{
|
||||
settings::Set(kOutdoorsEnabledKey, enabled);
|
||||
if (shouldUseVehicleStyle)
|
||||
{
|
||||
if (CurrentMapAppearance() == DARK)
|
||||
SetMapStyle(MapStyleVehicleDark);
|
||||
else
|
||||
SetMapStyle(MapStyleVehicleLight);
|
||||
}
|
||||
else
|
||||
{
|
||||
SwitchToMapMode(CurrentMapMode());
|
||||
}
|
||||
}
|
||||
|
||||
bool Framework::DefaultMapModeHasIsolines()
|
||||
{
|
||||
bool hasIsolines;
|
||||
if (!settings::Get(kMapModeDefaultIsolinesKey, hasIsolines))
|
||||
hasIsolines = false;
|
||||
return hasIsolines;
|
||||
}
|
||||
|
||||
void Framework::DefaultMapModeSetIsolines(bool const hasIsolines)
|
||||
{
|
||||
settings::Set(kMapModeDefaultIsolinesKey, hasIsolines);
|
||||
RefreshMapMode();
|
||||
}
|
||||
|
||||
bool Framework::HikingMapModeHasIsolines()
|
||||
{
|
||||
bool hasIsolines;
|
||||
if (!settings::Get(kMapModeHikingIsolinesKey, hasIsolines))
|
||||
hasIsolines = false;
|
||||
return hasIsolines;
|
||||
}
|
||||
|
||||
void Framework::HikingMapModeSetIsolines(bool const hasIsolines)
|
||||
{
|
||||
settings::Set(kMapModeHikingIsolinesKey, hasIsolines);
|
||||
RefreshMapMode();
|
||||
}
|
||||
|
||||
bool Framework::CyclingMapModeHasIsolines()
|
||||
{
|
||||
bool hasIsolines;
|
||||
if (!settings::Get(kMapModeCyclingIsolinesKey, hasIsolines))
|
||||
hasIsolines = false;
|
||||
return hasIsolines;
|
||||
}
|
||||
|
||||
void Framework::CyclingMapModeSetIsolines(bool const hasIsolines)
|
||||
{
|
||||
settings::Set(kMapModeCyclingIsolinesKey, hasIsolines);
|
||||
RefreshMapMode();
|
||||
}
|
||||
|
||||
bool Framework::PublicTransportMapModeHasSubways()
|
||||
{
|
||||
bool hasSubways;
|
||||
if (!settings::Get(kMapModePublicTransportSubwaysKey, hasSubways))
|
||||
hasSubways = false;
|
||||
return hasSubways;
|
||||
}
|
||||
|
||||
void Framework::PublicTransportMapModeSetSubways(bool const hasSubways)
|
||||
{
|
||||
settings::Set(kMapModePublicTransportSubwaysKey, hasSubways);
|
||||
RefreshMapMode();
|
||||
}
|
||||
|
||||
void Framework::RefreshMapMode()
|
||||
{
|
||||
switch (CurrentMapMode())
|
||||
{
|
||||
case DEFAULT:
|
||||
if (m_isolinesManager.IsEnabled() != DefaultMapModeHasIsolines())
|
||||
m_isolinesManager.SetEnabled(DefaultMapModeHasIsolines());
|
||||
|
||||
if (m_transitManager.IsTransitSchemeModeEnabled())
|
||||
m_transitManager.EnableTransitSchemeMode(false);
|
||||
|
||||
break;
|
||||
case HIKING:
|
||||
if (m_isolinesManager.IsEnabled() != HikingMapModeHasIsolines())
|
||||
m_isolinesManager.SetEnabled(HikingMapModeHasIsolines());
|
||||
|
||||
if (m_transitManager.IsTransitSchemeModeEnabled())
|
||||
m_transitManager.EnableTransitSchemeMode(false);
|
||||
|
||||
break;
|
||||
case CYCLING:
|
||||
if (m_isolinesManager.IsEnabled() != CyclingMapModeHasIsolines())
|
||||
m_isolinesManager.SetEnabled(CyclingMapModeHasIsolines());
|
||||
|
||||
if (m_transitManager.IsTransitSchemeModeEnabled())
|
||||
m_transitManager.EnableTransitSchemeMode(false);
|
||||
|
||||
break;
|
||||
case PUBLICTRANSPORT:
|
||||
if (m_isolinesManager.IsEnabled())
|
||||
m_isolinesManager.SetEnabled(false);
|
||||
|
||||
if (m_transitManager.IsTransitSchemeModeEnabled() != PublicTransportMapModeHasSubways())
|
||||
m_transitManager.EnableTransitSchemeMode(PublicTransportMapModeHasSubways());
|
||||
|
||||
break;
|
||||
default:
|
||||
if (m_isolinesManager.IsEnabled())
|
||||
m_isolinesManager.SetEnabled(false);
|
||||
|
||||
if (m_transitManager.IsTransitSchemeModeEnabled())
|
||||
m_transitManager.EnableTransitSchemeMode(false);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Framework::EnableChoosePositionMode(bool enable, bool enableBounds, m2::PointD const * optionalPosition)
|
||||
@@ -2589,17 +2747,13 @@ bool Framework::ParseDrapeDebugCommand(string const & query)
|
||||
{
|
||||
MapStyle desiredStyle = MapStyleCount;
|
||||
if (query == "?dark" || query == "mapstyle:dark")
|
||||
desiredStyle = MapStyleDefaultDark;
|
||||
desiredStyle = MapStyleDefaultDark; // TODO: Mode
|
||||
else if (query == "?light" || query == "mapstyle:light")
|
||||
desiredStyle = MapStyleDefaultLight;
|
||||
desiredStyle = MapStyleDefaultLight; // TODO: Mode
|
||||
else if (query == "?vlight" || query == "mapstyle:vehicle_light")
|
||||
desiredStyle = MapStyleVehicleLight;
|
||||
else if (query == "?vdark" || query == "mapstyle:vehicle_dark")
|
||||
desiredStyle = MapStyleVehicleDark;
|
||||
else if (query == "?olight" || query == "mapstyle:outdoors_light")
|
||||
desiredStyle = MapStyleOutdoorsLight;
|
||||
else if (query == "?odark" || query == "mapstyle:outdoors_dark")
|
||||
desiredStyle = MapStyleOutdoorsDark;
|
||||
|
||||
if (desiredStyle != MapStyleCount)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user