summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mst@apache.org>2011-09-17 21:40:14 +0000
committerMichael Stahl <mst@apache.org>2011-09-17 21:40:14 +0000
commit26eb58e28f65db8caecc66333ab4a72f90f56594 (patch)
tree96bdddeef40dc835d034609e8dd7f7807011e8f2
parent40c412acf761c386a6de15a92db0fcdd5a05004c (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.cxx15
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;
}
}