File ooxml-simple-labels.patch of Package libreoffice.openSUSE_13.1_Update

From f82d52f43d88f33dc7c4e365cba206e223e0b2b9 Mon Sep 17 00:00:00 2001
From: Markus Mohrhard <markus.mohrhard@collabora.co.uk>
Date: Sat, 22 Feb 2014 04:49:39 +0000
Subject: we only support simple labels in the InternalDataProvider, bnc#864396

Change-Id: Ie31c5c73bb5185125fd4493c4e476997e2e9bc63
Reviewed-on: https://gerrit.libreoffice.org/8190
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
---
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
--
cgit v0.9.0.2-2-gbebe
openSUSE Build Service is sponsored by