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/kml
diff options
context:
space:
mode:
authorDaria Volvenkova <d.volvenkova@corp.mail.ru>2019-12-04 14:28:13 +0300
committerArsentiy Milchakov <milcars@mapswithme.com>2020-01-13 12:04:14 +0300
commit9691cc75eff1e2119cce586d06c21f562386e0d8 (patch)
tree1422726c9a0a48c3e1d0f514dfa3177d5ae313a4 /kml
parentc796a1342fd7d9ea68076a1d77c22d2945ee2210 (diff)
[bookmarks] Extended bookmarks icons.
Diffstat (limited to 'kml')
-rw-r--r--kml/kml_tests/tests_data.hpp2
-rw-r--r--kml/pykmlib/bindings.cpp20
-rw-r--r--kml/serdes.cpp4
-rw-r--r--kml/serdes_binary.hpp12
-rw-r--r--kml/types.hpp15
5 files changed, 46 insertions, 7 deletions
diff --git a/kml/kml_tests/tests_data.hpp b/kml/kml_tests/tests_data.hpp
index b81b5f8a8e..b182f9da11 100644
--- a/kml/kml_tests/tests_data.hpp
+++ b/kml/kml_tests/tests_data.hpp
@@ -1364,7 +1364,7 @@ std::vector<uint8_t> const kBinKmlV4 = {
};
std::vector<uint8_t> const kBinKml = {
- 0x05, 0x00, 0x00, 0x1E, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00,
+ 0x06, 0x00, 0x00, 0x1E, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x74, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00,
diff --git a/kml/pykmlib/bindings.cpp b/kml/pykmlib/bindings.cpp
index b3eb35068b..14e28c9748 100644
--- a/kml/pykmlib/bindings.cpp
+++ b/kml/pykmlib/bindings.cpp
@@ -300,6 +300,14 @@ std::string PredefinedColorToString(PredefinedColor c)
case PredefinedColor::Brown: return "BROWN";
case PredefinedColor::Green: return "GREEN";
case PredefinedColor::Orange: return "ORANGE";
+ case PredefinedColor::DeepPurple: return "DEEPPURPLE";
+ case PredefinedColor::LightBlue: return "LIGHTBLUE";
+ case PredefinedColor::Cyan: return "CYAN";
+ case PredefinedColor::Teal: return "TEAL";
+ case PredefinedColor::Lime: return "LIME";
+ case PredefinedColor::DeepOrange: return "DEEPORANGE";
+ case PredefinedColor::Gray: return "GRAY";
+ case PredefinedColor::BlueGray: return "BLUEGRAY";
case PredefinedColor::Count: CHECK(false, ("Unknown predefined color")); return {};
}
}
@@ -343,6 +351,12 @@ std::string BookmarkIconToString(BookmarkIcon icon)
case BookmarkIcon::Sights: return "SIGHTS";
case BookmarkIcon::Swim: return "SWIM";
case BookmarkIcon::Water: return "WATER";
+ case BookmarkIcon::Bar: return "BAR";
+ case BookmarkIcon::Transport: return "TRANSPORT";
+ case BookmarkIcon::Viewpoint: return "VIEWPOINT";
+ case BookmarkIcon::Sport: return "SPORT";
+ case BookmarkIcon::Start: return "START";
+ case BookmarkIcon::Finish: return "FINISH";
case BookmarkIcon::Count: CHECK(false, ("Unknown bookmark icon")); return {};
}
}
@@ -698,6 +712,12 @@ BOOST_PYTHON_MODULE(pykmlib)
.value(BookmarkIconToString(BookmarkIcon::Sights).c_str(), BookmarkIcon::Sights)
.value(BookmarkIconToString(BookmarkIcon::Swim).c_str(), BookmarkIcon::Swim)
.value(BookmarkIconToString(BookmarkIcon::Water).c_str(), BookmarkIcon::Water)
+ .value(BookmarkIconToString(BookmarkIcon::Bar).c_str(), BookmarkIcon::Bar)
+ .value(BookmarkIconToString(BookmarkIcon::Transport).c_str(), BookmarkIcon::Transport)
+ .value(BookmarkIconToString(BookmarkIcon::Viewpoint).c_str(), BookmarkIcon::Viewpoint)
+ .value(BookmarkIconToString(BookmarkIcon::Sport).c_str(), BookmarkIcon::Sport)
+ .value(BookmarkIconToString(BookmarkIcon::Start).c_str(), BookmarkIcon::Start)
+ .value(BookmarkIconToString(BookmarkIcon::Finish).c_str(), BookmarkIcon::Finish)
.export_values();
class_<ColorData>("ColorData")
diff --git a/kml/serdes.cpp b/kml/serdes.cpp
index 747d0e3813..4550b06b45 100644
--- a/kml/serdes.cpp
+++ b/kml/serdes.cpp
@@ -154,7 +154,7 @@ BookmarkIcon GetIcon(std::string const & iconName)
for (size_t i = 0; i < static_cast<size_t>(BookmarkIcon::Count); ++i)
{
auto const icon = static_cast<BookmarkIcon>(i);
- if (iconName == DebugPrint(icon))
+ if (iconName == ToString(icon))
return icon;
}
return BookmarkIcon::None;
@@ -375,7 +375,7 @@ void SaveBookmarkExtendedData(KmlWriter::WriterWrapper & writer, BookmarkData co
}
if (bookmarkData.m_icon != BookmarkIcon::None)
- writer << kIndent6 << "<mwm:icon>" << DebugPrint(bookmarkData.m_icon) << "</mwm:icon>\n";
+ writer << kIndent6 << "<mwm:icon>" << ToString(bookmarkData.m_icon) << "</mwm:icon>\n";
if (!bookmarkData.m_boundTracks.empty())
{
diff --git a/kml/serdes_binary.hpp b/kml/serdes_binary.hpp
index a9e45e1984..7ee94ad48c 100644
--- a/kml/serdes_binary.hpp
+++ b/kml/serdes_binary.hpp
@@ -26,7 +26,8 @@ enum class Version : uint8_t
V3 = 3, // 7th May 2018 (persistent feature types).
V4 = 4, // 26th August 2019 (key-value properties and nearestToponym for bookmarks and tracks, cities -> toponyms).
V5 = 5, // 21st November 2019 (extended color palette).
- Latest = V5
+ V6 = 6, // 3rd December 2019 (extended bookmark icons).
+ Latest = V6
};
class SerializerKml
@@ -138,8 +139,11 @@ public:
NonOwningReaderSource source(reader);
auto const v = ReadPrimitiveFromSource<Version>(source);
- if (v != Version::Latest && v != Version::V2 && v != Version::V3 && v != Version::V4)
+ if (v != Version::Latest && v != Version::V2 && v != Version::V3 && v != Version::V4 &&
+ v != Version::V5)
+ {
MYTHROW(DeserializeException, ("Incorrect file version."));
+ }
ReadDeviceId(source);
ReadServerId(source);
@@ -148,9 +152,9 @@ public:
auto subReader = reader.CreateSubReader(source.Pos(), source.Size());
InitializeIfNeeded(*subReader);
- if (v == Version::V5 || v == Version::V4)
+ if (v == Version::V6 || v == Version::V5 || v == Version::V4)
{
- // NOTE: v.4 and v.5 are binary compatible.
+ // NOTE: v.4, v.5 and v.6 are binary compatible.
DeserializeCategory(subReader, m_data);
DeserializeBookmarks(subReader, m_data);
DeserializeTracks(subReader, m_data);
diff --git a/kml/types.hpp b/kml/types.hpp
index d4e94eb5e1..e06ad84e07 100644
--- a/kml/types.hpp
+++ b/kml/types.hpp
@@ -117,6 +117,15 @@ enum class BookmarkIcon : uint16_t
Sights,
Swim,
Water,
+
+ // Extended icons.
+ Bar,
+ Transport,
+ Viewpoint,
+ Sport,
+ Start,
+ Finish,
+
Count
};
@@ -145,6 +154,12 @@ inline std::string ToString(BookmarkIcon icon)
case BookmarkIcon::Sights: return "Sights";
case BookmarkIcon::Swim: return "Swim";
case BookmarkIcon::Water: return "Water";
+ case BookmarkIcon::Bar: return "Bar";
+ case BookmarkIcon::Transport: return "Transport";
+ case BookmarkIcon::Viewpoint: return "Viewpoint";
+ case BookmarkIcon::Sport: return "Sport";
+ case BookmarkIcon::Start: return "Start";
+ case BookmarkIcon::Finish: return "Finish";
case BookmarkIcon::Count: return {};
}
UNREACHABLE();