diff --git a/map/bookmark.cpp b/map/bookmark.cpp index c7db0ec6a7..b32cca1f75 100644 --- a/map/bookmark.cpp +++ b/map/bookmark.cpp @@ -28,14 +28,16 @@ #include #include -Bookmark::Bookmark(m2::PointD const & ptOrg, UserMarkManager * manager, size_t containerId) - : Base(ptOrg, manager, containerId) +Bookmark::Bookmark(m2::PointD const & ptOrg, UserMarkManager * manager, size_t categoryId) + : Base(ptOrg, manager, UserMark::BOOKMARK) + , m_categoryId(categoryId) {} Bookmark::Bookmark(BookmarkData const & data, m2::PointD const & ptOrg, - UserMarkManager * manager, size_t containerId) - : Base(ptOrg, manager, containerId) + UserMarkManager * manager, size_t categoryId) + : Base(ptOrg, manager, UserMark::BOOKMARK) , m_data(data) + , m_categoryId(categoryId) {} void Bookmark::SetData(BookmarkData const & data) diff --git a/map/bookmark.hpp b/map/bookmark.hpp index 51c642092c..c4e2d53a97 100644 --- a/map/bookmark.hpp +++ b/map/bookmark.hpp @@ -74,10 +74,10 @@ class Bookmark : public UserMark { using Base = UserMark; public: - Bookmark(m2::PointD const & ptOrg, UserMarkManager * manager, size_t containerId); + Bookmark(m2::PointD const & ptOrg, UserMarkManager * manager, size_t categoryId); Bookmark(BookmarkData const & data, m2::PointD const & ptOrg, - UserMarkManager * manager, size_t containerId); + UserMarkManager * manager, size_t categoryId); void SetData(BookmarkData const & data); BookmarkData const & GetData() const; @@ -103,8 +103,11 @@ public: double GetScale() const; void SetScale(double scale); + size_t GetCategoryId() const { return m_categoryId; } + private: BookmarkData m_data; + size_t m_categoryId; }; class BookmarkCategory : public UserMarkContainer diff --git a/map/framework.cpp b/map/framework.cpp index 9d27c35bb8..1a8bf0837b 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -2116,16 +2116,17 @@ BookmarkManager const & Framework::GetBookmarkManager() const BookmarkAndCategory Framework::FindBookmark(UserMark const * mark) const { + Bookmark const * bookmark = static_cast(mark); BookmarkAndCategory empty; BookmarkAndCategory result; ASSERT_LESS_OR_EQUAL(GetBookmarkManager().GetBmCategoriesIds().size(), numeric_limits::max(), ()); - result.m_categoryIndex = mark->GetCategoryId(); + result.m_categoryIndex = bookmark->GetCategoryId(); ASSERT(result.m_categoryIndex != empty.m_categoryIndex, ()); size_t const sz = GetBookmarkManager().GetUserMarkCount(result.m_categoryIndex); ASSERT_LESS_OR_EQUAL(sz, numeric_limits::max(), ()); for (size_t i = 0; i < sz; ++i) { - if (mark == GetBookmarkManager().GetBookmark(result.m_categoryIndex, i)) + if (bookmark == GetBookmarkManager().GetBookmark(result.m_categoryIndex, i)) { result.m_bookmarkIndex = static_cast(i); break; diff --git a/map/user_mark.cpp b/map/user_mark.cpp index 774d0f4422..07da9f29a1 100644 --- a/map/user_mark.cpp +++ b/map/user_mark.cpp @@ -7,8 +7,8 @@ #include "base/string_utils.hpp" -UserMark::UserMark(m2::PointD const & ptOrg, UserMarkManager * manager, size_t type) -: m_ptOrg(ptOrg), m_manager(manager), m_type(min((UserMark::Type)type, UserMark::BOOKMARK)), m_id(type) +UserMark::UserMark(m2::PointD const & ptOrg, UserMarkManager * manager, UserMark::Type type) +: m_ptOrg(ptOrg), m_manager(manager), m_type(type), m_id(type) {} m2::PointD const & UserMark::GetPivot() const @@ -26,11 +26,6 @@ dp::Anchor UserMark::GetAnchor() const return dp::Center; } -float UserMark::GetDepth() const -{ - return m_manager->GetPointDepth(m_id); -} - df::RenderState::DepthLayer UserMark::GetDepthLayer() const { return df::RenderState::UserMarkLayer; diff --git a/map/user_mark.hpp b/map/user_mark.hpp index 5683f2adce..f18dbcb879 100644 --- a/map/user_mark.hpp +++ b/map/user_mark.hpp @@ -45,7 +45,7 @@ public: PREDEFINED_COUNT = BOOKMARK }; - UserMark(m2::PointD const & ptOrg, UserMarkManager * container, size_t type); + UserMark(m2::PointD const & ptOrg, UserMarkManager * container, UserMark::Type type); // df::UserPointMark overrides. bool IsDirty() const override { return m_isDirty; } @@ -54,7 +54,7 @@ public: m2::PointD const & GetPivot() const override; m2::PointD GetPixelOffset() const override; dp::Anchor GetAnchor() const override; - float GetDepth() const override; + virtual float GetDepth() const override { return 0.0f; }; df::RenderState::DepthLayer GetDepthLayer() const override; drape_ptr GetTitleDecl() const override { return nullptr; } drape_ptr GetColoredSymbols() const override { return nullptr; } @@ -70,9 +70,8 @@ public: bool HasCreationAnimation() const override { return false; } ms::LatLon GetLatLon() const; - virtual Type GetMarkType() const { return m_type; }; + virtual Type GetMarkType() const { return m_type; } virtual bool IsAvailableForSearch() const { return true; } - size_t GetCategoryId() const { return m_id; } protected: void SetDirty() { m_isDirty = true; }