[Libreoffice-commits] core.git: Branch 'feature/gsoc14-draw-chained-text-boxes' - 2 commits - svx/source

matteocam matteo.campanelli at gmail.com
Wed Aug 5 06:13:15 PDT 2015


 svx/source/svdraw/svdotxed.cxx |   28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

New commits:
commit 98b10d15f111c0960959c26f6fa5778f028a8228
Author: matteocam <matteo.campanelli at gmail.com>
Date:   Wed Aug 5 15:09:34 2015 +0200

    Set text object before flushing overflow checks
    
    Change-Id: Ie7e3162616f7d1ab53198dd0190326885a31b5fc

diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx
index f948674..92288ad 100644
--- a/svx/source/svdraw/svdotxed.cxx
+++ b/svx/source/svdraw/svdotxed.cxx
@@ -316,6 +316,8 @@ void SdrTextObj::EndTextEdit(SdrOutliner& rOutl)
 
         // Set parameters // Code from ImpSetTextEditParams
         ImpUpdateOutlParamsForOverflow(&rDrawOutl, GetNextLinkInChain());
+        const OutlinerParaObject *pObj = GetNextLinkInChain()->GetOutlinerParaObject();
+        rDrawOutl.SetText(*pObj);
 
         rDrawOutl.SetUpdateMode(true);
         // XXX: Change name of method above to impHandleChainingEventsNonEditMode
commit b0ad0b1a8294dd95f38fe4028787b01781e0ed68
Author: matteocam <matteo.campanelli at gmail.com>
Date:   Wed Aug 5 14:43:58 2015 +0200

    Update parameters for overflow as done for edt outl
    
    Change-Id: I963a50e8f5a6511cfe5dc9e5fe4d308c29d64d75

diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx
index 02c800fe..f948674 100644
--- a/svx/source/svdraw/svdotxed.cxx
+++ b/svx/source/svdraw/svdotxed.cxx
@@ -262,6 +262,18 @@ void SdrTextObj::TakeTextEditArea(Size* pPaperMin, Size* pPaperMax, Rectangle* p
     if (pViewInit!=NULL) *pViewInit=aViewInit;
 }
 
+void ImpUpdateOutlParamsForOverflow(SdrOutliner *pOutl, SdrTextObj *pTextObj)
+{
+    Size aPaperMin;
+    Size aPaperMax;
+    Rectangle aEditArea;
+    pTextObj->TakeTextEditArea(&aPaperMin,&aPaperMax,&aEditArea,NULL);
+
+    pOutl->SetMinAutoPaperSize(aPaperMin);
+    pOutl->SetMaxAutoPaperSize(aPaperMax);
+    pOutl->SetPaperSize(Size());
+}
+
 void SdrTextObj::EndTextEdit(SdrOutliner& rOutl)
 {
     OutlinerParaObject* pNewText = NULL;
@@ -286,13 +298,25 @@ void SdrTextObj::EndTextEdit(SdrOutliner& rOutl)
     rOutl.ClearOverflowingParaNum();
     // XXX: Experiment
     /* Flush overflow for next textbox */
-    if (IsChainable() &&
+    if (
+        IsChainable() &&
         GetNextLinkInChain() &&
         GetTextChain()->GetPendingOverflowCheck(GetNextLinkInChain()) )
     {
         GetTextChain()->SetPendingOverflowCheck(GetNextLinkInChain(), false);
         // NEXT: Prepare outliner for overflow
+        /* FIXME
+         * Outliner needs to be prepared in the same way it is prepared
+         * in SdrTextObj::impDecomposeChainedTextPrimitive.
+         * This is not immediately feasible because that code needs some parameters
+         * that are specific of decomposition.
+         * Is there any other part where we get those parameters, e.g. who prepares the editing outliner? XXX
+        */
         SdrOutliner rDrawOutl = GetNextLinkInChain()->ImpGetDrawOutliner();
+
+        // Set parameters // Code from ImpSetTextEditParams
+        ImpUpdateOutlParamsForOverflow(&rDrawOutl, GetNextLinkInChain());
+
         rDrawOutl.SetUpdateMode(true);
         // XXX: Change name of method above to impHandleChainingEventsNonEditMode
         GetNextLinkInChain()->impHandleChainingEventsDuringDecomposition(rDrawOutl);


More information about the Libreoffice-commits mailing list