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:
@@ -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 );
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
Reference in New Issue
Block a user