Hi, https://bugs.freedesktop.org/show_bug.cgi?id=38374
In the document attached to the bug, when you copy the described table, do edits there, and save it as .doc, the changes are lost. These are in fact 2 bugs, but I fixed the more serious one. One is that when you copy/paste a fieldmark, the essential attributes are not preserved; later, when saving, the fieldmark is of unknown type, and ignored. We should save even the unknown fieldmarks I think, but here I fixed the root cause - that the attributes are not copied. Patch attached, please sign-off, and push to libreoffice-3-4. Thank you, Kendy
>From f1eaef6ec0f701cf3dfb223fdbc97c3eb17d1f9c Mon Sep 17 00:00:00 2001 From: Jan Holesovsky <ke...@suse.cz> Date: Fri, 1 Jul 2011 16:35:39 +0200 Subject: [PATCH] Copy fieldmark properties when copying/pasting, fdo#38374. --- sw/source/core/docnode/ndcopy.cxx | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-) diff --git a/sw/source/core/docnode/ndcopy.cxx b/sw/source/core/docnode/ndcopy.cxx index acdb9a9..0176ada 100644 --- a/sw/source/core/docnode/ndcopy.cxx +++ b/sw/source/core/docnode/ndcopy.cxx @@ -186,14 +186,25 @@ namespace // Explicitly try to get exactly the same name as in the source // because NavigatorReminders, DdeBookmarks etc. ignore the proposed name pDestDoc->getIDocumentMarkAccess()->renameMark(pNewMark, pMark->GetName()); + + // copying additional attributes for bookmarks or fieldmarks ::sw::mark::IBookmark* const pNewBookmark = dynamic_cast< ::sw::mark::IBookmark* const >(pNewMark); - if(pNewBookmark) /* copying additional attributes for bookmarks */ + if(pNewBookmark) { const ::sw::mark::IBookmark* const pOldBookmark = dynamic_cast< const ::sw::mark::IBookmark* >(pMark); pNewBookmark->SetKeyCode(pOldBookmark->GetKeyCode()); pNewBookmark->SetShortName(pOldBookmark->GetShortName()); } + ::sw::mark::IFieldmark* const pNewFieldmark = + dynamic_cast< ::sw::mark::IFieldmark* const >(pNewMark); + if(pNewFieldmark) + { + const ::sw::mark::IFieldmark* const pOldFieldmark = dynamic_cast< const ::sw::mark::IFieldmark* >(pMark); + pNewFieldmark->SetFieldname(pOldFieldmark->GetFieldname()); + pNewFieldmark->SetFieldHelptext(pOldFieldmark->GetFieldHelptext()); + } + ::sfx2::Metadatable const*const pMetadatable( dynamic_cast< ::sfx2::Metadatable const* >(pMark)); ::sfx2::Metadatable *const pNewMetadatable( -- 1.7.5.4
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice