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

matteocam matteo.campanelli at gmail.com
Mon Jul 13 08:30:38 PDT 2015


 editeng/source/outliner/outliner.cxx       |   10 ++++++++--
 editeng/source/outliner/overflowingtxt.cxx |   10 ++++++++--
 include/editeng/overflowingtxt.hxx         |    4 +++-
 3 files changed, 19 insertions(+), 5 deletions(-)

New commits:
commit 1f71d4b088f43611094ae95d53c6bea44bf7a9ad
Author: matteocam <matteo.campanelli at gmail.com>
Date:   Mon Jul 13 11:29:58 2015 -0400

    Add bLastParaInterrupted to NonOverflowingText
    
    Change-Id: Ie6864bfbce088fabd3fba65c3e1313bc2fafcbac

diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx
index 2b03d26..a8e5be0 100644
--- a/editeng/source/outliner/outliner.cxx
+++ b/editeng/source/outliner/outliner.cxx
@@ -2131,7 +2131,8 @@ NonOverflowingText *Outliner::GetNonOverflowingText() const
     {
         ESelection aEmptySel(0,0,0,0);
         EditTextObject *pTObj = pEditEngine->CreateTextObject(aEmptySel);
-        return new NonOverflowingText(pTObj);
+        bool bLastParaInterrupted = true; // Last Para was interrupted since everything overflew
+        return new NonOverflowingText(pTObj, bLastParaInterrupted);
     } else { // Get the lines that of the overflowing para fit in the box
 
         sal_Int32 nOverflowingPara = nCount;
@@ -2159,7 +2160,12 @@ NonOverflowingText *Outliner::GetNonOverflowingText() const
                 ESelection(nStartPara, nStartPos, nOverflowingPara, nLen);
         }
         EditTextObject *pTObj = pEditEngine->CreateTextObject(aNonOverflowingTextSelection);
-        return new NonOverflowingText(pTObj);
+
+        sal_Int32 nLastLine = GetLineCount(nOverflowingPara)-1;
+        bool bLastParaInterrupted =
+            pEditEngine->GetOverflowingLineNum() < nLastLine;
+
+        return new NonOverflowingText(pTObj, bLastParaInterrupted);
     }
 }
 
diff --git a/editeng/source/outliner/overflowingtxt.cxx b/editeng/source/outliner/overflowingtxt.cxx
index 339a335..9b6da0a 100644
--- a/editeng/source/outliner/overflowingtxt.cxx
+++ b/editeng/source/outliner/overflowingtxt.cxx
@@ -55,12 +55,18 @@ ESelection OverflowingText::GetInsertionPointSel() const
 
 // class NonOverflowingText
 
-NonOverflowingText::NonOverflowingText(const EditTextObject *pTObj)
-    : mpContentTextObj(pTObj->Clone())
+NonOverflowingText::NonOverflowingText(const EditTextObject *pTObj,  bool bLastParaInterrupted)
+    : mpContentTextObj(pTObj->Clone()),
+      mbLastParaInterrupted(bLastParaInterrupted)
 {
      // XXX: may have to delete pTObj
 }
 
+bool NonOverflowingText::IsLastParaInterrupted() const
+{
+    return mbLastParaInterrupted;
+}
+
 
 OutlinerParaObject *NonOverflowingText::ToParaObject(Outliner *pOutliner) const
 {
diff --git a/include/editeng/overflowingtxt.hxx b/include/editeng/overflowingtxt.hxx
index 72d2355..449ca5a 100644
--- a/include/editeng/overflowingtxt.hxx
+++ b/include/editeng/overflowingtxt.hxx
@@ -60,13 +60,15 @@ class NonOverflowingText {
 public:
     OutlinerParaObject *ToParaObject(Outliner *) const;
     ESelection GetOverflowPointSel() const;
+    bool IsLastParaInterrupted() const;
 
 private:
         // Constructor
-        NonOverflowingText(const EditTextObject *pTObj);
+        NonOverflowingText(const EditTextObject *pTObj, bool bLastParaInterrupted);
 
         friend class Outliner;
         const EditTextObject *mpContentTextObj;
+        const bool mbLastParaInterrupted;
 };
 
 


More information about the Libreoffice-commits mailing list