diff options
Diffstat (limited to 'sw/source/core/doc/docfld.cxx')
-rw-r--r-- | sw/source/core/doc/docfld.cxx | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/sw/source/core/doc/docfld.cxx b/sw/source/core/doc/docfld.cxx index be10fcefe9a7..f6e2ede98500 100644 --- a/sw/source/core/doc/docfld.cxx +++ b/sw/source/core/doc/docfld.cxx @@ -751,8 +751,10 @@ void SwDoc::SetNewFldLst(bool bFlag) // der StartIndex kann optional mit angegeben werden (z.B. wenn dieser // zuvor schon mal erfragt wurde - ist sonst eine virtuelle Methode !!) -_SetGetExpFld::_SetGetExpFld( const SwNodeIndex& rNdIdx, const SwTxtFld* pFld, - const SwIndex* pIdx ) +_SetGetExpFld::_SetGetExpFld( + const SwNodeIndex& rNdIdx, + const SwTxtFld* pFld, + const SwIndex* pIdx ) { eSetGetExpFldType = TEXTFIELD; CNTNT.pTxtFld = pFld; @@ -902,6 +904,15 @@ void _SetGetExpFld::SetBodyPos( const SwCntntFrm& rFrm ) } } +sal_Bool _SetGetExpFld::operator==( const _SetGetExpFld& rFld ) const +{ + return nNode == rFld.nNode + && nCntnt == rFld.nCntnt + && ( !CNTNT.pTxtFld + || !rFld.CNTNT.pTxtFld + || CNTNT.pTxtFld == rFld.CNTNT.pTxtFld ); +} + sal_Bool _SetGetExpFld::operator<( const _SetGetExpFld& rFld ) const { if( nNode < rFld.nNode || ( nNode == rFld.nNode && nCntnt < rFld.nCntnt )) @@ -2712,17 +2723,12 @@ bool SwDoc::UpdateFld(SwTxtFld * pDstTxtFld, SwField & rSrcFld, SwPosition aPosition( pDstTxtFld->GetTxtNode() ); aPosition.nContent = *pDstTxtFld->GetStart(); - SwUndo *const pUndo( new SwUndoFieldFromDoc( - aPosition, *pDstFld, rSrcFld, pMsgHnt, bUpdateFlds) ); + SwUndo *const pUndo( new SwUndoFieldFromDoc( aPosition, *pDstFld, rSrcFld, pMsgHnt, bUpdateFlds) ); GetIDocumentUndoRedo().AppendUndo(pUndo); } - // Das gefundene Feld wird angepasst ... - //pDstFld->ChangeFormat( rSrcFld.GetFormat() ); - //pDstFld->SetLanguage( rSrcFld.GetLanguage() ); - SwField * pNewFld = rSrcFld.CopyField(); - pDstFmtFld->SetFld(pNewFld); + pDstFmtFld->SetField(pNewFld); switch( nFldWhich ) { @@ -2798,7 +2804,7 @@ bool SwDoc::PutValueToField(const SwPosition & rPos, const Any& rVal, sal_uInt16 nWhich) { Any aOldVal; - SwField * pField = GetField(rPos); + SwField * pField = GetFieldAtPos(rPos); if (GetIDocumentUndoRedo().DoesUndo() && |