[search] Set preferred language.

This commit is contained in:
Yury Melnichek 2011-11-14 17:52:58 +01:00 committed by Alex Zolotarev
parent a0e58e7422
commit 299a9a1118
4 changed files with 23 additions and 4 deletions

View file

@ -35,7 +35,8 @@ public:
Engine::Engine(IndexType const * pIndex, CategoriesHolder * pCategories,
ModelReaderPtr polyR, ModelReaderPtr countryR)
: m_pIndex(pIndex), m_pData(new EngineData(polyR, countryR))
: m_pIndex(pIndex), m_pData(new EngineData(polyR, countryR)),
m_preferredLanguage(1) // TODO: Get id for English language properly.
{
if (pCategories)
{
@ -46,7 +47,8 @@ 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_pData->m_infoGetter,
m_preferredLanguage));
}
Engine::~Engine()
@ -86,6 +88,11 @@ void Engine::SetViewport(m2::RectD const & viewport)
m_pQuery->SetViewport(viewport);
}
void Engine::SetPreferredLanguage(int lang)
{
m_pQuery->SetPreferredLanguage(lang);
}
void Engine::Search(string const & queryText, function<void (Result const &)> const & f)
{
LOG(LDEBUG, (queryText));

View file

@ -33,11 +33,13 @@ public:
~Engine();
void SetViewport(m2::RectD const & viewport);
void SetPreferredLanguage(int lang);
void Search(string const & query, function<void (Result const &)> const & f);
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

@ -29,11 +29,13 @@ namespace search
Query::Query(Index const * pIndex,
CategoriesMapT const * pCategories,
StringsToSuggestVectorT const * pStringsToSuggest,
storage::CountryInfoGetter const * pInfoGetter)
storage::CountryInfoGetter const * pInfoGetter,
int preferredLanguage)
: m_pIndex(pIndex),
m_pCategories(pCategories),
m_pStringsToSuggest(pStringsToSuggest),
m_pInfoGetter(pInfoGetter),
m_preferredLanguage(preferredLanguage),
m_viewport(m2::RectD::GetEmptyRect()), m_viewportExtended(m2::RectD::GetEmptyRect()),
m_bOffsetsCacheIsValid(false)
{
@ -57,6 +59,11 @@ void Query::SetViewport(m2::RectD const & viewport)
}
}
void Query::SetPreferredLanguage(int lang)
{
m_preferredLanguage = lang;
}
void Query::ClearCache()
{
m_offsetsInViewport.clear();

View file

@ -35,10 +35,12 @@ public:
Query(Index const * pIndex,
CategoriesMapT const * pCategories,
StringsToSuggestVectorT const * pStringsToSuggest,
storage::CountryInfoGetter const * pInfoGetter);
storage::CountryInfoGetter const * pInfoGetter,
int preferredLanguage);
~Query();
void SetViewport(m2::RectD const & viewport);
void SetPreferredLanguage(int lang);
void Search(string const & query,
function<void (Result const &)> const & f,
unsigned int resultsNeeded = 10);
@ -64,6 +66,7 @@ private:
CategoriesMapT const * m_pCategories;
StringsToSuggestVectorT const * m_pStringsToSuggest;
storage::CountryInfoGetter const * m_pInfoGetter;
int m_preferredLanguage;
string m_rawQuery;
strings::UniString m_uniQuery;