sc/inc/PivotTableDataProvider.hxx              |    7 +-
 sc/source/ui/unoobj/PivotTableDataProvider.cxx |   68 +++++++++++--------------
 2 files changed, 35 insertions(+), 40 deletions(-)

New commits:
commit 089c8a6edb3425a18632b855e0ae74875f236dba
Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
Date:   Mon May 1 22:06:35 2017 +0200

    simplify filling of categories in pivot table data provider
    
    Change-Id: I0940126fcb96d36f168a1c995504b6e9ce92564a
    Reviewed-on: https://gerrit.libreoffice.org/37209
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/sc/inc/PivotTableDataProvider.hxx 
b/sc/inc/PivotTableDataProvider.hxx
index f572cbdf797d..b1924753ece3 100644
--- a/sc/inc/PivotTableDataProvider.hxx
+++ b/sc/inc/PivotTableDataProvider.hxx
@@ -142,19 +142,18 @@ private:
 
     css::uno::Reference<css::chart2::data::XDataSource>
         createValuesDataSource();
+
     css::uno::Reference<css::chart2::data::XDataSource>
         createCategoriesDataSource(bool bOrientationIsColumn);
 
     css::uno::Reference<css::chart2::data::XLabeledDataSequence> 
newLabeledDataSequence();
 
-    void 
setLabeledDataSequenceValues(css::uno::Reference<css::chart2::data::XLabeledDataSequence>
 & xResult,
-                                      OUString const & sRoleValues, OUString 
const & sIdValues,
-                                      std::vector<ValueAndFormat> const & 
rValues);
-
     css::uno::Reference<css::chart2::data::XDataSequence> 
assignLabelsToDataSequence(size_t nIndex);
 
     css::uno::Reference<css::chart2::data::XDataSequence> 
assignValuesToDataSequence(size_t nIndex);
 
+    css::uno::Reference<css::chart2::data::XDataSequence> 
assignFirstCategoriesToDataSequence();
+
     void collectPivotTableData();
 
     ScDocument*        m_pDocument;
diff --git a/sc/source/ui/unoobj/PivotTableDataProvider.cxx 
b/sc/source/ui/unoobj/PivotTableDataProvider.cxx
index fee34e6f9cc8..34141bf1675a 100644
--- a/sc/source/ui/unoobj/PivotTableDataProvider.cxx
+++ b/sc/source/ui/unoobj/PivotTableDataProvider.cxx
@@ -249,16 +249,6 @@ uno::Reference<chart2::data::XLabeledDataSequence>
     return xResult;
 }
 
-void 
PivotTableDataProvider::setLabeledDataSequenceValues(uno::Reference<chart2::data::XLabeledDataSequence>
 & xResult,
-                                                          OUString const & 
sRoleValues, OUString const & sIdValues,
-                                                          
std::vector<ValueAndFormat> const & rValues)
-{
-    std::unique_ptr<PivotTableDataSequence> pSequence(
-        new PivotTableDataSequence(m_pDocument, m_sPivotTableName, sIdValues, 
rValues));
-    pSequence->setRole(sRoleValues);
-    
xResult->setValues(uno::Reference<chart2::data::XDataSequence>(pSequence.release()));
-}
-
 uno::Reference<chart2::data::XDataSource>
 PivotTableDataProvider::createCategoriesDataSource(bool bOrientationIsColumn)
 {
@@ -274,7 +264,12 @@ PivotTableDataProvider::createCategoriesDataSource(bool 
bOrientationIsColumn)
     for (std::vector<ValueAndFormat> const & rCategories : rCategoriesVector)
     {
         uno::Reference<chart2::data::XLabeledDataSequence> xResult = 
newLabeledDataSequence();
-        setLabeledDataSequenceValues(xResult, "categories", 
lcl_identifierForCategories(), rCategories);
+        std::unique_ptr<PivotTableDataSequence> pSequence;
+        pSequence.reset(new PivotTableDataSequence(m_pDocument, 
m_sPivotTableName,
+                                                   
lcl_identifierForCategories(), rCategories));
+        pSequence->setRole("categories");
+        
xResult->setValues(uno::Reference<chart2::data::XDataSequence>(pSequence.release()));
+
         aLabeledSequences.push_back(xResult);
     }
 
@@ -620,13 +615,33 @@ PivotTableDataProvider::assignLabelsToDataSequence(size_t 
nIndex)
 
     std::vector<ValueAndFormat> aLabelVector { ValueAndFormat(aLabel) };
 
-    std::unique_ptr<PivotTableDataSequence> pSequence(new 
PivotTableDataSequence(m_pDocument, m_sPivotTableName,
-                                                                               
  sLabelID, aLabelVector));
+    std::unique_ptr<PivotTableDataSequence> pSequence;
+    pSequence.reset(new PivotTableDataSequence(m_pDocument, m_sPivotTableName,
+                                               sLabelID, aLabelVector));
     pSequence->setRole("values-y");
     xDataSequence.set(pSequence.release());
     return xDataSequence;
 }
 
