From 9620b613feffe80cc2684a06c6ede337b3b7e462 Mon Sep 17 00:00:00 2001 From: Yuri Gorshenin Date: Wed, 1 Nov 2017 16:09:14 +0300 Subject: [PATCH] Review fixes. --- map/framework.cpp | 21 +++++++------------ map/framework.hpp | 10 +++++---- .../downloader_search_test.cpp | 1 - .../interactive_search_test.cpp | 1 - search/search_params.hpp | 3 --- 5 files changed, 14 insertions(+), 22 deletions(-) diff --git a/map/framework.cpp b/map/framework.cpp index a2a983ce50..71b104215d 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -1332,11 +1332,11 @@ void Framework::PokeSearchInViewport() if (!m_isViewportInitialized || !IsViewportSearchActive()) return; - // Copy is intended here, for correct checking of duplicating requests. - auto params = m_searchIntents[static_cast(search::Mode::Viewport)].m_params; + auto & intent = m_searchIntents[static_cast(search::Mode::Viewport)]; + auto & params = intent.m_params; SetViewportIfPossible(params); SetCurrentPositionIfPossible(params); - Search(params); + Search(intent); } bool Framework::SearchEverywhere(search::EverywhereSearchParams const & params) @@ -1347,7 +1347,6 @@ bool Framework::SearchEverywhere(search::EverywhereSearchParams const & params) p.m_mode = search::Mode::Everywhere; SetViewportIfPossible(p); // Search request will be delayed if viewport is not available. p.m_maxNumResults = search::SearchParams::kDefaultNumResultsEverywhere; - p.m_forceSearch = true; p.m_suggestsEnabled = true; p.m_needAddress = true; p.m_needHighlighting = true; @@ -1363,7 +1362,7 @@ bool Framework::SearchEverywhere(search::EverywhereSearchParams const & params) }); }); SetCurrentPositionIfPossible(p); - return Search(p); + return Search(p, true /* forceSearch */); } bool Framework::SearchInViewport(search::ViewportSearchParams const & params) @@ -1377,7 +1376,6 @@ bool Framework::SearchInViewport(search::ViewportSearchParams const & params) SetViewportIfPossible(p); // Search request will be delayed if viewport is not available. p.m_maxNumResults = search::SearchParams::kDefaultNumResultsInViewport; p.m_mode = search::Mode::Viewport; - p.m_forceSearch = false; p.m_suggestsEnabled = false; p.m_needAddress = false; p.m_needHighlighting = false; @@ -1397,7 +1395,7 @@ bool Framework::SearchInViewport(search::ViewportSearchParams const & params) }); SetCurrentPositionIfPossible(p); - return Search(p); + return Search(p, false /* forceSearch */); } bool Framework::SearchInDownloader(DownloaderSearchParams const & params) @@ -1408,14 +1406,13 @@ bool Framework::SearchInDownloader(DownloaderSearchParams const & params) SetViewportIfPossible(p); // Search request will be delayed if viewport is not available. p.m_maxNumResults = search::SearchParams::kDefaultNumResultsEverywhere; p.m_mode = search::Mode::Downloader; - p.m_forceSearch = true; p.m_suggestsEnabled = false; p.m_needAddress = false; p.m_needHighlighting = false; p.m_onResults = search::DownloaderSearchCallback( static_cast(*this), m_model.GetIndex(), GetCountryInfoGetter(), GetStorage(), params); - return Search(p); + return Search(p, true /* forceSearch */); } void Framework::SetViewportIfPossible(search::SearchParams & params) @@ -1625,7 +1622,7 @@ search::DisplayedCategories const & Framework::GetDisplayedCategories() return *m_displayedCategories; } -bool Framework::Search(search::SearchParams const & params) +bool Framework::Search(search::SearchParams const & params, bool forceSearch) { if (ParseDrapeDebugCommand(params.m_query)) return false; @@ -1648,7 +1645,7 @@ bool Framework::Search(search::SearchParams const & params) if (ParseEditorDebugCommand(params)) return true; - if (QueryMayBeSkipped(intent, rParams)) + if (!forceSearch && QueryMayBeSkipped(intent, rParams)) return false; intent.m_params = rParams; @@ -1691,8 +1688,6 @@ bool Framework::QueryMayBeSkipped(SearchIntent const & intent, auto const & viewport = params.m_viewport; - if (params.m_forceSearch) - return false; if (!lastParams.IsEqualCommon(params)) return false; if (!lastViewport.IsValid() || diff --git a/map/framework.hpp b/map/framework.hpp index 9dec3a95dc..c0f3a104b2 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -542,7 +542,7 @@ private: // because it must be used from the UI thread only. SearchIntent m_searchIntents[static_cast(search::Mode::Count)]; - bool Search(search::SearchParams const & params); + bool Search(search::SearchParams const & params, bool forceSearch); void Search(SearchIntent & intent) const; // Returns true when |params| is almost the same as the latest @@ -555,15 +555,17 @@ private: public: using TSearchRequest = search::QuerySaver::TSearchRequest; + // When search in viewport is active or delayed, restarts search in + // viewport. void PokeSearchInViewport(); - /// Search everywhere. + // Search everywhere. bool SearchEverywhere(search::EverywhereSearchParams const & params); - /// Search in the viewport. + // Search in the viewport. bool SearchInViewport(search::ViewportSearchParams const & params); - /// Search for maps by countries or cities. + // Search for maps by countries or cities. bool SearchInDownloader(storage::DownloaderSearchParams const & params); void SetViewportIfPossible(search::SearchParams & params); diff --git a/search/search_integration_tests/downloader_search_test.cpp b/search/search_integration_tests/downloader_search_test.cpp index 234c86f79e..9d3023c90f 100644 --- a/search/search_integration_tests/downloader_search_test.cpp +++ b/search/search_integration_tests/downloader_search_test.cpp @@ -131,7 +131,6 @@ private: p.m_inputLocale = "en"; p.m_viewport = m2::RectD(0, 0, 1, 1); p.m_mode = search::Mode::Downloader; - p.m_forceSearch = true; p.m_suggestsEnabled = false; return p; } diff --git a/search/search_integration_tests/interactive_search_test.cpp b/search/search_integration_tests/interactive_search_test.cpp index 8da096986a..1ffc39a2b1 100644 --- a/search/search_integration_tests/interactive_search_test.cpp +++ b/search/search_integration_tests/interactive_search_test.cpp @@ -142,7 +142,6 @@ UNIT_CLASS_TEST(InteractiveSearchTest, NearbyFeaturesInViewport) params.m_viewport = m2::RectD(m2::PointD(-0.5, -0.5), m2::PointD(0.5, 0.5)); params.m_mode = Mode::Viewport; params.m_minDistanceOnMapBetweenResults = 0.5; - params.m_forceSearch = true; params.m_suggestsEnabled = false; { diff --git a/search/search_params.hpp b/search/search_params.hpp index fbf57415bb..b7d9a0f828 100644 --- a/search/search_params.hpp +++ b/search/search_params.hpp @@ -46,9 +46,6 @@ struct SearchParams Mode m_mode = Mode::Everywhere; - // When true, search request can't be skipped. - bool m_forceSearch = false; - // Needed to generate search suggests. bool m_suggestsEnabled = false;