From d615f042fb995dda1f2b8a1dbca8dde75bf475fb Mon Sep 17 00:00:00 2001 From: Daria Volvenkova Date: Fri, 30 Jun 2017 18:25:19 +0300 Subject: [PATCH] Fixed user marks updating. --- drape_frontend/user_mark_generator.cpp | 12 ++++++------ drape_frontend/user_mark_generator.hpp | 2 +- drape_frontend/user_marks_provider.cpp | 8 +------- drape_frontend/user_marks_provider.hpp | 5 +---- map/user_mark_container.cpp | 1 + 5 files changed, 10 insertions(+), 18 deletions(-) diff --git a/drape_frontend/user_mark_generator.cpp b/drape_frontend/user_mark_generator.cpp index a62b364966..176e8bca4e 100644 --- a/drape_frontend/user_mark_generator.cpp +++ b/drape_frontend/user_mark_generator.cpp @@ -26,19 +26,19 @@ void UserMarkGenerator::ClearUserMarks(GroupID groupId) UpdateLinesIndex(groupId); } -void UserMarkGenerator::SetUserMarks(uint32_t groupId, drape_ptr && marks) +void UserMarkGenerator::SetUserMarks(GroupID groupId, drape_ptr && marks) { - m_marks.insert(std::make_pair(groupId, std::move(marks))); + m_marks[groupId] = std::move(marks); UpdateMarksIndex(groupId); } -void UserMarkGenerator::SetUserLines(uint32_t groupId, drape_ptr && lines) +void UserMarkGenerator::SetUserLines(GroupID groupId, drape_ptr && lines) { - m_lines.insert(std::make_pair(groupId, std::move(lines))); + m_lines[groupId] = std::move(lines); UpdateLinesIndex(groupId); } -void UserMarkGenerator::UpdateMarksIndex(uint32_t groupId) +void UserMarkGenerator::UpdateMarksIndex(GroupID groupId) { for (auto & tileGroups : m_marksIndex) { @@ -65,7 +65,7 @@ void UserMarkGenerator::UpdateMarksIndex(uint32_t groupId) CleanIndex(); } -void UserMarkGenerator::UpdateLinesIndex(uint32_t groupId) +void UserMarkGenerator::UpdateLinesIndex(GroupID groupId) { for (auto & tileGroups : m_marksIndex) { diff --git a/drape_frontend/user_mark_generator.hpp b/drape_frontend/user_mark_generator.hpp index 053f8437b3..972c90019d 100644 --- a/drape_frontend/user_mark_generator.hpp +++ b/drape_frontend/user_mark_generator.hpp @@ -12,7 +12,7 @@ namespace df { -using GroupID = uint32_t; +using GroupID = size_t; using MarkGroups = std::map>; using LineGroups = std::map>; diff --git a/drape_frontend/user_marks_provider.cpp b/drape_frontend/user_marks_provider.cpp index 5cb7ab74ab..5a7411179f 100644 --- a/drape_frontend/user_marks_provider.cpp +++ b/drape_frontend/user_marks_provider.cpp @@ -6,20 +6,14 @@ df::UserMarksProvider::UserMarksProvider() { } -void df::UserMarksProvider::BeginRead() -{ - Lock(); -} - bool df::UserMarksProvider::IsDirty() const { return m_isDirty; } -void df::UserMarksProvider::EndRead() +void df::UserMarksProvider::ResetDirty() { m_isDirty = false; - Unlock(); } void df::UserMarksProvider::IncrementCounter() diff --git a/drape_frontend/user_marks_provider.hpp b/drape_frontend/user_marks_provider.hpp index 1874622a78..e20291aaf1 100644 --- a/drape_frontend/user_marks_provider.hpp +++ b/drape_frontend/user_marks_provider.hpp @@ -43,8 +43,6 @@ public: UserMarksProvider(); virtual ~UserMarksProvider() {} - void BeginRead(); - bool IsDirty() const; virtual bool IsDrawable() const = 0; @@ -56,8 +54,6 @@ public: /// never store UserLineMark reference virtual UserLineMark const * GetUserLineMark(size_t index) const = 0; - void EndRead(); - void IncrementCounter(); void DecrementCounter(); bool CanBeDeleted(); @@ -67,6 +63,7 @@ public: protected: void BeginWrite(); void SetDirty(); + void ResetDirty(); void EndWrite(); private: diff --git a/map/user_mark_container.cpp b/map/user_mark_container.cpp index c777739ca8..af66e38380 100644 --- a/map/user_mark_container.cpp +++ b/map/user_mark_container.cpp @@ -134,6 +134,7 @@ void UserMarkContainer::ReleaseController() engine->ClearUserMarksLayer(layerId); else engine->UpdateUserMarksLayer(layerId, this); + ResetDirty(); } }