[Libreoffice-commits] core.git: Branch 'distro/mimo/mimo-5-4-7-2' - 5 commits - configure.ac ReleaseNote.LINAGORA.txt sc/inc sc/source writerfilter/source

Bevilacqua Jean-Sebastien realitix at gmail.com
Thu Jun 28 09:29:19 UTC 2018


 ReleaseNote.LINAGORA.txt                         |    9 +++++
 configure.ac                                     |    2 -
 sc/inc/dpobject.hxx                              |    2 -
 sc/inc/dpoutput.hxx                              |    6 +--
 sc/source/core/data/dpobject.cxx                 |   20 ++++++-----
 sc/source/core/data/dpoutput.cxx                 |   41 +++++++++++------------
 sc/source/ui/docshell/dbdocfun.cxx               |    2 -
 writerfilter/source/rtftok/rtfdispatchsymbol.cxx |    1 
 writerfilter/source/rtftok/rtfdispatchvalue.cxx  |    5 ++
 writerfilter/source/rtftok/rtfdocumentimpl.cxx   |    3 +
 writerfilter/source/rtftok/rtfdocumentimpl.hxx   |    1 
 11 files changed, 57 insertions(+), 35 deletions(-)

New commits:
commit 84cdc5b975a208eecf96cb73014f465650380623
Author: Bevilacqua Jean-Sebastien <realitix at gmail.com>
Date:   Wed May 23 11:34:13 2018 +0200

    bump product version to 5.4.7.2.M6

diff --git a/ReleaseNote.LINAGORA.txt b/ReleaseNote.LINAGORA.txt
index 199253ebd3a5..7f63505f33a4 100644
--- a/ReleaseNote.LINAGORA.txt
+++ b/ReleaseNote.LINAGORA.txt
@@ -1,3 +1,9 @@
+libreoffice-5-4-7-2.M6
+    * acim#1133: tdf#117043 pivot table refresh fix
+
+libreoffice-5-4-7-2.M5
+    * RTF fixes: Port LO 4.3.7.2 Linagora patch
+
 libreoffice-5-4-7-2.M4
     * Initialization of the 5-4-1-1 MIMO version
     * Apply RTF patch
diff --git a/configure.ac b/configure.ac
index 3459f2bd2a3f..99253014d044 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea.
 
-AC_INIT([LibreOffice],[5.4.7.2.M5],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[5.4.7.2.M6],[],[],[http://documentfoundation.org/])
 
 AC_PREREQ([2.59])
 
commit 6b3a95b016d20a96a6f53c670e1b5053befc786e
Author: rking <rking at linagora.com>
Date:   Tue May 15 08:10:21 2018 -0700

    acim#1133: tdf#117043 pivot table refresh fix

diff --git a/sc/inc/dpobject.hxx b/sc/inc/dpobject.hxx
index aaed76a7e141..5c464f6f4b1a 100644
--- a/sc/inc/dpobject.hxx
+++ b/sc/inc/dpobject.hxx
@@ -124,7 +124,7 @@ public:
     void ClearTableData();
     void ReloadGroupTableData();
 
-    void                Output( const ScAddress& rPos );
+    void                Output( const ScAddress& rPos ,bool aFlag=false);
     ScRange             GetNewOutputRange( bool& rOverflow );
 
     ScRange GetOutputRangeByType( sal_Int32 nType );
diff --git a/sc/inc/dpoutput.hxx b/sc/inc/dpoutput.hxx
index 3e99e0e40d93..2209d2775003 100644
--- a/sc/inc/dpoutput.hxx
+++ b/sc/inc/dpoutput.hxx
@@ -85,9 +85,9 @@ private:
                                 const css::sheet::DataResult& rData );
     void            HeaderCell( SCCOL nCol, SCROW nRow, SCTAB nTab,
                                 const css::sheet::MemberResult& rData,
-                                bool bColHeader, long nLevel );
+                                bool bColHeader, long nLevel ,bool aFlag=false);
 
-    void FieldCell(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScDPOutLevelData& rData, bool bInTable);
+    void FieldCell(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScDPOutLevelData& rData, bool bInTable,bool aFlag=false);
 
     void            CalcSizes();
 
@@ -104,7 +104,7 @@ public:
 
     void            SetPosition( const ScAddress& rPos );
 
-    void            Output();           //! Refresh?
+    void            Output(bool aFlag=false);           //! Refresh?
     ScRange GetOutputRange( sal_Int32 nRegionType = css::sheet::DataPilotOutputRangeType::WHOLE );
     long            GetHeaderRows();
     bool            HasError();         // range overflow or exception from source
