[Libreoffice-commits] core.git: sc/source

Dimitri Bouron bouron.d at gmail.com
Wed Sep 6 08:27:59 UTC 2017


 sc/source/ui/view/dbfunc3.cxx |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

New commits:
commit 3d37e10684edf9536beefe5670b144571e6c9792
Author: Dimitri Bouron <bouron.d at gmail.com>
Date:   Thu Aug 3 11:57:48 2017 +0200

    tdf#111305: Fix group name refresh in pivot table
    
    Change-Id: Ibc22bfba5765aba3014651df50afb23b893d2b5a
    Reviewed-on: https://gerrit.libreoffice.org/40712
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Eike Rathke <erack at redhat.com>

diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx
index c6d04090c997..186007cae57a 100644
--- a/sc/source/ui/view/dbfunc3.cxx
+++ b/sc/source/ui/view/dbfunc3.cxx
@@ -73,6 +73,8 @@
 #include <unordered_set>
 #include <unordered_map>
 #include <vector>
+#include <set>
+#include <algorithm>
 
 using namespace com::sun::star;
 using ::com::sun::star::uno::Any;
@@ -1333,6 +1335,7 @@ void ScDBFunc::DataPilotInput( const ScAddress& rPos, const OUString& rString )
     pDPObj->BuildAllDimensionMembers();
     ScDPSaveData aData( *pDPObj->GetSaveData() );
     bool bChange = false;
+    bool bNeedReloadGroups = false;
 
     DataPilotFieldOrientation nOrient = DataPilotFieldOrientation_HIDDEN;
     long nField = pDPObj->GetHeaderDim( rPos, nOrient );
@@ -1453,6 +1456,7 @@ void ScDBFunc::DataPilotInput( const ScAddress& rPos, const OUString& rString )
                             pSaveMember->SetName( rString );
 
                         bChange = true;
+                        bNeedReloadGroups = true;
                     }
                     else
                         pErrorId = STR_INVALIDNAME;
@@ -1571,6 +1575,16 @@ void ScDBFunc::DataPilotInput( const ScAddress& rPos, const OUString& rString )
         // apply changes
         ScDBDocFunc aFunc( *GetViewData().GetDocShell() );
         pDPObj->SetSaveData( aData );
+        if (bNeedReloadGroups)
+        {
+            ScDPCollection* pDPs = pDoc->GetDPCollection();
+            if (pDPs)
+            {
+                std::set<ScDPObject*> aRefs;
+                // tdf#111305: Reload groups in cache after modifications.
+                pDPs->ReloadGroupsInCache(pDPObj, aRefs);
+            } // pDPs
+        } // bNeedReloadGroups
         aFunc.UpdatePivotTable(*pDPObj, true, false);
     }
     else


More information about the Libreoffice-commits mailing list