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.