[libreoffice/f20] Resolves: rhbz#1008102 Revert transpose data in rows ranges

Caolán McNamara caolanm at fedoraproject.org
Thu Nov 21 15:42:33 UTC 2013


commit b39cf4b16a63c7afc8ad90a9a484e6064d8ede39
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 21 15:50:17 2013 +0000

    Resolves: rhbz#1008102 Revert transpose data in rows ranges

 ...spose-data-in-rows-ranges-for-internal-da.patch |  109 ++++++++++++++++++++
 libreoffice.spec                                   |    7 +-
 2 files changed, 115 insertions(+), 1 deletions(-)
---
diff --git a/0001-Revert-transpose-data-in-rows-ranges-for-internal-da.patch b/0001-Revert-transpose-data-in-rows-ranges-for-internal-da.patch
new file mode 100644
index 0000000..b63c208
--- /dev/null
+++ b/0001-Revert-transpose-data-in-rows-ranges-for-internal-da.patch
@@ -0,0 +1,109 @@
+From 68e39b840d6fbfc7cd9c12791d1c1a64cf60ec96 Mon Sep 17 00:00:00 2001
+From: Markus Mohrhard <markus.mohrhard at googlemail.com>
+Date: Sat, 2 Nov 2013 20:44:38 +0100
+Subject: [PATCH] Revert "transpose "data in rows" ranges for internal data
+ provider, fdo#62057"
+
+This reverts commit 14fa5488a829936275f79a7693b13da55114220e.
+
+Conflicts:
+	xmloff/source/chart/SchXMLTableContext.cxx
+---
+ xmloff/source/chart/SchXMLChartContext.cxx |  4 ++--
+ xmloff/source/chart/SchXMLTableContext.cxx | 33 ++----------------------------
+ xmloff/source/chart/SchXMLTableContext.hxx |  5 ++---
+ 3 files changed, 6 insertions(+), 36 deletions(-)
+
+diff --git a/xmloff/source/chart/SchXMLChartContext.cxx b/xmloff/source/chart/SchXMLChartContext.cxx
+index 02fea26..dd0a125 100644
+--- a/xmloff/source/chart/SchXMLChartContext.cxx
++++ b/xmloff/source/chart/SchXMLChartContext.cxx
+@@ -781,7 +781,7 @@ void SchXMLChartContext::EndElement()
+         //own data or only rectangular range available
+ 
+         if( xNewDoc->hasInternalDataProvider() )
+-            SchXMLTableHelper::applyTableToInternalDataProvider( maTable, xNewDoc, meDataRowSource );
++            SchXMLTableHelper::applyTableToInternalDataProvider( maTable, xNewDoc );
+ 
+         bool bOlderThan2_3 = SchXMLTools::isDocumentGeneratedWithOpenOfficeOlderThan2_3( Reference< frame::XModel >( xNewDoc, uno::UNO_QUERY ));
+         bool bOldFileWithOwnDataFromRows = (bOlderThan2_3 && bHasOwnData && (meDataRowSource==chart::ChartDataRowSource_ROWS)); // in this case there are range addresses that are simply wrong.
+@@ -818,7 +818,7 @@ void SchXMLChartContext::EndElement()
+                     if( !xNewDoc->hasInternalDataProvider() )
+                     {
+                         xNewDoc->createInternalDataProvider( sal_False /* bCloneExistingData */ );
+-                        SchXMLTableHelper::applyTableToInternalDataProvider( maTable, xNewDoc, meDataRowSource );
++                        SchXMLTableHelper::applyTableToInternalDataProvider( maTable, xNewDoc );
+                         try
+                         {
+                             lcl_ApplyDataFromRectangularRangeToDiagram( xNewDoc, msChartAddress, meDataRowSource, mbRowHasLabels, mbColHasLabels, bHasOwnData, msColTrans, msRowTrans );
+diff --git a/xmloff/source/chart/SchXMLTableContext.cxx b/xmloff/source/chart/SchXMLTableContext.cxx
+index ad0b7cd..d1a0466 100644
+--- a/xmloff/source/chart/SchXMLTableContext.cxx
++++ b/xmloff/source/chart/SchXMLTableContext.cxx
+@@ -738,35 +738,9 @@ static void lcl_ApplyCellToComplexLabel( const SchXMLCell& rCell, Sequence< uno:
+     }
+ }
+ 
+-namespace {
+-
+-void transposeTable(SchXMLTable& rTable)
+-{
+-    std::vector<std::vector<SchXMLCell> > aNewData;
+-    sal_Int32 nRows = rTable.aData.size();
+-    aNewData.resize(rTable.nMaxColumnIndex+1);
+-    for(sal_Int32 i = 0; i < nRows; ++i)
+-    {
+-        sal_Int32 nCols = rTable.aData[i].size();
+-        for(sal_Int32 j = 0; j < nCols; ++j)
+-        {
+-            SchXMLCell& rCell = rTable.aData[i][j];
+-            aNewData[j].push_back(rCell);
+-        }
+-    }
+-    bool bHasRowHeader = rTable.bHasHeaderRow;
+-    bool bHasColHeader = rTable.bHasHeaderColumn;
+-    rTable.bHasHeaderColumn = bHasRowHeader;
+-    rTable.bHasHeaderRow = bHasColHeader;
+-    rTable.nMaxColumnIndex = nRows;
+-    rTable.aData = aNewData;
+-}
+-
+-}
+-
+ void SchXMLTableHelper::applyTableToInternalDataProvider(
+-    SchXMLTable rTable,
+-    uno::Reference< chart2::XChartDocument > xChartDoc, chart::ChartDataRowSource eDataRowSource )
++    const SchXMLTable& rTable,
++    uno::Reference< chart2::XChartDocument > xChartDoc )
+ {
+     // apply all data read from the local table to the internal data provider
+     if( !xChartDoc.is() || !xChartDoc->hasInternalDataProvider() )
+@@ -775,9 +749,6 @@ void SchXMLTableHelper::applyTableToInternalDataProvider(
+     if( !xDataProv.is() )
+         return;
+ 
+-    if(eDataRowSource == chart::ChartDataRowSource_ROWS)
+-        transposeTable(rTable);
+-
+     //prepare the read local table data
+     sal_Int32 nNumRows( static_cast< sal_Int32 >( rTable.aData.size()));
+     sal_Int32 nRowOffset = 0;
+diff --git a/xmloff/source/chart/SchXMLTableContext.hxx b/xmloff/source/chart/SchXMLTableContext.hxx
+index 19993cb..6919dcc 100644
+--- a/xmloff/source/chart/SchXMLTableContext.hxx
++++ b/xmloff/source/chart/SchXMLTableContext.hxx
+@@ -73,9 +73,8 @@ private:
+                            sal_Int32& nRows, sal_Int32& nColumns );
+ 
+ public:
+-    static void applyTableToInternalDataProvider( SchXMLTable rTable,
+-                            com::sun::star::uno::Reference< com::sun::star::chart2::XChartDocument > xChartDoc,
+-                            com::sun::star::chart::ChartDataRowSource eDataRowSource );
++    static void applyTableToInternalDataProvider( const SchXMLTable& rTable,
++                            com::sun::star::uno::Reference< com::sun::star::chart2::XChartDocument > xChartDoc );
+ 
+     /** This function reorders local data to fit the correct data structure.
+         Call it after the data series got their styles set.
+-- 
+1.8.3.1
+
diff --git a/libreoffice.spec b/libreoffice.spec
index 7179a65..6c116ca 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -43,7 +43,7 @@ Summary:        Free Software Productivity Suite
 Name:           libreoffice
 Epoch:          1
 Version:        %{libo_version}.2
-Release:        5%{?libo_prerelease}%{?dist}
+Release:        6%{?libo_prerelease}%{?dist}
 License:        (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0
 Group:          Applications/Productivity
 URL:            http://www.libreoffice.org/default/
@@ -272,6 +272,7 @@ Patch31: 0001-rhbz-1031989-Accept-pt-in-addition-to-deprecated-pt.patch
 Patch32: 0001-Related-rhbz-1014990-valgrind-reports-uninitialized-.patch
 Patch33: 0001-add-config.-for-formats-newly-supported-by-libmwaw.patch
 Patch34: 0001-enable-more-formats-supported-by-libmwaw.patch
+Patch35: 0001-Revert-transpose-data-in-rows-ranges-for-internal-da.patch
 
 %define instdir %{_libdir}
 %define baseinstdir %{instdir}/libreoffice
@@ -1041,6 +1042,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc
 %patch32 -p1 -b .rhbz-1014990-valgrind-reports-uninitialized-.patch
 %patch33 -p1 -b .add-config.-for-formats-newly-supported-by-libmwaw.patch
 %patch34 -p1 -b .enable-more-formats-supported-by-libmwaw.patch
+%patch35 -p1 -b .Revert-transpose-data-in-rows-ranges-for-internal-da.patch
 
 # TODO: check this
 # these are horribly incomplete--empty translations and copied english
@@ -2130,6 +2132,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
 %endif
 
 %changelog
+* Thu Nov 21 2013 Caolán McNamara <caolanm at redhat.com> - 1:4.1.3.2-5
+- Resolves: rhbz#1008102 Revert transpose data in rows ranges
+
 * Wed Nov 20 2013 Stephan Bergmann <sbergman at redhat.com> - 1:4.1.3.2-5
 - Resolves: rhbz#1031989 Accept --pt in addition to deprecated -pt
 - Related: rhbz#1014990 valgrind reports uninitialized variables


More information about the scm-commits mailing list