sc/source/core/data/table3.cxx |   28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

New commits:
commit 4cd9e45a439b654c8e1ff7983fe7e4bd073b9c92
Author: Yan Pashkovsky <yanp.b...@gmail.com>
Date:   Fri Aug 12 23:39:30 2016 +0300

    tdf#91305 fix sort calc
    
    Change-Id: Id8969e28d653add5ba4348ece622b2b53ce464da
    Reviewed-on: https://gerrit.libreoffice.org/28094
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Eike Rathke <er...@redhat.com>

diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 6da1c7c..86b979c 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -3239,8 +3239,20 @@ bool ScTable::CreateQueryParam(SCCOL nCol1, SCROW nRow1, 
SCCOL nCol2, SCROW nRow
     return bValid;
 }
 
-bool ScTable::HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, 
SCROW /* nEndRow */ ) const
+bool ScTable::HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, 
SCROW nEndRow) const
 {
+    if (nStartCol == nEndCol)
+    {
+        if (nEndRow > nStartRow)
+        {
+            CellType eFstCellType = GetCellType(nStartCol, nStartRow);
+            CellType eSndCellType = GetCellType(nStartCol, nStartRow+1);
+            if ((eFstCellType == CELLTYPE_STRING || eFstCellType == 
CELLTYPE_EDIT)
+                   && (eSndCellType != CELLTYPE_STRING && eSndCellType != 
CELLTYPE_STRING))
+                return true;
+        }
+        return false;
+    }
     for (SCCOL nCol=nStartCol; nCol<=nEndCol; nCol++)
     {
         CellType eType = GetCellType( nCol, nStartRow );
@@ -3250,8 +3262,20 @@ bool ScTable::HasColHeader( SCCOL nStartCol, SCROW 
nStartRow, SCCOL nEndCol, SCR
     return true;
 }
 
-bool ScTable::HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL /* nEndCol 
*/, SCROW nEndRow ) const
+bool ScTable::HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, 
SCROW nEndRow ) const
 {
+    if (nStartRow == nEndRow)
+    {
+        if (nEndCol > nStartCol)
+        {
+            CellType eFstCellType = GetCellType(nStartCol, nStartRow);
+            CellType eSndCellType = GetCellType(nStartCol+1, nStartRow);
+            if ((eFstCellType == CELLTYPE_STRING || eFstCellType == 
CELLTYPE_EDIT)
+                   && (eSndCellType != CELLTYPE_STRING && eSndCellType != 
CELLTYPE_STRING))
+                return true;
+        }
+        return false;
+    }
     for (SCROW nRow=nStartRow; nRow<=nEndRow; nRow++)
     {
         CellType eType = GetCellType( nStartCol, nRow );
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to