summaryrefslogtreecommitdiff
path: root/svl/source/undo
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2016-08-04 12:39:18 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-08-04 11:56:32 +0000
commitba8fc726ebae7b1ebaf65ae462d56ee0b4af14a3 (patch)
tree999d90a29e9d72c22807afffe5fabe81ef2f0977 /svl/source/undo
parent428a1da60b88415e7db21353a42bed85b8b76ed9 (diff)
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/source/undo')
-rw-r--r--svl/source/undo/undo.cxx18
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)