diff --git a/sc/source/core/data/dpobject.cxx b/sc/source/core/data/dpobject.cxx
index b29289f93fbc..2fc5e361550b 100644
--- a/sc/source/core/data/dpobject.cxx
+++ b/sc/source/core/data/dpobject.cxx
@@ -901,21 +901,23 @@ ScRange ScDPObject::GetNewOutputRange( bool& rOverflow )
     }
 }
 
-void ScDPObject::Output( const ScAddress& rPos )
+void ScDPObject::Output( const ScAddress& rPos ,bool aFlag)
 {
     //  clear old output area
-    pDoc->DeleteAreaTab( aOutRange.aStart.Col(), aOutRange.aStart.Row(),
-                         aOutRange.aEnd.Col(),   aOutRange.aEnd.Row(),
-                         aOutRange.aStart.Tab(), InsertDeleteFlags::ALL );
-    pDoc->RemoveFlagsTab( aOutRange.aStart.Col(), aOutRange.aStart.Row(),
-                          aOutRange.aEnd.Col(),   aOutRange.aEnd.Row(),
-                          aOutRange.aStart.Tab(), ScMF::Auto );
-
+    if (!aFlag)
+    {
+        pDoc->DeleteAreaTab(aOutRange.aStart.Col(), aOutRange.aStart.Row(),
+            aOutRange.aEnd.Col(), aOutRange.aEnd.Row(),
+            aOutRange.aStart.Tab(), InsertDeleteFlags::ALL);
+        pDoc->RemoveFlagsTab(aOutRange.aStart.Col(), aOutRange.aStart.Row(),
+            aOutRange.aEnd.Col(), aOutRange.aEnd.Row(),
+            aOutRange.aStart.Tab(), ScMF::Auto);
+    }
     CreateOutput();             // create xSource and pOutput if not already done
 
     pOutput->SetPosition( rPos );
 
-    pOutput->Output();
+    pOutput->Output(aFlag);
 
     //  aOutRange is always the range that was last output to the document
     aOutRange = pOutput->GetOutputRange();
diff --git a/sc/source/core/data/dpoutput.cxx b/sc/source/core/data/dpoutput.cxx
index d9fe4a1aaadd..e940bd359d1d 100644
--- a/sc/source/core/data/dpoutput.cxx
+++ b/sc/source/core/data/dpoutput.cxx
@@ -281,7 +281,7 @@ void ScDPOutputImpl::OutputBlockFrame ( SCCOL nStartCol, SCROW nStartRow, SCCOL
 
 void lcl_SetStyleById( ScDocument* pDoc, SCTAB nTab,
                     SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
-                    sal_uInt16 nStrId )
+                    sal_uInt16 nStrId,bool aFlag=false)
 {
     if ( nCol1 > nCol2 || nRow1 > nRow2 )
     {
@@ -305,8 +305,8 @@ void lcl_SetStyleById( ScDocument* pDoc, SCTAB nTab,
         if ( nStrId==STR_PIVOT_STYLE_CATEGORY || nStrId==STR_PIVOT_STYLE_TITLE )
             rSet.Put( SvxHorJustifyItem( SvxCellHorJustify::Left, ATTR_HOR_JUSTIFY ) );
     }
-
-    pDoc->ApplyStyleAreaTab( nCol1, nRow1, nCol2, nRow2, nTab, *pStyle );
+    if(!aFlag)
+        pDoc->ApplyStyleAreaTab( nCol1, nRow1, nCol2, nRow2, nTab, *pStyle );
 }
 
 void lcl_SetFrame( ScDocument* pDoc, SCTAB nTab,
@@ -762,7 +762,7 @@ void ScDPOutput::DataCell( SCCOL nCol, SCROW nRow, SCTAB nTab, const sheet::Data
 }
 
 void ScDPOutput::HeaderCell( SCCOL nCol, SCROW nRow, SCTAB nTab,
-                             const sheet::MemberResult& rData, bool bColHeader, long nLevel )
+                             const sheet::MemberResult& rData, bool bColHeader, long nLevel,bool aFlag )
 {
     long nFlags = rData.Flags;
 
@@ -796,23 +796,23 @@ void ScDPOutput::HeaderCell( SCCOL nCol, SCROW nRow, SCTAB nTab,
             outputimp.OutputBlockFrame( nCol,nMemberStartRow+(SCROW)nLevel, nCol,nDataStartRow-1 );
 
             lcl_SetStyleById( pDoc,nTab, nCol,nMemberStartRow+(SCROW)nLevel, nCol,nDataStartRow-1,
-                                    STR_PIVOT_STYLE_TITLE );
+                                    STR_PIVOT_STYLE_TITLE,aFlag);
             lcl_SetStyleById( pDoc,nTab, nCol,nDataStartRow, nCol,nTabEndRow,
-                                    STR_PIVOT_STYLE_RESULT );
+                                    STR_PIVOT_STYLE_RESULT,aFlag );
         }
         else
         {
             outputimp.OutputBlockFrame( nMemberStartCol+(SCCOL)nLevel,nRow, nDataStartCol-1,nRow );
             lcl_SetStyleById( pDoc,nTab, nMemberStartCol+(SCCOL)nLevel,nRow, nDataStartCol-1,nRow,
-                                    STR_PIVOT_STYLE_TITLE );
+                                    STR_PIVOT_STYLE_TITLE,aFlag );
             lcl_SetStyleById( pDoc,nTab, nDataStartCol,nRow, nTabEndCol,nRow,
-                                    STR_PIVOT_STYLE_RESULT );
+                                    STR_PIVOT_STYLE_RESULT,aFlag );
         }
     }
 }
 
 void ScDPOutput::FieldCell(
-    SCCOL nCol, SCROW nRow, SCTAB nTab, const ScDPOutLevelData& rData, bool bInTable)
+    SCCOL nCol, SCROW nRow, SCTAB nTab, const ScDPOutLevelData& rData, bool bInTable,bool aFlag)
 {
     // Avoid unwanted automatic format detection.
     ScSetStringParam aParam;
@@ -843,7 +843,7 @@ void ScDPOutput::FieldCell(
         pDoc->ApplyFlagsTab(nCol, nRow, nCol, nRow, nTab, nMergeFlag);
     }
 
-    lcl_SetStyleById( pDoc,nTab, nCol,nRow, nCol,nRow, STR_PIVOT_STYLE_FIELDNAME );
+    lcl_SetStyleById( pDoc,nTab, nCol,nRow, nCol,nRow, STR_PIVOT_STYLE_FIELDNAME,aFlag);
 }
 
 static void lcl_DoFilterButton( ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nTab )
