[Libreoffice-commits] core.git: Branch 'private/swe/libreoffice-5-2+backports' - sc/source

Caolán McNamara caolanm at redhat.com
Thu Dec 7 10:14:22 UTC 2017


 sc/source/ui/unoobj/chart2uno.cxx |   20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

New commits:
commit 59fdcff85389456a5710bd101dbf2b01c70c2b02
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Dec 4 15:24:20 2017 +0000

    assert on export of fdo69698-1.ods to pdf
    
    since...
    
    commit 3af8a4faf5e20ccae2386052697713da160afb16
    Date:   Wed Nov 15 13:10:40 2017 +0300
    
        tdf#113861: Less aggressive expansion of chart headers.
    
    In this example
    
    nAllColCount is 3, nAllRowCount is 5, the columns available are 0, 1, 4 and the
    rows are 20, 21, 22, 25, 26. So I assume, comparing to the original version,
    that its not the actual row and column we want, but the index of the row/column
    into the range provided
    
    Change-Id: I568c561a8c5f0b2ee84590293bed8e302d5dda75
    Reviewed-on: https://gerrit.libreoffice.org/45811
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx
index 10577d92dbfc..9e6cc81cb0f2 100644
--- a/sc/source/ui/unoobj/chart2uno.cxx
+++ b/sc/source/ui/unoobj/chart2uno.cxx
@@ -292,18 +292,24 @@ Chart2PositionMap::Chart2PositionMap(SCCOL nAllColCount,  SCROW nAllRowCount,
     {
         //check whether there is more than one text column or row that should be added to the headers
         SCROW nMaxHeaderRow = nAllRowCount;
-        for ( const auto & rCol : rCols )
+        SCCOL nCol = 0;
+        for (auto it = rCols.begin(); it != rCols.end(); ++it, ++nCol)
         {
             // Skip header columns
-            if ( rCol.first < nHeaderColCount )
+            if (nCol < nHeaderColCount)
                 continue;
 
+            const auto& rCol = *it;
+
             bool bFoundValuesInCol = false;
             bool bFoundAnythingInCol = false;
-            for ( const auto & rCell : *rCol.second )
+            SCROW nRow = 0;
+            for (auto it2 = rCol.second->begin(); it2 != rCol.second->end(); ++it2, ++nRow)
             {
+                const auto& rCell = *it2;
+
                 // Skip header rows
-                if (rCell.first < nHeaderRowCount || !rCell.second)
+                if (nRow < nHeaderRowCount || !rCell.second)
                     continue;
 
                 ScRange aRange;
@@ -321,7 +327,7 @@ Chart2PositionMap::Chart2PositionMap(SCCOL nAllColCount,  SCROW nAllRowCount,
                 {
                     // Found some numeric data
                     bFoundValuesInCol = true;
-                    nMaxHeaderRow = std::min(nMaxHeaderRow, nRow1);
+                    nMaxHeaderRow = std::min(nMaxHeaderRow, nRow);
                     break;
                 }
                 if ( pDoc->HasData( nCol1, nRow1, nTab1 ) )
@@ -332,11 +338,11 @@ Chart2PositionMap::Chart2PositionMap(SCCOL nAllColCount,  SCROW nAllRowCount,
                 else
                 {
                     // If cell is empty, it belongs to data
-                    nMaxHeaderRow = std::min(nMaxHeaderRow, nRow1);
+                    nMaxHeaderRow = std::min(nMaxHeaderRow, nRow);
                 }
             }
 
-            if (nHeaderColCount && !bFoundValuesInCol && bFoundAnythingInCol && rCol.first == nHeaderColCount)
+            if (nHeaderColCount && !bFoundValuesInCol && bFoundAnythingInCol && nCol == nHeaderColCount)
             {
                 // There is no values in row, but some data. And this column is next to header
                 // So lets put it to header


More information about the Libreoffice-commits mailing list