svl/source/undo/undo.cxx |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

New commits:
commit ba8fc726ebae7b1ebaf65ae462d56ee0b4af14a3
Author: Miklos Vajna <vmik...@collabora.co.uk>
Date:   Thu Aug 4 12:39:18 2016 +0200

    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 <vmik...@collabora.co.uk>
    Tested-by: Jenkins <c...@libreoffice.org>

diff --git a/svl/source/undo/undo.cxx b/svl/source/undo/undo.cxx
index 1caf382..a198f27 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)
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to