@@ -948,7 +948,7 @@ sal_Int32 ScDPOutput::GetPositionType(const ScAddress& rPos)
     return DataPilotTablePositionType::OTHER;
 }
 
-void ScDPOutput::Output()
+void ScDPOutput::Output(bool aFlag)
 {
     SCTAB nTab = aStartPos.Tab();
     const uno::Sequence<sheet::DataResult>* pRowAry = aData.getConstArray();
@@ -962,7 +962,8 @@ void ScDPOutput::Output()
     //  clear whole (new) output area
     // when modifying table, clear old area !
     //TODO: include InsertDeleteFlags::OBJECTS ???
-    pDoc->DeleteAreaTab( aStartPos.Col(), aStartPos.Row(), nTabEndCol, nTabEndRow, nTab, InsertDeleteFlags::ALL );
+    if(!aFlag)
+        pDoc->DeleteAreaTab( aStartPos.Col(), aStartPos.Row(), nTabEndCol, nTabEndRow, nTab, InsertDeleteFlags::ALL );
 
     if ( bDoFilter )
         lcl_DoFilterButton( pDoc, aStartPos.Col(), aStartPos.Row(), nTab );
@@ -1005,9 +1006,9 @@ void ScDPOutput::Output()
 
     if ( nDataStartRow > nTabStartRow )
         lcl_SetStyleById( pDoc, nTab, nTabStartCol, nTabStartRow, nTabEndCol, nDataStartRow-1,
-                            STR_PIVOT_STYLE_TOP );
+                            STR_PIVOT_STYLE_TOP,aFlag );
     lcl_SetStyleById( pDoc, nTab, nDataStartCol, nDataStartRow, nTabEndCol, nTabEndRow,
-                        STR_PIVOT_STYLE_INNER );
+                        STR_PIVOT_STYLE_INNER,aFlag );
 
     //  output column headers:
     ScDPOutputImpl outputimp( pDoc, nTab,
@@ -1016,7 +1017,7 @@ void ScDPOutput::Output()
     for (size_t nField=0; nField<pColFields.size(); nField++)
     {
         SCCOL nHdrCol = nDataStartCol + (SCCOL)nField;              //TODO: check for overflow
-        FieldCell(nHdrCol, nTabStartRow, nTab, pColFields[nField], true);
+        FieldCell(nHdrCol, nTabStartRow, nTab, pColFields[nField], true,aFlag);
 
         SCROW nRowPos = nMemberStartRow + (SCROW)nField;                //TODO: check for overflow
         const uno::Sequence<sheet::MemberResult> rSequence = pColFields[nField].maResult;
@@ -1026,7 +1027,7 @@ void ScDPOutput::Output()
         for (long nCol=0; nCol<nThisColCount; nCol++)
         {
             SCCOL nColPos = nDataStartCol + (SCCOL)nCol;                //TODO: check for overflow
-            HeaderCell( nColPos, nRowPos, nTab, pArray[nCol], true, nField );
+            HeaderCell( nColPos, nRowPos, nTab, pArray[nCol], true, nField,aFlag );
             if ( ( pArray[nCol].Flags & sheet::MemberResultFlags::HASMEMBER ) &&
                 !( pArray[nCol].Flags & sheet::MemberResultFlags::SUBTOTAL ) )
             {
@@ -1048,7 +1049,7 @@ void ScDPOutput::Output()
                     lcl_SetStyleById( pDoc, nTab, nColPos,nRowPos, nEndColPos,nDataStartRow-1, STR_PIVOT_STYLE_CATEGORY );
                 }
                 else
-                    lcl_SetStyleById( pDoc, nTab, nColPos,nRowPos, nColPos,nDataStartRow-1, STR_PIVOT_STYLE_CATEGORY );
+                    lcl_SetStyleById( pDoc, nTab, nColPos,nRowPos, nColPos,nDataStartRow-1, STR_PIVOT_STYLE_CATEGORY,aFlag );
             }
             else if (  pArray[nCol].Flags & sheet::MemberResultFlags::SUBTOTAL )
                 outputimp.AddCol( nColPos );
@@ -1067,7 +1068,7 @@ void ScDPOutput::Output()
     {
         SCCOL nHdrCol = nTabStartCol + (SCCOL)nField;                   //TODO: check for overflow
         SCROW nHdrRow = nDataStartRow - 1;
-        FieldCell(nHdrCol, nHdrRow, nTab, pRowFields[nField], true);
+        FieldCell(nHdrCol, nHdrRow, nTab, pRowFields[nField], true,aFlag);
 
         SCCOL nColPos = nMemberStartCol + (SCCOL)nField;                //TODO: check for overflow
         const uno::Sequence<sheet::MemberResult> rSequence = pRowFields[nField].maResult;
@@ -1077,7 +1078,7 @@ void ScDPOutput::Output()
         for (long nRow=0; nRow<nThisRowCount; nRow++)
         {
             SCROW nRowPos = nDataStartRow + (SCROW)nRow;                //TODO: check for overflow
-            HeaderCell( nColPos, nRowPos, nTab, pArray[nRow], false, nField );
+            HeaderCell( nColPos, nRowPos, nTab, pArray[nRow], false, nField,aFlag );
             if ( ( pArray[nRow].Flags & sheet::MemberResultFlags::HASMEMBER ) &&
                 !( pArray[nRow].Flags & sheet::MemberResultFlags::SUBTOTAL ) )
             {
@@ -1101,7 +1102,7 @@ void ScDPOutput::Output()
                     lcl_SetStyleById( pDoc, nTab, nColPos,nRowPos, nDataStartCol-1,nEndRowPos, STR_PIVOT_STYLE_CATEGORY );
                 }
                 else
-                    lcl_SetStyleById( pDoc, nTab, nColPos,nRowPos, nDataStartCol-1,nRowPos, STR_PIVOT_STYLE_CATEGORY );
+                    lcl_SetStyleById( pDoc, nTab, nColPos,nRowPos, nDataStartCol-1,nRowPos, STR_PIVOT_STYLE_CATEGORY,aFlag );
             }
             else if (  pArray[nRow].Flags & sheet::MemberResultFlags::SUBTOTAL )
                 outputimp.AddRow( nRowPos );
diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index a46388f0f149..e1cadcefa973 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -1562,7 +1562,7 @@ bool ScDBDocFunc::UpdatePivotTable(ScDPObject& rDPObj, bool bRecord, bool bApi)
     if (bRecord)
         createUndoDoc(pNewUndoDoc, &rDoc, aNewOut);
 
-    rDPObj.Output(aNewOut.aStart);
+    rDPObj.Output(aNewOut.aStart,true);
     rDocShell.PostPaintGridAll();           //! only necessary parts
 
     if (bRecord)
commit 8b8bb024e6d958c001e1f2765f61077f5a6a3a30
Author: Bevilacqua Jean-Sebastien <realitix at gmail.com>
Date:   Mon May 14 11:36:28 2018 +0200

    bump product version to 5.4.7.2.M5

diff --git a/configure.ac b/configure.ac
index 5ded4514fc28..3459f2bd2a3f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea.
 
-AC_INIT([LibreOffice],[5.4.7.2.M4],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[5.4.7.2.M5],[],[],[http://documentfoundation.org/])
 
 AC_PREREQ([2.59])
 
commit b64679d5c804020e2a269c5aee67aa5390d89307
Author: fvroman <fvroman at linagora.com>
Date:   Thu Mar 30 18:32:31 2017 +0200

    RTF fixes: Port LO 4.3.7.2 Linagora patch
    
    0004-2014011410000016-import-rtf-sautpage-orientation.patch

diff --git a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx
index 68c43c40cefe..6b9e9c3ac0d7 100644
--- a/writerfilter/source/rtftok/rtfdispatchsymbol.cxx
+++ b/writerfilter/source/rtftok/rtfdispatchsymbol.cxx
@@ -99,6 +99,7 @@ RTFError RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword)
     {
         if (m_aStates.top().eDestination == Destination::FOOTNOTESEPARATOR)
             break; // just ignore it - only thing we read in here is CHFTNSEP
+        m_bNeedTableBreak = false;
         checkFirstRun();
         bool bNeedPap = m_bNeedPap;
         checkNeedPap();
diff --git a/writerfilter/source/rtftok/rtfdispatchvalue.cxx b/writerfilter/source/rtftok/rtfdispatchvalue.cxx
index 3e1fd25b7b6a..445e9f3ca9aa 100644
--- a/writerfilter/source/rtftok/rtfdispatchvalue.cxx
+++ b/writerfilter/source/rtftok/rtfdispatchvalue.cxx
@@ -793,6 +793,11 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
     break;
     case RTF_CELLX:
     {
+        if(m_bNeedTableBreak && !m_bFirstRun)
+          dispatchSymbol(RTF_PAR);
+
+        m_bNeedTableBreak = false;
+
         int& rCurrentCellX((Destination::NESTEDTABLEPROPERTIES == m_aStates.top().eDestination) ? m_nNestedCurrentCellX : m_nTopLevelCurrentCellX);
         int nCellX = nParam - rCurrentCellX;
         const int COL_DFLT_WIDTH = 41; // sw/source/filter/inc/wrtswtbl.hxx, minimal possible width of cells.
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index af8ef382b53a..a929a5423b1b 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -259,6 +259,7 @@ RTFDocumentImpl::RTFDocumentImpl(uno::Reference<uno::XComponentContext> const& x
       m_bNeedCrOrig(false),
       m_bNeedPar(true),
       m_bNeedFinalPar(false),
+      m_bNeedTableBreak(false),
       m_nNestedCells(0),
       m_nTopLevelCells(0),
       m_nInheritingCells(0),
@@ -628,6 +629,8 @@ void RTFDocumentImpl::sectBreak(bool bFinal)
         Mapper().endSectionGroup();
     m_bNeedPar = false;
     m_bNeedSect = false;
+
+    m_bNeedTableBreak = true;
 }
 
 sal_uInt32 RTFDocumentImpl::getColorTable(sal_uInt32 nIndex)
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
index 06c9ba62ffeb..03ca21dbd87c 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
@@ -528,6 +528,7 @@ private:
     bool m_bFirstRun;
     /// If paragraph properties should be emitted on next run.
     bool m_bNeedPap;
+    bool m_bNeedTableBreak;
     /// If we need to emit a CR at the end of substream.
     bool m_bNeedCr;
     /// Original value of m_bNeedCr -- saved/restored before/after textframes.
commit 2a81a01374d7aac7cab3e9df5fe245e9a38b6a42
Author: Bevilacqua Jean-Sebastien <realitix at gmail.com>
Date:   Mon May 14 10:58:30 2018 +0200

    bump product version to 5.4.7.2.M4

diff --git a/ReleaseNote.LINAGORA.txt b/ReleaseNote.LINAGORA.txt
new file mode 100644
index 000000000000..199253ebd3a5
--- /dev/null
+++ b/ReleaseNote.LINAGORA.txt
@@ -0,0 +1,3 @@
+libreoffice-5-4-7-2.M4
+    * Initialization of the 5-4-1-1 MIMO version
+    * Apply RTF patch
diff --git a/configure.ac b/configure.ac
index 56e60843fc3d..5ded4514fc28 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea.
 
-AC_INIT([LibreOffice],[5.4.7.2.0+],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[5.4.7.2.M4],[],[],[http://documentfoundation.org/])
 
 AC_PREREQ([2.59])
 


More information about the Libreoffice-commits mailing list