+css::uno::Reference<css::chart2::data::XDataSequence>
+    PivotTableDataProvider::assignFirstCategoriesToDataSequence()
+{
+    uno::Reference<chart2::data::XDataSequence> xDataSequence;
+
+    if (m_aCategoriesColumnOrientation.empty())
+        return xDataSequence;
+
+    std::vector<ValueAndFormat> const & rCategories = 
m_aCategoriesColumnOrientation[0];
+
+    std::unique_ptr<PivotTableDataSequence> pSequence;
+    pSequence.reset(new PivotTableDataSequence(m_pDocument, m_sPivotTableName,
+                                               lcl_identifierForCategories(), 
rCategories));
+    pSequence->setRole("categories");
+    
xDataSequence.set(uno::Reference<chart2::data::XDataSequence>(pSequence.release()));
+
+    return xDataSequence;
+}
+
 uno::Reference<chart2::data::XDataSource>
     PivotTableDataProvider::createValuesDataSource()
 {
@@ -636,27 +651,20 @@ uno::Reference<chart2::data::XDataSource>
     uno::Reference<chart2::data::XDataSource> xDataSource;
     std::vector<uno::Reference<chart2::data::XLabeledDataSequence>> 
aLabeledSequences;
 
+    // Fill first sequence of categories
     {
-        std::vector<ValueAndFormat> aFirstCategories;
-        if (!m_aCategoriesColumnOrientation.empty())
-        {
-            std::copy(m_aCategoriesColumnOrientation[0].begin(),
-                      m_aCategoriesColumnOrientation[0].end(),
-                      std::back_inserter(aFirstCategories));
-        }
         uno::Reference<chart2::data::XLabeledDataSequence> xResult = 
newLabeledDataSequence();
-        setLabeledDataSequenceValues(xResult, "categories", 
lcl_identifierForCategories(), aFirstCategories);
+        xResult->setValues(assignFirstCategoriesToDataSequence());
         aLabeledSequences.push_back(xResult);
     }
 
+    // Fill values and labels
     {
         for (size_t i = 0; i < m_aDataRowVector.size(); ++i)
         {
             uno::Reference<chart2::data::XLabeledDataSequence> xResult = 
newLabeledDataSequence();
-
             xResult->setValues(assignValuesToDataSequence(i));
             xResult->setLabel(assignLabelsToDataSequence(i));
-
             aLabeledSequences.push_back(xResult);
         }
     }
@@ -802,19 +810,7 @@ uno::Reference<css::chart2::data::XDataSequence>
     if (m_bNeedsUpdate)
         collectPivotTableData();
 
-    uno::Reference<chart2::data::XDataSequence> xDataSequence;
-
-    if (m_aCategoriesColumnOrientation.empty())
-        return xDataSequence;
-
-    std::vector<ValueAndFormat> const & rCategories = 
m_aCategoriesColumnOrientation[0];
-
-    std::unique_ptr<PivotTableDataSequence> pSequence;
-    pSequence.reset(new PivotTableDataSequence(m_pDocument, m_sPivotTableName, 
lcl_identifierForCategories(), rCategories));
-    pSequence->setRole("categories");
-    
xDataSequence.set(uno::Reference<chart2::data::XDataSequence>(pSequence.release()));
-
-    return xDataSequence;
+    return assignFirstCategoriesToDataSequence();
 }
 
 OUString PivotTableDataProvider::getFieldOutputDescription(sal_Int32 
nDimensionIndex)
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to