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

matteocam matteo.campanelli at gmail.com
Thu Jun 11 09:47:18 PDT 2015


 editeng/source/outliner/outliner.cxx        |   18 ++++++++++++------
 include/editeng/outliner.hxx                |    2 ++
 svx/source/svdraw/svdotextdecomposition.cxx |   12 ++++++++----
 3 files changed, 22 insertions(+), 10 deletions(-)

New commits:
commit 0d64bfe7c447be8b508e04990e0b1a81ae352be8
Author: matteocam <matteo.campanelli at gmail.com>
Date:   Thu Jun 11 12:45:36 2015 -0400

    Added Outliner::GetEmptyParaObject
    
    Change-Id: I233ad3e908fd69791f8b044d2ab4af2cd65d2484

diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx
index a4c285b..060e628 100644
--- a/editeng/source/outliner/outliner.cxx
+++ b/editeng/source/outliner/outliner.cxx
@@ -2121,12 +2121,8 @@ NonOverflowingText *Outliner::GetNonOverflowingText() const
     // Only overflowing text, i.e. 1st line of 1st paragraph overflowing
     if ( nCount == 0 && nOverflowLine == 0)
     {
-        EditTextObject *pEmptyText = pEditEngine->GetEmptyTextObject();
-        OutlinerParaObject* pPObj = new OutlinerParaObject( *pEmptyText );
-        pPObj->SetOutlinerMode(GetMode());
-
-        delete pEmptyText;
-        return new NonOverflowingText(pPObj, "");
+        OutlinerParaObject* pEmptyPObj = GetEmptyParaObject();
+        return new NonOverflowingText(pEmptyPObj, "");
 
     } else if (nCount < 0) { // No overflowing Text: all para-s included
         nCount = GetParagraphCount();
@@ -2158,6 +2154,16 @@ NonOverflowingText *Outliner::GetNonOverflowingText() const
     return new NonOverflowingText(pHeadParas, aPreOverflowingTxt);
 }
 
+OutlinerParaObject *Outliner::GetEmptyParaObject() const
+{
+    EditTextObject *pEmptyText = pEditEngine->GetEmptyTextObject();
+    OutlinerParaObject* pPObj = new OutlinerParaObject( *pEmptyText );
+    pPObj->SetOutlinerMode(GetMode());
+
+    delete pEmptyText;
+    return pPObj;
+}
+
 OverflowingText *Outliner::GetOverflowingText() const
 {
     if ( pEditEngine->GetOverflowingParaNum() < 0)
diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx
index 76f0157..0cef0cc 100644
--- a/include/editeng/outliner.hxx
+++ b/include/editeng/outliner.hxx
@@ -765,6 +765,8 @@ public:
     void ClearOverflowingParaNum();
     bool IsPageOverflow();
 
+    OutlinerParaObject *GetEmptyParaObject() const;
+
     virtual void    DepthChangedHdl();
     void            SetDepthChangedHdl(const Link& rLink){aDepthChangedHdl=rLink;}
     Link            GetDepthChangedHdl() const { return aDepthChangedHdl; }
diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx
index 5bcfbe3..d88dc56 100644
--- a/svx/source/svdraw/svdotextdecomposition.cxx
+++ b/svx/source/svdraw/svdotextdecomposition.cxx
@@ -738,7 +738,7 @@ OutlinerParaObject *SdrTextObj::impGetNonOverflowingParaObject(SdrOutliner *pOut
         pNonOverflowingTxt =
                 pOutliner->GetNonOverflowingText();
 
-    pOutliner->Clear();
+    //pOutliner->Clear();
     //pOutliner->SetStyleSheet( 0, pEdtOutl->GetStyleSheet(0));
 
     if (pNonOverflowingTxt->mPreOverflowingTxt == "" &&
@@ -756,6 +756,10 @@ OutlinerParaObject *SdrTextObj::impGetNonOverflowingParaObject(SdrOutliner *pOut
 
         if (pNonOverflowingTxt->mpHeadParas != NULL)
             pOutliner->SetText(*pNonOverflowingTxt->mpHeadParas);
+        else { // set empty paraObj
+
+            pOutliner->SetText(*emptyParaObj);
+        }
 
         pOutliner->AddText(*pPObj);
     }
@@ -780,7 +784,7 @@ OutlinerParaObject *SdrTextObj::impGetOverflowingParaObject(SdrOutliner *pOutlin
         return NULL;
 
     // XXX: Not sure if necessary
-    pOutliner->Clear();
+    //pOutliner->Clear();
 
     OutlinerParaObject *pCurTxt = pNextTextObj->GetOutlinerParaObject();
     pOutliner->SetText(*pCurTxt);
@@ -802,7 +806,7 @@ OutlinerParaObject *SdrTextObj::impGetOverflowingParaObject(SdrOutliner *pOutlin
     OutlinerParaObject *pJoiningPara = NULL;
 
     if (pOldPara0) {
-        pOutliner->Clear();
+        //pOutliner->Clear();
 
         pTmpPara0 = pOutliner->GetParagraph(0);
         pOutliner->SetText(mpOverflowingText->mTailTxt + aOldPara0Txt, pTmpPara0);
@@ -810,7 +814,7 @@ OutlinerParaObject *SdrTextObj::impGetOverflowingParaObject(SdrOutliner *pOutlin
     }
 
     // start actual composition
-    pOutliner->Clear();
+    //pOutliner->Clear();
 
     // Set headText at the beginning of box
     Paragraph *pNewPara0 = pOutliner->GetParagraph(0);


More information about the Libreoffice-commits mailing list