Merge pull request #5149 from darina/font-scale-setting

Large fonts size setting added.
This commit is contained in:
Roman Kuznetsov 2017-01-10 10:55:36 +03:00 committed by GitHub
commit 446610c853
4 changed files with 35 additions and 21 deletions

View file

@ -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);
}

View file

@ -42,6 +42,7 @@ public:
Viewport const & viewport,
MapDataProvider const & model,
double vs,
double fontsScaleFactor,
gui::TWidgetsInitInfo && info,
pair<location::EMyPositionMode, bool> 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<location::EMyPositionMode, bool> m_initialMyPositionMode;
bool m_allow3dBuildings;

View file

@ -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<dp::OGLContextFactory> 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(vector<pair<size_t, location::Gps
m_drapeEngine->UpdateGpsTrackPoints(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;

View file

@ -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);