summaryrefslogtreecommitdiff
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-05 14:31:33 +0200
commit8094a21526cd46074d529509c00a03d0839fc28e (patch)
treec6ed97373e779338fbc8e1a2f0382d50d5361a72
parent392635220aad1c361897fedeff1c4e7ca5c8476d (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> (cherry picked from commit ba8fc726ebae7b1ebaf65ae462d56ee0b4af14a3)
-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 def0089a00e2..8481ed3986ab 100644
--- a/svl/source/undo/undo.cxx
+++ b/svl/source/undo/undo.cxx
@@ -1285,6 +1285,8 @@ void SfxUndoManager::RemoveOldestUndoActions( size_t const i_count )
void SfxUndoManager::dumpAsXml(xmlTextWriterPtr pWriter) const
{
+ UndoManagerGuard aGuard(*m_xData);
+
bool bOwns = false;
if (!pWriter)
{
@@ -1295,9 +1297,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)