[search] Set preferred language in search.

This commit is contained in:
vng 2011-12-16 13:49:22 +03:00 committed by Alex Zolotarev
parent a1b26b8093
commit a158b14e5e
5 changed files with 13 additions and 15 deletions

View file

@ -6,6 +6,7 @@
#include "../defines.hpp"
#include "../platform/settings.hpp"
#include "../platform/preferred_languages.hpp"
#include "../yg/rendercontext.hpp"
@ -615,6 +616,7 @@ search::Engine * Framework::GetSearchEngine()
new search::Engine(&m_model.GetIndex(), new CategoriesHolder(*pReader),
pl.GetReader(PACKED_POLYGONS_FILE),
pl.GetReader(COUNTRIES_FILE)));
m_pSearchEngine->SetPreferredLanguage(languages::CurrentLanguage());
}
}
return m_pSearchEngine.get();

View file

@ -35,8 +35,7 @@ public:
Engine::Engine(IndexType const * pIndex, CategoriesHolder * pCategories,
ModelReaderPtr polyR, ModelReaderPtr countryR)
: m_preferredLanguage(1), // TODO: Get id for English language properly.
m_pIndex(pIndex), m_pData(new EngineData(polyR, countryR))
: m_pIndex(pIndex), m_pData(new EngineData(polyR, countryR))
{
if (pCategories)
{
@ -47,8 +46,7 @@ Engine::Engine(IndexType const * pIndex, CategoriesHolder * pCategories,
m_pQuery.reset(new Query(pIndex,
&m_pData->m_categories,
&m_pData->m_stringsToSuggest,
&m_pData->m_infoGetter,
m_preferredLanguage));
&m_pData->m_infoGetter));
}
Engine::~Engine()
@ -88,7 +86,7 @@ void Engine::SetViewport(m2::RectD const & viewport)
m_pQuery->SetViewport(viewport);
}
void Engine::SetPreferredLanguage(int lang)
void Engine::SetPreferredLanguage(string const & lang)
{
m_pQuery->SetPreferredLanguage(lang);
}

View file

@ -33,7 +33,7 @@ public:
~Engine();
void SetViewport(m2::RectD const & viewport);
void SetPreferredLanguage(int lang);
void SetPreferredLanguage(string const & lang);
void Search(string const & query, function<void (Result const &)> const & f);
string GetCountryFile(m2::PointD const & pt) const;
@ -41,7 +41,6 @@ public:
private:
void InitializeCategoriesAndSuggestStrings(CategoriesHolder const & categories);
int m_preferredLanguage;
Index const * m_pIndex;
scoped_ptr<search::Query> m_pQuery;
scoped_ptr<EngineData> m_pData;

View file

@ -31,13 +31,12 @@ namespace search
Query::Query(Index const * pIndex,
CategoriesMapT const * pCategories,
StringsToSuggestVectorT const * pStringsToSuggest,
storage::CountryInfoGetter const * pInfoGetter,
int preferredLanguage)
storage::CountryInfoGetter const * pInfoGetter)
: m_pIndex(pIndex),
m_pCategories(pCategories),
m_pStringsToSuggest(pStringsToSuggest),
m_pInfoGetter(pInfoGetter),
m_preferredLanguage(preferredLanguage),
m_preferredLanguage(StringUtf8Multilang::GetLangIndex("en")),
m_viewport(m2::RectD::GetEmptyRect()), m_viewportExtended(m2::RectD::GetEmptyRect()),
m_bOffsetsCacheIsValid(false)
{
@ -61,9 +60,9 @@ void Query::SetViewport(m2::RectD const & viewport)
}
}
void Query::SetPreferredLanguage(int lang)
void Query::SetPreferredLanguage(string const & lang)
{
m_preferredLanguage = lang;
m_preferredLanguage = StringUtf8Multilang::GetLangIndex(lang);
}
void Query::ClearCache()
@ -300,6 +299,7 @@ void Query::SearchFeatures()
m_pIndex->GetMwmInfo(mwmInfo);
unordered_set<int8_t> langs;
langs.insert(m_preferredLanguage);
langs.insert(StringUtf8Multilang::GetLangIndex("int_name"));
langs.insert(StringUtf8Multilang::GetLangIndex("en"));
langs.insert(StringUtf8Multilang::GetLangIndex("default"));

View file

@ -36,12 +36,11 @@ public:
Query(Index const * pIndex,
CategoriesMapT const * pCategories,
StringsToSuggestVectorT const * pStringsToSuggest,
storage::CountryInfoGetter const * pInfoGetter,
int preferredLanguage);
storage::CountryInfoGetter const * pInfoGetter);
~Query();
void SetViewport(m2::RectD const & viewport);
void SetPreferredLanguage(int lang);
void SetPreferredLanguage(string const & lang);
void Search(string const & query,
function<void (Result const &)> const & f,
unsigned int resultsNeeded = 10);