diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-08-04 12:39:18 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-08-04 11:56:32 +0000 |
commit | ba8fc726ebae7b1ebaf65ae462d56ee0b4af14a3 (patch) | |
tree | 999d90a29e9d72c22807afffe5fabe81ef2f0977 /svl | |
parent | tdf#78506 RTF import: fix handling of invalid \levelnumbers (diff) | |
download | core-ba8fc726ebae7b1ebaf65ae462d56ee0b4af14a3.tar.gz core-ba8fc726ebae7b1ebaf65ae462d56ee0b4af14a3.zip |
svl: expose redo actions in SfxUndoManager::dumpAsXml()
To see if an undo action is actually deleted or just moved to the redo
stack.
Change-Id: I40632ea29353e50b643b8b1831d5ffdf443ca75a
Reviewed-on: https://gerrit.libreoffice.org/27871
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'svl')
-rw-r--r-- | svl/source/undo/undo.cxx | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/svl/source/undo/undo.cxx b/svl/source/undo/undo.cxx index 1caf382a8bec..a198f271b415 100644 --- a/svl/source/undo/undo.cxx +++ b/svl/source/undo/undo.cxx @@ -1254,6 +1254,8 @@ void SfxUndoManager::RemoveOldestUndoAction() void SfxUndoManager::dumpAsXml(xmlTextWriterPtr pWriter) const { + UndoManagerGuard aGuard(*m_xData); + bool bOwns = false; if (!pWriter) { @@ -1264,9 +1266,23 @@ void SfxUndoManager::dumpAsXml(xmlTextWriterPtr pWriter) const xmlTextWriterStartElement(pWriter, BAD_CAST("sfxUndoManager")); xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nUndoActionCount"), BAD_CAST(OString::number(GetUndoActionCount()).getStr())); + xmlTextWriterWriteAttribute(pWriter, BAD_CAST("nRedoActionCount"), BAD_CAST(OString::number(GetRedoActionCount()).getStr())); + xmlTextWriterStartElement(pWriter, BAD_CAST("undoActions")); for (size_t i = 0; i < GetUndoActionCount(); ++i) - GetUndoAction(i)->dumpAsXml(pWriter); + { + const SfxUndoArray* pUndoArray = m_xData->pActUndoArray; + pUndoArray->aUndoActions[pUndoArray->nCurUndoAction - 1 - i].pAction->dumpAsXml(pWriter); + } + xmlTextWriterEndElement(pWriter); + + xmlTextWriterStartElement(pWriter, BAD_CAST("redoActions")); + for (size_t i = 0; i < GetRedoActionCount(); ++i) + { + const SfxUndoArray* pUndoArray = m_xData->pActUndoArray; + pUndoArray->aUndoActions[pUndoArray->nCurUndoAction + i].pAction->dumpAsXml(pWriter); + } + xmlTextWriterEndElement(pWriter); xmlTextWriterEndElement(pWriter); if (bOwns) |