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-05 14:31:33 +0200 |
commit | 8094a21526cd46074d529509c00a03d0839fc28e (patch) | |
tree | c6ed97373e779338fbc8e1a2f0382d50d5361a72 /svl | |
parent | 392635220aad1c361897fedeff1c4e7ca5c8476d (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)
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 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) |