From ac61f4e77b9f7dcea82aadaeaccfd2ecf7135908 Mon Sep 17 00:00:00 2001 From: Alex Zolotarev Date: Thu, 17 Mar 2016 14:12:09 +0300 Subject: [PATCH] =?UTF-8?q?[editor]=20Always=20display=20correct=20feature?= =?UTF-8?q?=E2=80=99s=20street.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- map/framework.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/map/framework.cpp b/map/framework.cpp index 3d4a020aa9..6045380e00 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -2359,9 +2359,13 @@ bool Framework::ParseEditorDebugCommand(search::SearchParams const & params) namespace { -vector FilterNearbyStreets(vector const & streets) +vector FilterNearbyStreets(vector const & streets, + string const & exactFeatureStreet = "") { vector results; + // Exact feature street always goes first in Editor UI street list. + if (!exactFeatureStreet.empty()) + results.push_back(exactFeatureStreet); // Reasonable number of different nearby street names to display in UI. constexpr size_t kMaxNumberOfNearbyStreetsToDisplay = 8; for (auto const & street : streets) @@ -2413,7 +2417,7 @@ bool Framework::GetEditableMapObject(FeatureID const & fid, osm::EditableMapObje search::ReverseGeocoder const coder(m_model.GetIndex()); vector streets; coder.GetNearbyStreets(fid.m_mwmId, feature::GetCenter(*feature), streets); - emo.SetNearbyStreets(FilterNearbyStreets(streets)); + emo.SetNearbyStreets(FilterNearbyStreets(streets, street)); } else { @@ -2422,7 +2426,7 @@ bool Framework::GetEditableMapObject(FeatureID const & fid, osm::EditableMapObje auto const streets = coder.GetNearbyFeatureStreets(ft); if (streets.second < streets.first.size()) street = streets.first[streets.second].m_name; - emo.SetNearbyStreets(FilterNearbyStreets(streets.first)); + emo.SetNearbyStreets(FilterNearbyStreets(streets.first, street)); } emo.SetStreet(street); return true;