svx/source/svdraw/svdotextdecomposition.cxx | 58 ++++++++++++++-------------- svx/source/svdraw/svdotxed.cxx | 8 --- 2 files changed, 30 insertions(+), 36 deletions(-)
New commits: commit d7270b2f63688bb09ed0a9328a2fde57b38eace6 Author: matteocam <matteo.campane...@gmail.com> Date: Thu Jul 31 22:28:15 2014 +0300 Copy second paragraph by impCopyTextInTextObj Change-Id: Ia2131655e4c280c8f054dbd3dda2f230cabff415 diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx index ad2cfe6..fdfabdd 100644 --- a/svx/source/svdraw/svdotextdecomposition.cxx +++ b/svx/source/svdraw/svdotextdecomposition.cxx @@ -775,35 +775,33 @@ void SdrTextObj::impCopyTextInTextObj(SdrTextObj *pNextTextObj) const return; // trying to copy text in obj 1 - SdrText* pText = getActiveText(); + //SdrText* pText = getActiveText(); + + Rectangle &aNextRect = pNextTextObj->aRect; + SdrOutliner& rOutliner = pNextTextObj->ImpGetDrawOutliner(); + rOutliner.SetPaperSize( + Size( + aNextRect.Right()-aNextRect.Left(), + aNextRect.Bottom()-aNextRect.Top() + ) + ); + rOutliner.SetUpdateMode(true); + rOutliner.SetText(*mpOverflowingText); // XXX: copies overflown text + Size aNewSize(rOutliner.CalcTextSize()); + // create OutlinerParaObject for pNextTextObj + OutlinerParaObject* pNewParaObject=rOutliner.CreateParaObject(); + rOutliner.Clear(); + + aNewSize.Width()++; // because of possible rounding errors + aNewSize.Width()+=GetTextLeftDistance()+GetTextRightDistance(); + aNewSize.Height()+=GetTextUpperDistance()+GetTextLowerDistance(); + + Rectangle aNewRect(aNextRect); + aNewRect.SetSize(aNewSize); + pNextTextObj->ImpJustifyRect(aNewRect); + if (aNewRect!=aNextRect) { + pNextTextObj->SetLogicRect(aNewRect); - if( pText!=NULL && pText->GetOutlinerParaObject() && pModel!=NULL) - { - Rectangle &aNextRect = pNextTextObj->aRect; - SdrOutliner& rOutliner = pNextTextObj->ImpGetDrawOutliner(); - rOutliner.SetPaperSize( - Size( - aNextRect.Right()-aNextRect.Left(), - aNextRect.Bottom()-aNextRect.Top() - ) - ); - rOutliner.SetUpdateMode(true); - rOutliner.SetText(*pText->GetOutlinerParaObject()); - Size aNewSize(rOutliner.CalcTextSize()); - // create OutlinerParaObject for pNextTextObj - OutlinerParaObject* pNewParaObject=rOutliner.CreateParaObject(); - rOutliner.Clear(); - - aNewSize.Width()++; // because of possible rounding errors - aNewSize.Width()+=GetTextLeftDistance()+GetTextRightDistance(); - aNewSize.Height()+=GetTextUpperDistance()+GetTextLowerDistance(); - - Rectangle aNewRect(aNextRect); - aNewRect.SetSize(aNewSize); - pNextTextObj->ImpJustifyRect(aNewRect); - if (aNewRect!=aNextRect) { - pNextTextObj->SetLogicRect(aNewRect); - } // Set text object's string pNextTextObj->SetOutlinerParaObject( pNewParaObject ); @@ -1517,8 +1515,10 @@ void SdrTextObj::impDecomposeChainedTextPrimitive( // put overflowing text in next text box if (mpOverflowingText != NULL) { SdrTextObj *pNextTextObj = GetNextLinkInChain(); - //pNextTextObj->SetOutlinerParaObject( mpOverflowingText ); + assert (pNextTextObj); + impCopyTextInTextObj(pNextTextObj); + //pNextTextObj->SetOutlinerParaObject( mpOverflowingText ); //SdrOutliner rOutl = pNextTextObj->ImpGetDrawOutliner(); //pNextTextObj->BegTextEdit( rOutl ); // XXX: Also, will all those calls currently in impCopyTextInTextObj be necessary too? diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx index ec533bb..cffa559 100644 --- a/svx/source/svdraw/svdotxed.cxx +++ b/svx/source/svdraw/svdotxed.cxx @@ -265,16 +265,10 @@ void SdrTextObj::EndTextEdit(SdrOutliner& rOutl) { // set non overflow part of text to current box pNewText = rOutl.GetNonOverflowingParaObject(); - pNextText = rOutl.GetOverflowingParaObject(); // set overflowing text for SdrChainedTextPrimitive2D + pNextText = rOutl.GetOverflowingParaObject(); mpOverflowingText = pNextText; //SetOverflowingText( pNextText ); - - // XXX: should this SdrTextObj know "how much text to ask" by CreateParaObject? - // No, it must be the editengine (or outliner) to give it since it is - // a special case: we want to have something that may be interrupted - // within a paragraph itself. - } else // standard case { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits