From e950d0cca66eac9ed3925907e67d7fafa6aeafa6 Mon Sep 17 00:00:00 2001 From: Alex Zolotarev Date: Thu, 10 Mar 2016 14:07:38 +0300 Subject: [PATCH] [editor] ChangesetWrapper::Delete implementation. --- editor/changeset_wrapper.cpp | 10 ++++++++++ editor/changeset_wrapper.hpp | 3 +++ 2 files changed, 13 insertions(+) diff --git a/editor/changeset_wrapper.cpp b/editor/changeset_wrapper.cpp index 486bb01968..f1de710e39 100644 --- a/editor/changeset_wrapper.cpp +++ b/editor/changeset_wrapper.cpp @@ -123,4 +123,14 @@ void ChangesetWrapper::Modify(XMLFeature node) m_api.ModifyElement(node); } +void ChangesetWrapper::Delete(XMLFeature node) +{ + if (m_changesetId == kInvalidChangesetId) + m_changesetId = m_api.CreateChangeSet(m_changesetComments); + + // Changeset id should be updated for every OSM server commit. + node.SetAttribute("changeset", strings::to_string(m_changesetId)); + m_api.DeleteElement(node); +} + } // namespace osm diff --git a/editor/changeset_wrapper.hpp b/editor/changeset_wrapper.hpp index 4ab00af09d..d1665276f5 100644 --- a/editor/changeset_wrapper.hpp +++ b/editor/changeset_wrapper.hpp @@ -44,6 +44,9 @@ public: /// Node should have correct OSM "id" attribute set. void Modify(editor::XMLFeature node); + /// Throws exceptions from above list. + void Delete(editor::XMLFeature node); + private: /// Unfortunately, pugi can't return xml_documents from methods. /// Throws exceptions from above list.