diff --git a/drape_frontend/drape_engine.cpp b/drape_frontend/drape_engine.cpp index 3e00e3f30c..4f8e2c899d 100644 --- a/drape_frontend/drape_engine.cpp +++ b/drape_frontend/drape_engine.cpp @@ -13,11 +13,6 @@ #include "std/bind.hpp" #include "std/utility.hpp" -namespace -{ - char const kFontScale[] = "FontScale"; -} - namespace df { DrapeEngine::DrapeEngine(Params && params) @@ -25,9 +20,7 @@ DrapeEngine::DrapeEngine(Params && params) { VisualParams::Init(params.m_vs, df::CalculateTileSize(m_viewport.GetWidth(), m_viewport.GetHeight())); - double scaleFactor = 1.0; - if (settings::Get(kFontScale, scaleFactor)) - df::VisualParams::Instance().SetFontScale(scaleFactor); + df::VisualParams::Instance().SetFontScale(params.m_fontsScaleFactor); gui::DrapeGui & guiSubsystem = gui::DrapeGui::Instance(); guiSubsystem.SetLocalizator(bind(&StringsBundle::GetString, params.m_stringsBundle.get(), _1)); @@ -578,7 +571,6 @@ void DrapeEngine::SetFontScaleFactor(double scaleFactor) scaleFactor = my::clamp(scaleFactor, kMinScaleFactor, kMaxScaleFactor); - settings::Set(kFontScale, scaleFactor); VisualParams::Instance().SetFontScale(scaleFactor); } diff --git a/drape_frontend/drape_engine.hpp b/drape_frontend/drape_engine.hpp index b1ba5fc2bd..381f3f0a4e 100644 --- a/drape_frontend/drape_engine.hpp +++ b/drape_frontend/drape_engine.hpp @@ -42,6 +42,7 @@ public: Viewport const & viewport, MapDataProvider const & model, double vs, + double fontsScaleFactor, gui::TWidgetsInitInfo && info, pair const & initialMyPositionMode, bool allow3dBuildings, @@ -57,6 +58,7 @@ public: , m_viewport(viewport) , m_model(model) , m_vs(vs) + , m_fontsScaleFactor(fontsScaleFactor) , m_info(move(info)) , m_initialMyPositionMode(initialMyPositionMode) , m_allow3dBuildings(allow3dBuildings) @@ -74,6 +76,7 @@ public: Viewport m_viewport; MapDataProvider m_model; double m_vs; + double m_fontsScaleFactor; gui::TWidgetsInitInfo m_info; pair m_initialMyPositionMode; bool m_allow3dBuildings; diff --git a/map/framework.cpp b/map/framework.cpp index f384069e12..8280abe35b 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -124,9 +124,10 @@ char const kAllow3dKey[] = "Allow3d"; char const kAllow3dBuildingsKey[] = "Buildings3d"; char const kAllowAutoZoom[] = "AutoZoom"; char const kTrafficEnabledKey[] = "TrafficEnabled"; +char const kLargeFontsSize[] = "LargeFontsSize"; double const kDistEqualQueryMeters = 100.0; - +double const kLargeFontsScaleFactor = 1.6; size_t constexpr kMaxTrafficCacheSizeBytes = 64 /* Mb */ * 1024 * 1024; // Must correspond SearchMarkType. @@ -1659,11 +1660,13 @@ void Framework::CreateDrapeEngine(ref_ptr contextFactory, bool const trafficEnabled = LoadTrafficEnabled(); m_trafficManager.SetEnabled(trafficEnabled); + double const fontsScaleFactor = LoadLargeFontsSize() ? kLargeFontsScaleFactor : 1.0; + df::DrapeEngine::Params p(contextFactory, make_ref(&m_stringsBundle), df::Viewport(0, 0, params.m_surfaceWidth, params.m_surfaceHeight), df::MapDataProvider(idReadFn, featureReadFn, isCountryLoadedByNameFn, updateCurrentCountryFn), - params.m_visualScale, move(params.m_widgetsInitInfo), + params.m_visualScale, fontsScaleFactor, move(params.m_widgetsInitInfo), make_pair(params.m_initialMyPositionState, params.m_hasMyPositionState), allow3dBuildings, trafficEnabled, params.m_isChoosePositionMode, params.m_isChoosePositionMode, GetSelectedFeatureTriangles(), params.m_isFirstLaunch, @@ -1825,14 +1828,6 @@ void Framework::OnUpdateGpsTrackPointsCallback(vectorUpdateGpsTrackPoints(move(pointsAdd), move(indicesRemove)); } -void Framework::SetFontScaleFactor(double scaleFactor) -{ - ASSERT(m_drapeEngine.get() != nullptr, ()); - m_drapeEngine->SetFontScaleFactor(scaleFactor); - - InvalidateRect(GetCurrentViewport()); -} - void Framework::MarkMapStyle(MapStyle mapStyle) { // Store current map style before classificator reloading @@ -2712,6 +2707,28 @@ void Framework::Load3dMode(bool & allow3d, bool & allow3dBuildings) allow3dBuildings = true; } +void Framework::SaveLargeFontsSize(bool isLargeSize) +{ + settings::Set(kLargeFontsSize, isLargeSize); +} + +bool Framework::LoadLargeFontsSize() +{ + bool isLargeSize = false; + settings::Get(kLargeFontsSize, isLargeSize); + return isLargeSize; +} + +void Framework::SetLargeFontsSize(bool isLargeSize) +{ + double const scaleFactor = isLargeSize ? kLargeFontsScaleFactor : 1.0; + + ASSERT(m_drapeEngine.get() != nullptr, ()); + m_drapeEngine->SetFontScaleFactor(scaleFactor); + + InvalidateRect(GetCurrentViewport()); +} + bool Framework::LoadTrafficEnabled() { bool enabled = false; diff --git a/map/framework.hpp b/map/framework.hpp index bf9a90e4a3..687896699c 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -451,8 +451,6 @@ public: void OnRecoverGLContext(int width, int height); void OnDestroyGLContext(); - void SetFontScaleFactor(double scaleFactor); - private: /// Depends on initialized Drape engine. void SaveViewport(); @@ -776,6 +774,10 @@ public: void Save3dMode(bool allow3d, bool allow3dBuildings); void Load3dMode(bool & allow3d, bool & allow3dBuildings); + void SetLargeFontsSize(bool isLargeSize); + void SaveLargeFontsSize(bool isLargeSize); + bool LoadLargeFontsSize(); + bool LoadAutoZoom(); void AllowAutoZoom(bool allowAutoZoom); void SaveAutoZoom(bool allowAutoZoom);