diff options
author | RĂ¼diger Timm <rt@openoffice.org> | 2004-05-03 12:46:43 +0000 |
---|---|---|
committer | RĂ¼diger Timm <rt@openoffice.org> | 2004-05-03 12:46:43 +0000 |
commit | 1b13908a948aa26fb54f1c65b3d533829e499439 (patch) | |
tree | eae5de3f97811bef4a4996d4031d4160408652cc /sw/source/core | |
parent | 37d1143035a711eaac074d3293d05a266f1338a2 (diff) |
INTEGRATION: CWS gt03 (1.20.76); FILE MERGED
2004/04/21 08:28:36 gt 1.20.76.4: #i26167# missing type in declaration in SwCellFrm::GetPreviousCell() for bIsInFirstLine
2004/04/20 09:28:12 gt 1.20.76.3: RESYNC: (1.22-1.23); FILE MERGED
2004/03/24 08:17:16 gt 1.20.76.2: RESYNC: (1.20-1.22); FILE MERGED
2004/03/11 14:55:05 fme 1.20.76.1: #26165# Feature - Multiple headline rows in tables
Diffstat (limited to 'sw/source/core')
-rw-r--r-- | sw/source/core/layout/findfrm.cxx | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/sw/source/core/layout/findfrm.cxx b/sw/source/core/layout/findfrm.cxx index 5cc186d9df9f..94028ad888d3 100644 --- a/sw/source/core/layout/findfrm.cxx +++ b/sw/source/core/layout/findfrm.cxx @@ -2,9 +2,9 @@ * * $RCSfile: findfrm.cxx,v $ * - * $Revision: 1.23 $ + * $Revision: 1.24 $ * - * last change: $Author: obo $ $Date: 2004-03-17 12:48:39 $ + * last change: $Author: rt $ $Date: 2004-05-03 13:46:43 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -1452,31 +1452,31 @@ SwCellFrm* SwCellFrm::GetPreviousCell() const while( !pRow->IsRowFrm() || !pRow->GetUpper()->IsTabFrm() ) pRow = pRow->GetUpper(); - SwFrm* pTmpTab = (SwTabFrm*)pRow->GetUpper(); + ASSERT( pRow->GetUpper() && pRow->GetUpper()->IsTabFrm(), "GetPreviousCell without Table" ); - ASSERT( pTmpTab && pTmpTab->IsTabFrm(), "GetPreviousCell without Table" ); - SwTabFrm* pTab = (SwTabFrm*)pTmpTab; + SwTabFrm* pTab = (SwTabFrm*)pRow->GetUpper(); - const SwFrm* pPrev = pRow->GetPrev(); - const bool bRepeat = pTab->GetTable()->IsHeadlineRepeat(); - const bool bIsInFirstLine = bRepeat ? - pPrev && !pPrev->GetPrev() : - !pPrev; - - if ( bIsInFirstLine && pTab->IsFollow() ) + if ( pTab->IsFollow() ) { - SwTabFrm *pMaster = (SwTabFrm*)pTab->FindMaster(); - if ( pMaster && pMaster->HasFollowFlowLine() ) + const SwFrm* pTmp = pTab->GetFirstNonHeadlineRow(); + const bool bIsInFirstLine = ( pTmp == pRow ); + + if ( bIsInFirstLine ) { - SwRowFrm* pMasterRow = (SwRowFrm*)pMaster->Lower(); - while ( pMasterRow->GetNext() ) + SwTabFrm *pMaster = (SwTabFrm*)pTab->FindMaster(); + if ( pMaster && pMaster->HasFollowFlowLine() ) { - pMasterRow = (SwRowFrm*)pMasterRow->GetNext(); - } + SwRowFrm* pMasterRow = (SwRowFrm*)pMaster->Lower(); + while ( pMasterRow->GetNext() ) + { + pMasterRow = (SwRowFrm*)pMasterRow->GetNext(); + } - pRet = lcl_FindCorrespondingCellFrm( *((SwRowFrm*)pRow), *this, *pMasterRow, false ); + pRet = lcl_FindCorrespondingCellFrm( *((SwRowFrm*)pRow), *this, *pMasterRow, false ); + } } } + return pRet; } @@ -1500,14 +1500,11 @@ const SwRowFrm* SwFrm::IsInSplitTableRow() const !pTab->GetFollow() ) return NULL; - SwRowFrm* pFollowRow = (SwRowFrm*)pTab->GetFollow()->Lower(); + // skip headline + const SwRowFrm* pFollowRow = pTab->GetFollow()->GetFirstNonHeadlineRow(); ASSERT( pFollowRow, "SwFrm::IsInSplitTableRow() does not work" ) - // skip headline - if ( pTab->GetTable()->IsHeadlineRepeat() ) - pFollowRow = (SwRowFrm*)pFollowRow->GetNext(); - return pFollowRow; } @@ -1525,13 +1522,16 @@ const SwRowFrm* SwFrm::IsInFollowFlowRow() const ASSERT( pRow->GetUpper()->IsTabFrm(), "Confusion in table layout" ) const SwTabFrm* pTab = (SwTabFrm*)pRow->GetUpper(); + const SwTabFrm* pMaster = pTab->IsFollow() ? pTab->FindMaster() : 0; - const bool bIsInFirstLine = pTab->GetTable()->IsHeadlineRepeat() ? - pRow->GetPrev() && !pRow->GetPrev()->GetPrev() : - !pRow->GetPrev(); + if ( !pMaster || !pMaster->HasFollowFlowLine() ) + return NULL; + + const SwFrm* pTmp = pTab->GetFirstNonHeadlineRow(); + const bool bIsInFirstLine = ( pTmp == pRow ); - if ( !pMaster || !pMaster->HasFollowFlowLine() || !bIsInFirstLine ) + if ( !bIsInFirstLine ) return NULL; SwRowFrm* pMasterRow = (SwRowFrm*)pMaster->Lower(); |