sc/inc/dapiuno.hxx              |    1 +
 sc/source/ui/unoobj/dapiuno.cxx |   24 ++++++++++++++----------
 2 files changed, 15 insertions(+), 10 deletions(-)

New commits:
commit f697d7aa5c26f9fcfd717b76a4827a5bcb38325e
Author: Kohei Yoshida <kohei.yosh...@gmail.com>
Date:   Wed Mar 14 20:40:38 2012 -0400

    Fix the UNO API for creating a new group dimension.

diff --git a/sc/inc/dapiuno.hxx b/sc/inc/dapiuno.hxx
index fd3ec8d..98bdca0 100644
--- a/sc/inc/dapiuno.hxx
+++ b/sc/inc/dapiuno.hxx
@@ -422,6 +422,7 @@ protected:
     ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess 
>
                         GetMembers() const;
 
+    ScDocShell* GetDocShell() const;
 protected:
     ScDataPilotDescriptorBase& mrParent;
     ScFieldIdentifier   maFieldId;
diff --git a/sc/source/ui/unoobj/dapiuno.cxx b/sc/source/ui/unoobj/dapiuno.cxx
index d1d7d96..45a88e7 100644
--- a/sc/source/ui/unoobj/dapiuno.cxx
+++ b/sc/source/ui/unoobj/dapiuno.cxx
@@ -1193,7 +1193,7 @@ void ScDataPilotTableObj::SetDPObject( ScDPObject* 
pDPObject )
     if ( pDPObj && pDocSh )
     {
         ScDBDocFunc aFunc(*pDocSh);
-        aFunc.DataPilotUpdate( pDPObj, pDPObject, sal_True, sal_True );
+        aFunc.DataPilotUpdate( pDPObj, pDPObject, true, true );
     }
 }
 
@@ -1565,6 +1565,11 @@ Reference< XNameAccess > 
ScDataPilotChildObjBase::GetMembers() const
     return xMembersNA;
 }
 
+ScDocShell* ScDataPilotChildObjBase::GetDocShell() const
+{
+    return mrParent.GetDocShell();
+}
+
 // ============================================================================
 
 ScDataPilotFieldsObj::ScDataPilotFieldsObj( ScDataPilotDescriptorBase& rParent 
) :
@@ -2569,13 +2574,13 @@ Reference< XDataPilotField > SAL_CALL 
ScDataPilotFieldObj::createNameGroup( cons
     ScDPObject* pDPObj = 0;
     if( ScDPSaveDimension* pDim = GetDPDimension( &pDPObj ) )
     {
-        String aDimName = pDim->GetName();
+        rtl::OUString aDimName = pDim->GetName();
 
         ScDPSaveData aSaveData = *pDPObj->GetSaveData();
         ScDPDimensionSaveData* pDimData = aSaveData.GetDimensionData();     // 
created if not there
 
         // find original base
-        String aBaseDimName( aDimName );
+        rtl::OUString aBaseDimName( aDimName );
         const ScDPSaveGroupDimension* pBaseGroupDim = 
pDimData->GetNamedGroupDim( aDimName );
         if ( pBaseGroupDim )
         {
@@ -2595,7 +2600,7 @@ Reference< XDataPilotField > SAL_CALL 
ScDataPilotFieldObj::createNameGroup( cons
         {
             for (nEntry=0; nEntry<nEntryCount; nEntry++)
             {
-                String aEntryName(rItems[nEntry]);
+                const rtl::OUString& aEntryName = rItems[nEntry];
                 if ( pBaseGroupDim )
                 {
                     // for each selected (intermediate) group, remove all its 
items
@@ -2615,9 +2620,8 @@ Reference< XDataPilotField > SAL_CALL 
ScDataPilotFieldObj::createNameGroup( cons
         if ( !pGroupDimension )
         {
             // create a new group dimension
-            String aGroupDimName = pDimData->CreateGroupDimName( aBaseDimName, 
*pDPObj, false, NULL );
-            pNewGroupDim = new ScDPSaveGroupDimension( aBaseDimName, 
aGroupDimName );
-            sNewDim = aGroupDimName;
+            sNewDim = pDimData->CreateGroupDimName( aBaseDimName, *pDPObj, 
false, NULL );
+            pNewGroupDim = new ScDPSaveGroupDimension( aBaseDimName, sNewDim );
 
             pGroupDimension = pNewGroupDim;     // make changes to the new dim 
if none existed
 
@@ -2645,10 +2649,10 @@ Reference< XDataPilotField > SAL_CALL 
ScDataPilotFieldObj::createNameGroup( cons
                 }
             }
         }
-        String aGroupDimName = pGroupDimension->GetGroupDimName();
+        rtl::OUString aGroupDimName = pGroupDimension->GetGroupDimName();
 
         //! localized prefix string
-        String aGroupName = pGroupDimension->CreateGroupName( String( 
RTL_CONSTASCII_USTRINGPARAM( "Group" ) ) );
+        rtl::OUString aGroupName = pGroupDimension->CreateGroupName( String( 
RTL_CONSTASCII_USTRINGPARAM( "Group" ) ) );
         ScDPSaveGroupItem aGroup( aGroupName );
         Reference< XNameAccess > xMembers = GetMembers();
         if (!xMembers.is())
@@ -2702,7 +2706,7 @@ Reference< XDataPilotField > SAL_CALL 
ScDataPilotFieldObj::createNameGroup( cons
 
         // apply changes
         pDPObj->SetSaveData( aSaveData );
-        SetDPObject( pDPObj );
+        ScDBDocFunc(*GetDocShell()).RefreshPivotTableGroups(pDPObj);
     }
 
     // if new grouping field has been created (on first group), return it
_______________________________________________
Libreoffice-commits mailing list
Libreoffice-commits@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to