oox/source/drawingml/chart/datasourceconverter.cxx | 28 +++++++++++++++++++++ oox/source/drawingml/chart/objectformatter.cxx | 5 +++ 2 files changed, 33 insertions(+)
New commits: commit 404689ba178d4282b5b685dced393fdd3f0e3ff8 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Sat Feb 22 05:49:39 2014 +0100 we only support simple labels in the InternalDataProvider, bnc#864396 Change-Id: Ie31c5c73bb5185125fd4493c4e476997e2e9bc63 diff --git a/oox/source/drawingml/chart/datasourceconverter.cxx b/oox/source/drawingml/chart/datasourceconverter.cxx index 6be4710..ea22348 100644 --- a/oox/source/drawingml/chart/datasourceconverter.cxx +++ b/oox/source/drawingml/chart/datasourceconverter.cxx @@ -50,6 +50,34 @@ Reference< XDataSequence > DataSequenceConverter::createDataSequence( const OUSt Reference< XDataSequence > xDataSeq; if( getChartConverter() ) { + // the internal data table does not support complex labels + // this is only supported in Calc!!! + // merge the labels into a single one + if(rRole == "label") + { + mrModel.mnPointCount = std::min<sal_Int32>(mrModel.mnPointCount, 1); + OUStringBuffer aTitle; + bool bFirst = true; + for(DataSequenceModel::AnyMap::const_iterator itr = mrModel.maData.begin(), + itrEnd = mrModel.maData.end(); itr != itrEnd; ++itr) + { + Any aAny = itr->second; + if(aAny.has<OUString>()) + { + if(!bFirst) + aTitle.append(" "); + + aTitle.append(aAny.get<OUString>()); + bFirst = false; + } + } + + if(!bFirst) + { + mrModel.maData.clear(); + mrModel.maData.insert(std::make_pair<sal_Int32, Any>(1, Any(aTitle.makeStringAndClear()))); + } + } xDataSeq = getChartConverter()->createDataSequence( getChartDocument()->getDataProvider(), mrModel ); // set sequen ce role commit 45cc86bf89cee298037bef9693a2ea22c3238673 Author: Andras Timar <andras.ti...@collabora.com> Date: Mon Feb 24 14:55:05 2014 +0100 OOXML chart import: ignore rot values outside the valid range Change-Id: I506a78a024d761d1d263a7bb1dcbf09a4bbcf4ef diff --git a/oox/source/drawingml/chart/objectformatter.cxx b/oox/source/drawingml/chart/objectformatter.cxx index 8c36959..dada09a 100644 --- a/oox/source/drawingml/chart/objectformatter.cxx +++ b/oox/source/drawingml/chart/objectformatter.cxx @@ -1105,6 +1105,11 @@ void ObjectFormatter::convertTextRotation( PropertySet& rPropSet, const ModelRef /* Chart2 expects rotation angle as double value in range of [0,360). OOXML counts clockwise, Chart2 counts counterclockwise. */ double fAngle = static_cast< double >( bStacked ? 0 : rxTextProp->getTextProperties().moRotation.get( 0 ) ); + // MS Office UI allows values only in range of [-90,90]. + if ( fAngle <= -5400000.0 || fAngle >= 5400000.0 ) + { + fAngle = 0.0; + } fAngle = getDoubleIntervalValue< double >( -fAngle / 60000.0, 0.0, 360.0 ); rPropSet.setProperty( PROP_TextRotation, fAngle ); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits