summaryrefslogtreecommitdiff
path: root/sw/source/core/docnode
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2014-01-22 21:11:01 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-01-25 11:56:46 +0000
commitcc28ad9eb681e2eb0253910cc30afbf55ea5622b (patch)
tree12db30596605b7618df607bda9e42b9ffdfb81ca /sw/source/core/docnode
parent77d63a83125a2471be0d121211e914aa5616ce2b (diff)
fdo#67238: sw: fix table cell Unprotect
SwDoc::UnProtectCells() was setting the old box format (from aFmts) instead of the new one, and actually these 2 vectors are a map. (regression from 772101649cf16233bbaf0900aa9ebbc915151a95) Change-Id: I0881a1c499c51b5f3c257e9def1a2e9a00bcb639 (cherry picked from commit b2f9d1b43e4b14cc48327cdce14a03c826096579) Reviewed-on: https://gerrit.libreoffice.org/7638 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw/source/core/docnode')
-rw-r--r--sw/source/core/docnode/ndtbl.cxx17
1 files changed, 9 insertions, 8 deletions
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx
index 887dc9cba3f7..78a5226aa6a1 100644
--- a/sw/source/core/docnode/ndtbl.cxx
+++ b/sw/source/core/docnode/ndtbl.cxx
@@ -4424,22 +4424,23 @@ sal_Bool SwDoc::UnProtectCells( const SwSelBoxes& rBoxes )
? new SwUndoAttrTbl( *rBoxes[0]->GetSttNd()->FindTableNode() )
: 0;
- std::vector<SwFrmFmt*> aFmts, aNewFmts;
+ std::map<SwFrmFmt*, SwTableBoxFmt*> aFmtsMap;
for (size_t i = rBoxes.size(); i; )
{
SwTableBox* pBox = rBoxes[ --i ];
SwFrmFmt* pBoxFmt = pBox->GetFrmFmt();
if( pBoxFmt->GetProtect().IsCntntProtected() )
{
- std::vector<SwFrmFmt*>::iterator it = std::find( aFmts.begin(), aFmts.end(), pBoxFmt );
- if( aFmts.end() != it )
- pBox->ChgFrmFmt( (SwTableBoxFmt*)*it );
+ std::map<SwFrmFmt*, SwTableBoxFmt*>::const_iterator const it =
+ aFmtsMap.find(pBoxFmt);
+ if (aFmtsMap.end() != it)
+ pBox->ChgFrmFmt(it->second);
else
{
- aFmts.push_back( pBoxFmt );
- pBoxFmt = pBox->ClaimFrmFmt();
- pBoxFmt->ResetFmtAttr( RES_PROTECT );
- aNewFmts.push_back( pBoxFmt );
+ SwTableBoxFmt *const pNewBoxFmt(
+ dynamic_cast<SwTableBoxFmt*>(pBox->ClaimFrmFmt()));
+ pNewBoxFmt->ResetFmtAttr( RES_PROTECT );
+ aFmtsMap.insert(std::make_pair(pBoxFmt, pNewBoxFmt));
}
bChgd = sal_True;
}