Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArsentiy Milchakov <milcars@mapswithme.com>2017-08-01 18:42:42 +0300
committermpimenov <mpimenov@users.noreply.github.com>2017-08-02 16:04:37 +0300
commit80c4ce875a658acdcf41395916519c469d1d473f (patch)
tree5ce62dc7d5b7d22f282f39e43a0d27ebf25fcfe4 /indexer/editable_map_object.cpp
parentd4983dd818b0ffe07a47fb870e3c0a1fc6abd6d7 (diff)
remove default name duplications on save
Diffstat (limited to 'indexer/editable_map_object.cpp')
-rw-r--r--indexer/editable_map_object.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/indexer/editable_map_object.cpp b/indexer/editable_map_object.cpp
index 3f982ab72f..0f03d30793 100644
--- a/indexer/editable_map_object.cpp
+++ b/indexer/editable_map_object.cpp
@@ -73,6 +73,7 @@ bool IsProtocolSpecified(string const & website)
{
return GetProtocolNameLength(website) > 0;
}
+
osm::FakeNames MakeFakeSource(StringUtf8Multilang const & source,
vector<int8_t> const & mwmLanguages, StringUtf8Multilang & fakeSource)
{
@@ -335,7 +336,10 @@ void EditableMapObject::SetName(string name, int8_t langCode)
mwmInfo->GetRegionData().GetLanguages(mwmLanguages);
if (CanUseAsDefaultName(langCode, mwmLanguages))
+ {
m_name.AddString(StringUtf8Multilang::kDefaultCode, name);
+ return;
+ }
}
}
@@ -523,19 +527,22 @@ void EditableMapObject::SetOpeningHours(string const & openingHours)
void EditableMapObject::SetPointType() { m_geomType = feature::EGeomType::GEOM_POINT; }
-
-void EditableMapObject::RemoveBlankNames()
+void EditableMapObject::RemoveBlankAndDuplicationsForDefault()
{
- StringUtf8Multilang nameWithoutBlanks;
- m_name.ForEach([&nameWithoutBlanks](int8_t langCode, string const & name)
+ StringUtf8Multilang editedName;
+ string defaultName;
+ m_name.GetString(StringUtf8Multilang::kDefaultCode, defaultName);
+
+ m_name.ForEach([&defaultName, &editedName](int8_t langCode, string const & name)
{
- if (!name.empty())
- nameWithoutBlanks.AddString(langCode, name);
+ auto const duplicate = langCode != StringUtf8Multilang::kDefaultCode && defaultName == name;
+ if (!name.empty() && !duplicate)
+ editedName.AddString(langCode, name);
return true;
});
- m_name = nameWithoutBlanks;
+ m_name = editedName;
}
void EditableMapObject::RemoveNeedlessNames()
@@ -543,7 +550,7 @@ void EditableMapObject::RemoveNeedlessNames()
if (!IsNamesAdvancedModeEnabled())
RemoveFakeNames(m_fakeNames, m_name);
- RemoveBlankNames();
+ RemoveBlankAndDuplicationsForDefault();
}
// static