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
path: root/editor
diff options
context:
space:
mode:
authorAlex Zolotarev <alex@maps.me>2016-03-24 18:44:54 +0300
committerAlex Zolotarev <alex@maps.me>2016-03-24 18:44:54 +0300
commita802ad336517ad5701ff4b44492ee51f9395d67b (patch)
treeba61c55975f82a86a64ff7050e2df0fdb8249371 /editor
parentfbd217f2f42f1ea6ea4fd237c4f2d430d3b7f463 (diff)
parenta460d6d2f2015dc2ba627cf099d78df51b23f46e (diff)
Merge pull request #2486 from Zverik/name_int_name
[editor] Fix name:int_name
Diffstat (limited to 'editor')
-rw-r--r--editor/editor_tests/xml_feature_test.cpp38
-rw-r--r--editor/xml_feature.cpp13
-rw-r--r--editor/xml_feature.hpp2
3 files changed, 51 insertions, 2 deletions
diff --git a/editor/editor_tests/xml_feature_test.cpp b/editor/editor_tests/xml_feature_test.cpp
index dd6f19091e..1a6d208bd7 100644
--- a/editor/editor_tests/xml_feature_test.cpp
+++ b/editor/editor_tests/xml_feature_test.cpp
@@ -53,6 +53,7 @@ UNIT_TEST(XMLFeature_Setters)
feature.SetName("Gorki Park");
feature.SetName("en", "Gorki Park");
feature.SetName("ru", "Парк Горького");
+ feature.SetName("int_name", "Gorky Park");
feature.SetHouse("10");
feature.SetTagValue("opening_hours", "Mo-Fr 08:15-17:30");
@@ -66,6 +67,7 @@ UNIT_TEST(XMLFeature_Setters)
<tag k="name" v="Gorki Park" />
<tag k="name:en" v="Gorki Park" />
<tag k="name:ru" v="Парк Горького" />
+ <tag k="int_name" v="Gorky Park" />
<tag k="addr:housenumber" v="10" />
<tag k="opening_hours" v="Mo-Fr 08:15-17:30" />
<tag k="amenity" v="atm" />
@@ -75,6 +77,40 @@ UNIT_TEST(XMLFeature_Setters)
TEST_EQUAL(sstr.str(), expectedString, ());
}
+UNIT_TEST(XMLFeature_UintLang)
+{
+ XMLFeature feature(XMLFeature::Type::Node);
+
+ feature.SetCenter(MercatorBounds::FromLatLon(55.79, 37.47));
+ feature.SetModificationTime(my::StringToTimestamp("2015-11-27T21:13:32Z"));
+
+ feature.SetName(StringUtf8Multilang::kDefaultCode, "Gorki Park");
+ feature.SetName(StringUtf8Multilang::GetLangIndex("ru"), "Парк Горького");
+ feature.SetName(StringUtf8Multilang::kInternationalCode, "Gorky Park");
+ stringstream sstr;
+ feature.Save(sstr);
+
+ auto const expectedString = R"(<?xml version="1.0"?>
+<node lat="55.79" lon="37.47" timestamp="2015-11-27T21:13:32Z">
+ <tag k="name" v="Gorki Park" />
+ <tag k="name:ru" v="Парк Горького" />
+ <tag k="int_name" v="Gorky Park" />
+</node>
+)";
+
+ TEST_EQUAL(sstr.str(), expectedString, ());
+
+ XMLFeature f2(expectedString);
+ TEST_EQUAL(f2.GetName(StringUtf8Multilang::kDefaultCode), "Gorki Park", ());
+ TEST_EQUAL(f2.GetName(StringUtf8Multilang::GetLangIndex("ru")), "Парк Горького", ());
+ TEST_EQUAL(f2.GetName(StringUtf8Multilang::kInternationalCode), "Gorky Park", ());
+
+ TEST_EQUAL(f2.GetName(), "Gorki Park", ());
+ TEST_EQUAL(f2.GetName("default"), "Gorki Park", ());
+ TEST_EQUAL(f2.GetName("ru"), "Парк Горького", ());
+ TEST_EQUAL(f2.GetName("int_name"), "Gorky Park", ());
+}
+
UNIT_TEST(XMLFeature_ToOSMString)
{
XMLFeature feature(XMLFeature::Type::Node);
@@ -140,6 +176,7 @@ auto const kTestNode = R"(<?xml version="1.0"?>
<tag k="name" v="Gorki Park" />
<tag k="name:en" v="Gorki Park" />
<tag k="name:ru" v="Парк Горького" />
+ <tag k="int_name" v="Gorky Park" />
<tag k="addr:housenumber" v="10" />
<tag k="opening_hours" v="Mo-Fr 08:15-17:30" />
<tag k="amenity" v="atm" />
@@ -165,6 +202,7 @@ UNIT_TEST(XMLFeature_FromXml)
TEST_EQUAL(feature.GetName("default"), "Gorki Park", ());
TEST_EQUAL(feature.GetName("en"), "Gorki Park", ());
TEST_EQUAL(feature.GetName("ru"), "Парк Горького", ());
+ TEST_EQUAL(feature.GetName("int_name"), "Gorky Park", ());
TEST_EQUAL(feature.GetName("No such language"), "", ());
TEST_EQUAL(feature.GetTagValue("opening_hours"), "Mo-Fr 08:15-17:30", ());
diff --git a/editor/xml_feature.cpp b/editor/xml_feature.cpp
index 3b7abad3b6..2367f036eb 100644
--- a/editor/xml_feature.cpp
+++ b/editor/xml_feature.cpp
@@ -64,6 +64,8 @@ namespace editor
char const * const XMLFeature::kDefaultLang =
StringUtf8Multilang::GetLangByCode(StringUtf8Multilang::kDefaultCode);
+char const * const XMLFeature::kIntlLang =
+ StringUtf8Multilang::GetLangByCode(StringUtf8Multilang::kInternationalCode);
XMLFeature::XMLFeature(Type const type)
{
@@ -228,6 +230,8 @@ XMLFeature::TMercatorGeometry XMLFeature::GetGeometry() const
string XMLFeature::GetName(string const & lang) const
{
+ if (lang == kIntlLang)
+ return GetTagValue(kIntlName);
auto const suffix = (lang == kDefaultLang || lang.empty()) ? "" : ":" + lang;
return GetTagValue(kDefaultName + suffix);
}
@@ -244,8 +248,13 @@ void XMLFeature::SetName(string const & name)
void XMLFeature::SetName(string const & lang, string const & name)
{
- auto const suffix = (lang == kDefaultLang || lang.empty()) ? "" : ":" + lang;
- SetTagValue(kDefaultName + suffix, name);
+ if (lang == kIntlLang)
+ SetTagValue(kIntlName, name);
+ else
+ {
+ auto const suffix = (lang == kDefaultLang || lang.empty()) ? "" : ":" + lang;
+ SetTagValue(kDefaultName + suffix, name);
+ }
}
void XMLFeature::SetName(uint8_t const langCode, string const & name)
diff --git a/editor/xml_feature.hpp b/editor/xml_feature.hpp
index 09043e9f75..f6f09240fd 100644
--- a/editor/xml_feature.hpp
+++ b/editor/xml_feature.hpp
@@ -25,8 +25,10 @@ DECLARE_EXCEPTION(NoHeader, XMLFeatureError);
class XMLFeature
{
static constexpr char const * kDefaultName = "name";
+ static constexpr char const * kIntlName = "int_name";
static constexpr char const * kLocalName = "name:";
static char const * const kDefaultLang;
+ static char const * const kIntlLang;
public:
// Used in point to string serialization.