diff options
author | Michael Stahl <mst@apache.org> | 2011-09-17 21:40:14 +0000 |
---|---|---|
committer | Michael Stahl <mst@apache.org> | 2011-09-17 21:40:14 +0000 |
commit | 26eb58e28f65db8caecc66333ab4a72f90f56594 (patch) | |
tree | 96bdddeef40dc835d034609e8dd7f7807011e8f2 | |
parent | 40c412acf761c386a6de15a92db0fcdd5a05004c (diff) |
sw34bf06: #i117825#: try to reduce collateral damage from #i104949# fix:
only ignore text:variable-set fields that are hidden and at start of para.
# HG changeset patch
# User Michael Stahl <mst@openoffice.org>
# Date 1304511729 0
# Node ID 3b8bef840a50f19ff04ffb92bc6906ac2b6828ad
# Parent f573e7e8e68c3741b01779dbba749ab85ee90d1c
-rw-r--r-- | sw/source/core/table/swtable.cxx | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/sw/source/core/table/swtable.cxx b/sw/source/core/table/swtable.cxx index e4fc3278d4e1..df7ee9ca63a9 100644 --- a/sw/source/core/table/swtable.cxx +++ b/sw/source/core/table/swtable.cxx @@ -2582,6 +2582,7 @@ sal_uLong SwTableBox::IsValidNumTxtNd( sal_Bool bCheckAttr ) const // Flys/Felder/.. if( pHts ) { + xub_StrLen nNextSetField = 0; for( sal_uInt16 n = 0; n < pHts->Count(); ++n ) { const SwTxtAttr* pAttr = (*pHts)[ n ]; @@ -2589,11 +2590,21 @@ sal_uLong SwTableBox::IsValidNumTxtNd( sal_Bool bCheckAttr ) const *pAttr->GetStart() || *pAttr->GetAnyEnd() < rTxt.Len() ) { - if ( pAttr->Which() == RES_TXTATR_FIELD ) + if ((*pAttr->GetStart() == nNextSetField) && + (pAttr->Which() == RES_TXTATR_FIELD)) { + // #i104949# hideous hack for report builder: + // it inserts hidden variable-set fields at + // the beginning of para in cell, but they + // should not turn cell into text cell const SwField* pField = pAttr->GetFld().GetFld(); - if ( pField && pField->GetTypeId() == TYP_SETFLD ) + if (pField && + (pField->GetTypeId() == TYP_SETFLD) && + (0 != (static_cast<SwSetExpField const*> + (pField)->GetSubType() & + nsSwExtendedSubType::SUB_INVISIBLE))) { + nNextSetField = *pAttr->GetStart() + 1; continue; } } |