Revert "transpose "data in rows" ranges for internal data provider, fdo#62057"

This reverts commit 14fa5488a8.

Conflicts:
	xmloff/source/chart/SchXMLTableContext.cxx
This commit is contained in:
Markus Mohrhard
2013-11-02 20:44:38 +01:00
parent 045e037b7a
commit 68e39b840d
3 changed files with 6 additions and 36 deletions

View File

@@ -781,7 +781,7 @@ void SchXMLChartContext::EndElement()
//own data or only rectangular range available //own data or only rectangular range available
if( xNewDoc->hasInternalDataProvider() ) 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 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. 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() ) if( !xNewDoc->hasInternalDataProvider() )
{ {
xNewDoc->createInternalDataProvider( sal_False /* bCloneExistingData */ ); xNewDoc->createInternalDataProvider( sal_False /* bCloneExistingData */ );
SchXMLTableHelper::applyTableToInternalDataProvider( maTable, xNewDoc, meDataRowSource ); SchXMLTableHelper::applyTableToInternalDataProvider( maTable, xNewDoc );
try try
{ {
lcl_ApplyDataFromRectangularRangeToDiagram( xNewDoc, msChartAddress, meDataRowSource, mbRowHasLabels, mbColHasLabels, bHasOwnData, msColTrans, msRowTrans ); lcl_ApplyDataFromRectangularRangeToDiagram( xNewDoc, msChartAddress, meDataRowSource, mbRowHasLabels, mbColHasLabels, bHasOwnData, msColTrans, msRowTrans );

View File

@@ -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( void SchXMLTableHelper::applyTableToInternalDataProvider(
SchXMLTable rTable, const SchXMLTable& rTable,
uno::Reference< chart2::XChartDocument > xChartDoc, chart::ChartDataRowSource eDataRowSource ) uno::Reference< chart2::XChartDocument > xChartDoc )
{ {
// apply all data read from the local table to the internal data provider // apply all data read from the local table to the internal data provider
if( !xChartDoc.is() || !xChartDoc->hasInternalDataProvider() ) if( !xChartDoc.is() || !xChartDoc->hasInternalDataProvider() )
@@ -775,9 +749,6 @@ void SchXMLTableHelper::applyTableToInternalDataProvider(
if( !xDataProv.is() ) if( !xDataProv.is() )
return; return;
if(eDataRowSource == chart::ChartDataRowSource_ROWS)
transposeTable(rTable);
//prepare the read local table data //prepare the read local table data
sal_Int32 nNumRows( static_cast< sal_Int32 >( rTable.aData.size())); sal_Int32 nNumRows( static_cast< sal_Int32 >( rTable.aData.size()));
sal_Int32 nRowOffset = 0; sal_Int32 nRowOffset = 0;

View File

@@ -73,9 +73,8 @@ private:
sal_Int32& nRows, sal_Int32& nColumns ); sal_Int32& nRows, sal_Int32& nColumns );
public: public:
static void applyTableToInternalDataProvider( SchXMLTable rTable, static void applyTableToInternalDataProvider( const SchXMLTable& rTable,
com::sun::star::uno::Reference< com::sun::star::chart2::XChartDocument > xChartDoc, com::sun::star::uno::Reference< com::sun::star::chart2::XChartDocument > xChartDoc );
com::sun::star::chart::ChartDataRowSource eDataRowSource );
/** This function reorders local data to fit the correct data structure. /** This function reorders local data to fit the correct data structure.
Call it after the data series got their styles set. Call it after the data series got their styles set.