Hi Kendy,

On Fri, 2011-07-01 at 16:43 +0200, Jan Holesovsky wrote:
> 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.

The patch is ok to me, but for completeness we should copy the
GetParameters map too. Could you please review my changes for this?

> Patch attached, please sign-off, and push to libreoffice-3-4.

I pushed it... but forgot to sign it off.

-- 
Cédric Bosdonnat
LibreOffice hacker
http://documentfoundation.org
OOo Eclipse Integration developer
http://cedric.bosdonnat.free.fr
>From 01fb7a1648a74d3171c30b57fb4e185d92187160 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cedric.bosdonnat....@free.fr>
Date: Fri, 1 Jul 2011 18:23:07 +0200
Subject: [PATCH] copied the IFieldMark::GetParameters too

---
 sw/source/core/docnode/ndcopy.cxx |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/sw/source/core/docnode/ndcopy.cxx b/sw/source/core/docnode/ndcopy.cxx
index 0176ada..6272576 100644
--- a/sw/source/core/docnode/ndcopy.cxx
+++ b/sw/source/core/docnode/ndcopy.cxx
@@ -203,6 +203,14 @@ namespace
                 const ::sw::mark::IFieldmark* const pOldFieldmark = dynamic_cast< const ::sw::mark::IFieldmark* >(pMark);
                 pNewFieldmark->SetFieldname(pOldFieldmark->GetFieldname());
                 pNewFieldmark->SetFieldHelptext(pOldFieldmark->GetFieldHelptext());
+                ::sw::mark::IFieldmark::parameter_map_t* pNewParams = pNewFieldmark->GetParameters();
+                const ::sw::mark::IFieldmark::parameter_map_t* pOldParams = pOldFieldmark->GetParameters();
+                ::sw::mark::IFieldmark::parameter_map_t::const_iterator pIt = pOldParams->begin();
+                while ( pIt != pOldParams->end() )
+                {
+                    pNewParams->insert( *pIt );
+                    pIt++;
+                }
             }
 
             ::sfx2::Metadatable const*const pMetadatable(
-- 
1.7.3.4

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to