From 2dfb7be1f62b5442cff61ba4cf92e508e060ad56 Mon Sep 17 00:00:00 2001 From: Daria Volvenkova Date: Tue, 6 Mar 2018 12:50:00 +0300 Subject: [PATCH] Do not save bookmarks immediately after loading. --- map/bookmark.hpp | 3 ++- map/bookmark_manager.cpp | 13 +++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/map/bookmark.hpp b/map/bookmark.hpp index 00405e8faf..91a890263b 100644 --- a/map/bookmark.hpp +++ b/map/bookmark.hpp @@ -128,7 +128,8 @@ public: std::string const & GetName() const { return m_name; } std::string const & GetFileName() const { return m_file; } - bool IsAutoSave() const { return m_autoSave; } + void EnableAutoSave(bool enable) { m_autoSave = enable; } + bool IsAutoSaveEnabled() const { return m_autoSave; } private: df::MarkGroupID const m_groupId; diff --git a/map/bookmark_manager.cpp b/map/bookmark_manager.cpp index 8ffceee1b8..548ed8ab1b 100644 --- a/map/bookmark_manager.cpp +++ b/map/bookmark_manager.cpp @@ -337,7 +337,7 @@ void BookmarkManager::NotifyChanges() { if (IsBookmarkCategory(groupId)) { - if (GetBmCategory(groupId)->IsAutoSave()) + if (GetBmCategory(groupId)->IsAutoSaveEnabled()) SaveToKMLFile(groupId); isBookmarks = true; } @@ -913,6 +913,7 @@ UserMarkLayer * BookmarkManager::GetGroup(df::MarkGroupID groupId) void BookmarkManager::CreateCategories(KMLDataCollection && dataCollection, bool autoSave) { ASSERT_THREAD_CHECKER(m_threadChecker, ()); + df::GroupIDSet loadedGroups; for (auto & data : dataCollection) { df::MarkGroupID groupId; @@ -931,7 +932,9 @@ void BookmarkManager::CreateCategories(KMLDataCollection && dataCollection, bool } else { - groupId = CreateBookmarkCategory(data->m_name, autoSave); + groupId = CreateBookmarkCategory(data->m_name, false /* autoSave */); + loadedGroups.insert(groupId); + group = GetBmCategory(groupId); group->SetFileName(data->m_file); group->SetIsVisible(data->m_visible); @@ -957,6 +960,12 @@ void BookmarkManager::CreateCategories(KMLDataCollection && dataCollection, bool } NotifyChanges(); + + for (auto const & groupId : loadedGroups) + { + auto * group = GetBmCategory(groupId); + group->EnableAutoSave(autoSave); + } } namespace