sw/source/core/inc/frame.hxx | 3 +- sw/source/core/text/frmform.cxx | 49 ---------------------------------------- sw/source/core/text/txtfly.cxx | 36 ++++++++++++++--------------- sw/source/core/text/xmldump.cxx | 44 +++++++++++++++++++++++++---------- 4 files changed, 52 insertions(+), 80 deletions(-)
New commits: commit 1483c90ddc4a9f47b9a7da2d65da12f3e71cee60 Author: Cédric Bosdonnat <cedric.bosdonnat....@free.fr> Date: Thu Mar 8 17:06:29 2012 +0100 sw: SwTxtFrm formatting, cleaned up useless debug code and translated comments diff --git a/sw/source/core/text/frmform.cxx b/sw/source/core/text/frmform.cxx index e417e84..1d1d444 100644 --- a/sw/source/core/text/frmform.cxx +++ b/sw/source/core/text/frmform.cxx @@ -1772,26 +1772,6 @@ void SwTxtFrm::_Format( SwParaPortion *pPara ) void SwTxtFrm::Format( const SwBorderAttrs * ) { -#if OSL_DEBUG_LEVEL > 1 - const XubString aXXX = GetTxtNode()->GetTxt(); - const SwTwips nDbgY = Frm().Top(); - (void)nDbgY; - const SwPageFrm *pDbgPage = FindPageFrm(); - const MSHORT nDbgPageNr = pDbgPage->GetPhyPageNum(); - (void)nDbgPageNr; - // Um zu gucken, ob es einen Ftn-Bereich gibt. - const SwFrm *pDbgFtnCont = (const SwFrm*)(FindPageFrm()->FindFtnCont()); - (void)pDbgFtnCont; - - // nStopAt laesst sich vom CV bearbeiten. - static MSHORT nStopAt = 0; - if( nStopAt == GetFrmId() ) - { - int i = GetFrmId(); - (void)i; - } -#endif - SWRECTFN( this ) CalcAdditionalFirstLineOffset(); @@ -1951,35 +1931,8 @@ void SwTxtFrm::Format( const SwBorderAttrs * ) if ( pPara ) pPara->SetPrepMustFit( sal_False ); -#if OSL_DEBUG_LEVEL > 1 - // Hier ein Instrumentarium, um ungewoehnlichen Master/Follow-Kombinationen, - // insbesondere bei Fussnoten, auf die Schliche zu kommen - if( IsFollow() || GetFollow() ) - { - SwTxtFrm *pTmpFrm = IsFollow() ? FindMaster() : this; - const SwPageFrm *pTmpPage = pTmpFrm->FindPageFrm(); - MSHORT nPgNr = pTmpPage->GetPhyPageNum(); - MSHORT nLast; - MSHORT nDummy = 0; // nur zum Breakpoint setzen - while( pTmpFrm->GetFollow() ) - { - pTmpFrm = pTmpFrm->GetFollow(); - nLast = nPgNr; - pTmpPage = pTmpFrm->FindPageFrm(); - nPgNr = pTmpPage->GetPhyPageNum(); - if( nLast > nPgNr ) - ++nDummy; // schon fast eine Assertion wert - else if( nLast == nPgNr ) - ++nDummy; // bei Spalten voellig normal, aber sonst!? - else if( nLast < nPgNr - 1 ) - ++nDummy; // kann schon mal temporaer vorkommen - } - } -#endif - CalcBaseOfstForFly(); - // OD 2004-03-17 #i11860# - _CalcHeightOfLastLine(); + _CalcHeightOfLastLine(); // #i11860# } /************************************************************************* diff --git a/sw/source/core/text/txtfly.cxx b/sw/source/core/text/txtfly.cxx index 0fc70b8..a3b4630 100644 --- a/sw/source/core/text/txtfly.cxx +++ b/sw/source/core/text/txtfly.cxx @@ -2013,16 +2013,16 @@ void SwTxtFly::CalcLeftMargin( SwRect &rFly, (rFly.*fnRect->fnSetLeft)( nLeft ); } -/************************************************************************* - * SwTxtFly::FlyToRect() - * - * IN: dokumentglobal (rRect) - * OUT: dokumentglobal (return-Wert) - * Liefert zu einem SwFlyFrm das von ihm in Anspruch genommene Rechteck - * unter Beruecksichtigung der eingestellten Attribute fuer den Abstand - * zum Text zurueck. - *************************************************************************/ // #i68520# +/** + Computes the bounds of an anchored object. This takes the + object wrapping and contour into account. + + @param pAnchoredObj the object for which to get the bounds + @param rLine the bounds of the line to format + + @return the flying object bounds + */ SwRect SwTxtFly::AnchoredObjToRect( const SwAnchoredObject* pAnchoredObj, const SwRect &rLine ) const { @@ -2044,15 +2044,15 @@ SwRect SwTxtFly::AnchoredObjToRect( const SwAnchoredObject* pAnchoredObj, // des Rahmens waechst. SwAnchoredObjList::size_type nFlyPos = GetPos( pAnchoredObj ); - // Bei LEFT und RIGHT vergroessern wir das Rechteck. - // Hier gibt es einige Probleme, wenn mehrere Frames zu sehen sind. - // Zur Zeit wird nur der einfachste Fall angenommen: - // LEFT bedeutet, dass der Text links vom Frame fliessen soll, - // d.h. der Frame blaeht sich bis zum rechten Rand der Printarea - // oder bis zum naechsten Frame auf. - // Bei RIGHT ist es umgekehrt. - // Ansonsten wird immer der eingestellte Abstand zwischen Text - // und Frame aufaddiert. + // LEFT and RIGHT, we grow the rectangle. + // We have some problems, when several frames are to be seen. + // At the moment, only the easier case is assumed: + // + LEFT means that the text muss flaw on the left of the frame, + // that is that the trame expands to the right edge of the + // print area or to the the next frame. + // + RIGHT is the opposite. + // Otherwise the set distance between text and frame is always + // added up. switch( _GetSurroundForTextWrap( pAnchoredObj ) ) { case SURROUND_LEFT : commit e500deff4c2bc0d29626684039519a326388a778 Author: Cédric Bosdonnat <cedric.bosdonnat....@free.fr> Date: Thu Mar 8 15:53:31 2012 +0100 sw layout dump: replaced pointers by FrmIds and added frame bounds diff --git a/sw/source/core/inc/frame.hxx b/sw/source/core/inc/frame.hxx index 742a358..0939c63 100644 --- a/sw/source/core/inc/frame.hxx +++ b/sw/source/core/inc/frame.hxx @@ -909,7 +909,8 @@ public: public: /** if writer is NULL, dumps the layout structure as XML in layout.xml */ - virtual void dumpAsXml(xmlTextWriterPtr writer = NULL ); + virtual void dumpAsXml(xmlTextWriterPtr writer = NULL); + virtual void dumpInfosAsXml(xmlTextWriterPtr writer); virtual void dumpAsXmlAttributes(xmlTextWriterPtr writer); void dumpChildrenAsXml(xmlTextWriterPtr writer); bool IsCollapse() const; diff --git a/sw/source/core/text/xmldump.cxx b/sw/source/core/text/xmldump.cxx index 3530753..3b0bfe4 100644 --- a/sw/source/core/text/xmldump.cxx +++ b/sw/source/core/text/xmldump.cxx @@ -28,6 +28,7 @@ */ #include "frame.hxx" +#include "frmfmt.hxx" #include "sectfrm.hxx" #include "tabfrm.hxx" #include "txtfrm.hxx" @@ -284,6 +285,10 @@ void SwFrm::dumpAsXml( xmlTextWriterPtr writer ) dumpAsXmlAttributes( writer ); + xmlTextWriterStartElement( writer, BAD_CAST( "infos" ) ); + dumpInfosAsXml( writer ); + xmlTextWriterEndElement( writer ); + // Dump Anchored objects if any SwSortedObjs* pAnchored = GetDrawObjs(); if ( pAnchored && pAnchored->Count( ) > 0 ) @@ -327,13 +332,28 @@ void SwFrm::dumpAsXml( xmlTextWriterPtr writer ) lcl_freeWriter( writer ); } +void SwFrm::dumpInfosAsXml( xmlTextWriterPtr writer ) +{ + // output the Frm + xmlTextWriterStartElement( writer, BAD_CAST( "bounds" ) ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "left" ), "%ld", Frm().Left() ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "top" ), "%ld", Frm().Top() ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "width" ), "%ld", Frm().Width() ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "height" ), "%ld", Frm().Height() ); + xmlTextWriterEndElement( writer ); +} + void SwFrm::dumpAsXmlAttributes( xmlTextWriterPtr writer ) { - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "ptr" ), "%p", this ); - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "next" ), "%p", GetNext() ); - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "prev" ), "%p", GetPrev() ); - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "upper" ), "%p", this->GetUpper() ); - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "lower" ), "%p", this->GetLower() ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "id" ), "%u", GetFrmId() ); + if ( GetNext( ) ) + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "next" ), "%u", GetNext()->GetFrmId() ); + if ( GetPrev( ) ) + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "prev" ), "%u", GetPrev()->GetFrmId() ); + if ( GetUpper( ) ) + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "upper" ), "%u", GetUpper()->GetFrmId() ); + if ( GetLower( ) ) + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "lower" ), "%u", GetLower()->GetFrmId() ); if ( IsTxtFrm( ) ) { SwTxtFrm *pTxtFrm = ( SwTxtFrm * ) this; @@ -358,10 +378,8 @@ void SwAnchoredObject::dumpAsXml( xmlTextWriterPtr writer ) writer = lcl_createDefaultWriter(); xmlTextWriterStartElement( writer, BAD_CAST( getElementName() ) ); - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "ptr" ), "%p", this ); xmlTextWriterEndElement( writer ); - if ( bCreateWriter ) lcl_freeWriter( writer ); } @@ -370,30 +388,30 @@ void SwTxtFrm::dumpAsXmlAttributes( xmlTextWriterPtr writer ) { SwFrm::dumpAsXmlAttributes( writer ); if ( HasFollow() ) - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "follow" ), "%p", GetFollow() ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "follow" ), "%u", GetFollow()->GetFrmId() ); if (m_pPrecede != NULL) - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "precede" ), "%p", (SwTxtFrm*)m_pPrecede ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "precede" ), "%u", static_cast<SwTxtFrm*>(m_pPrecede)->GetFrmId() ); } void SwSectionFrm::dumpAsXmlAttributes( xmlTextWriterPtr writer ) { SwFrm::dumpAsXmlAttributes( writer ); if ( HasFollow() ) - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "follow" ), "%p", GetFollow() ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "follow" ), "%u", GetFollow()->GetFrmId() ); if (m_pPrecede != NULL) - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "precede" ), "%p", (SwSectionFrm*)m_pPrecede ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "precede" ), "%u", static_cast<SwSectionFrm*>( m_pPrecede )->GetFrmId() ); } void SwTabFrm::dumpAsXmlAttributes( xmlTextWriterPtr writer ) { SwFrm::dumpAsXmlAttributes( writer ); if ( HasFollow() ) - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "follow" ), "%p", GetFollow() ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "follow" ), "%u", GetFollow()->GetFrmId() ); if (m_pPrecede != NULL) - xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "precede" ), "%p", (SwTabFrm*)m_pPrecede ); + xmlTextWriterWriteFormatAttribute( writer, BAD_CAST( "precede" ), "%u", static_cast<SwTabFrm*>( m_pPrecede )->GetFrmId() ); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits