[Libreoffice-commits] .: 2 commits - sc/inc sc/source

Kohei Yoshida kohei at kemper.freedesktop.org
Wed Mar 23 22:09:42 PDT 2011


 sc/inc/dbcolect.hxx              |   21 +----
 sc/source/core/tool/dbcolect.cxx |  145 ++-------------------------------------
 sc/source/ui/dbgui/tpsubt.cxx    |   22 ++---
 sc/source/ui/inc/tpsubt.hxx      |   12 +--
 4 files changed, 33 insertions(+), 167 deletions(-)

New commits:
commit 635700f14cd88b38a206f8a8f3b6695012ca7e53
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Thu Mar 24 01:07:14 2011 -0400

    ScDBData now stores ScSubTotalParam as member.
    
    This cleans up its implementation quite a bit.

diff --git a/sc/inc/dbcolect.hxx b/sc/inc/dbcolect.hxx
index 5282d29..859b858 100644
--- a/sc/inc/dbcolect.hxx
+++ b/sc/inc/dbcolect.hxx
@@ -36,6 +36,7 @@
 #include "refreshtimer.hxx"
 #include "address.hxx"
 #include "scdllapi.h"
+#include "subtotalparam.hxx"
 
 class ScDocument;
 
@@ -89,21 +90,9 @@ private:
     sal_Bool			bIsAdvanced;		// sal_True if created by advanced filter
     ScRange			aAdvSource;			// source range
     SCROW           nDynamicEndRow;
-    // SubTotalParam
-    sal_Bool			bSubRemoveOnly;
-    sal_Bool			bSubReplace;
-    sal_Bool			bSubPagebreak;
-    sal_Bool			bSubCaseSens;
-    sal_Bool			bSubDoSort;
-    sal_Bool			bSubAscending;
-    sal_Bool			bSubIncludePattern;
-    sal_Bool			bSubUserDef;
-    sal_uInt16			nSubUserIndex;
-    sal_Bool			bDoSubTotal[MAXSUBTOTAL];
-    SCCOL			nSubField[MAXSUBTOTAL];
-    SCCOL			nSubTotals[MAXSUBTOTAL];
-    SCCOL*			pSubTotals[MAXSUBTOTAL];
-    ScSubTotalFunc*	pFunctions[MAXSUBTOTAL];
+
+    ScSubTotalParam maSubTotal;
+
     // data base import
     sal_Bool			bDBImport;
     String			aDBName;
@@ -177,7 +166,7 @@ public:
             sal_Bool		HasImportParam() const	 { return bDBImport; }
             sal_Bool		HasQueryParam() const	 { return bDoQuery[0]; }
             sal_Bool		HasSortParam() const	 { return bDoSort[0]; }
-            sal_Bool		HasSubTotalParam() const { return bDoSubTotal[0]; }
+            sal_Bool		HasSubTotalParam() const { return maSubTotal.bGroupActive[0]; }
 
             sal_Bool		HasImportSelection() const		{ return bDBSelection; }
             void		SetImportSelection(sal_Bool bSet)	{ bDBSelection = bSet; }
diff --git a/sc/source/core/tool/dbcolect.cxx b/sc/source/core/tool/dbcolect.cxx
index 394f335..95beb37 100644
--- a/sc/source/core/tool/dbcolect.cxx
+++ b/sc/source/core/tool/dbcolect.cxx
@@ -69,22 +69,13 @@ ScDBData::ScDBData( const String& rName,
 
     ScSortParam aSortParam;
     ScQueryParam aQueryParam;
-    ScSubTotalParam aSubTotalParam;
     ScImportParam aImportParam;
 
     for (i=0; i<MAXQUERY; i++)
         pQueryStr[i] = new String;
 
-    for (i=0; i<MAXSUBTOTAL; i++)
-    {
-        nSubTotals[i] = 0;
-        pSubTotals[i] = NULL;
-        pFunctions[i] = NULL;
-    }
-
     SetSortParam( aSortParam );
     SetQueryParam( aQueryParam );
-    SetSubTotalParam( aSubTotalParam );
     SetImportParam( aImportParam );
 }
 
@@ -122,15 +113,7 @@ ScDBData::ScDBData( const ScDBData& rData ) :
     nQueryDestRow  		(rData.nQueryDestRow),
     bIsAdvanced			(rData.bIsAdvanced),
     aAdvSource			(rData.aAdvSource),
-    bSubRemoveOnly		(rData.bSubRemoveOnly),
-    bSubReplace			(rData.bSubReplace),
-    bSubPagebreak		(rData.bSubPagebreak),
-    bSubCaseSens		(rData.bSubCaseSens),
-    bSubDoSort			(rData.bSubDoSort),
-    bSubAscending		(rData.bSubAscending),
-    bSubIncludePattern	(rData.bSubIncludePattern),
-    bSubUserDef			(rData.bSubUserDef),
-    nSubUserIndex		(rData.nSubUserIndex),
+    maSubTotal          (rData.maSubTotal),
     bDBImport			(rData.bDBImport),
     aDBName				(rData.aDBName),
     aDBStatement		(rData.aDBStatement),
@@ -143,7 +126,6 @@ ScDBData::ScDBData( const ScDBData& rData ) :
     bModified			(rData.bModified)
 {
     sal_uInt16 i;
-    sal_uInt16 j;
 
     for (i=0; i<MAXSORT; i++)
     {
@@ -162,28 +144,11 @@ ScDBData::ScDBData( const ScDBData& rData ) :
         nQueryVal[i]		= rData.nQueryVal[i];
         eQueryConnect[i]	= rData.eQueryConnect[i];
     }
-    for (i=0; i<MAXSUBTOTAL; i++)
-    {
-        bDoSubTotal[i]		= rData.bDoSubTotal[i];
-        nSubField[i]		= rData.nSubField[i];
-
-        SCCOL nCount	= rData.nSubTotals[i];
-        nSubTotals[i]	= nCount;
-        pFunctions[i]	= nCount > 0 ? new ScSubTotalFunc [nCount] : NULL;
-        pSubTotals[i]	= nCount > 0 ? new SCCOL		  [nCount] : NULL;
-
-        for (j=0; j<nCount; j++)
-        {
-            pSubTotals[i][j] = rData.pSubTotals[i][j];
-            pFunctions[i][j] = rData.pFunctions[i][j];
-        }
-    }
 }
 
 ScDBData& ScDBData::operator= (const ScDBData& rData)
 {
     sal_uInt16 i;
-    sal_uInt16 j;
 
     ScRefreshTimer::operator=( rData );
     aName				= rData.aName;
@@ -216,16 +181,8 @@ ScDBData& ScDBData::operator= (const ScDBData& rData)
     nQueryDestCol	  	= rData.nQueryDestCol;
     nQueryDestRow  		= rData.nQueryDestRow;
     bIsAdvanced			= rData.bIsAdvanced;
+    maSubTotal          = rData.maSubTotal;
     aAdvSource			= rData.aAdvSource;
-    bSubRemoveOnly		= rData.bSubRemoveOnly;
-    bSubReplace			= rData.bSubReplace;
-    bSubPagebreak		= rData.bSubPagebreak;
-    bSubCaseSens		= rData.bSubCaseSens;
-    bSubDoSort			= rData.bSubDoSort;
-    bSubAscending		= rData.bSubAscending;
-    bSubIncludePattern	= rData.bSubIncludePattern;
-    bSubUserDef			= rData.bSubUserDef;
-    nSubUserIndex		= rData.nSubUserIndex;
     bDBImport			= rData.bDBImport;
     aDBName				= rData.aDBName;
     aDBStatement		= rData.aDBStatement;
@@ -253,24 +210,6 @@ ScDBData& ScDBData::operator= (const ScDBData& rData)
         nQueryVal[i]		= rData.nQueryVal[i];
         eQueryConnect[i]	= rData.eQueryConnect[i];
     }
-    for (i=0; i<MAXSUBTOTAL; i++)
-    {
-        bDoSubTotal[i]		= rData.bDoSubTotal[i];
-        nSubField[i]		= rData.nSubField[i];
-        SCCOL nCount	= rData.nSubTotals[i];
-        nSubTotals[i]	= nCount;
-
-        delete[] pSubTotals[i];
-        delete[] pFunctions[i];
-
-        pSubTotals[i] = nCount > 0 ? new SCCOL			[nCount] : NULL;
-        pFunctions[i] = nCount > 0 ? new ScSubTotalFunc [nCount] : NULL;
-        for (j=0; j<nCount; j++)
-        {
-            pSubTotals[i][j] = rData.pSubTotals[i][j];
-            pFunctions[i][j] = rData.pFunctions[i][j];
-        }
-    }
 
     return *this;
 }
@@ -327,11 +266,6 @@ ScDBData::~ScDBData()
 
     for (i=0; i<MAXQUERY; i++)
         delete pQueryStr[i];
-    for (i=0; i<MAXSUBTOTAL; i++)
-    {
-        delete[] pSubTotals[i];
-        delete[] pFunctions[i];
-    }
 }
 
 
@@ -360,7 +294,7 @@ String ScDBData::GetOperations() const
         aVal += ScGlobal::GetRscString(STR_OPERATION_SORT);
     }
 
-    if (bDoSubTotal[0] && !bSubRemoveOnly)
+    if (maSubTotal.bGroupActive[0] && !maSubTotal.bRemoveOnly)
     {
         if (aVal.Len())
             aVal.AppendAscii( RTL_CONSTASCII_STRINGPARAM(", ") );
@@ -432,11 +366,11 @@ void ScDBData::MoveTo(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW n
     }
     for (i=0; i<MAXSUBTOTAL; i++)
     {
-        nSubField[i] = sal::static_int_cast<SCCOL>( nSubField[i] + nDifX );
-        if (nSubField[i] > nCol2)
+        maSubTotal.nField[i] = sal::static_int_cast<SCCOL>( maSubTotal.nField[i] + nDifX );
+        if (maSubTotal.nField[i] > nCol2)
         {
-            nSubField[i]   = 0;
-            bDoSubTotal[i] = false;
+            maSubTotal.nField[i] = 0;
+            maSubTotal.bGroupActive[i] = false;
         }
     }
 
@@ -579,76 +513,19 @@ sal_Bool ScDBData::GetAdvancedQuerySource(ScRange& rSource) const
 
 void ScDBData::GetSubTotalParam(ScSubTotalParam& rSubTotalParam) const
 {
-    sal_uInt16 i;
-    sal_uInt16 j;
+    rSubTotalParam = maSubTotal;
 
+    // Share the data range with the parent db data.  The range in the subtotal
+    // param struct is not used.
     rSubTotalParam.nCol1 = nStartCol;
     rSubTotalParam.nRow1 = nStartRow;
     rSubTotalParam.nCol2 = nEndCol;
     rSubTotalParam.nRow2 = nEndRow;
-
-    rSubTotalParam.bRemoveOnly		= bSubRemoveOnly;
-    rSubTotalParam.bReplace			= bSubReplace;
-    rSubTotalParam.bPagebreak		= bSubPagebreak;
-    rSubTotalParam.bCaseSens		= bSubCaseSens;
-    rSubTotalParam.bDoSort			= bSubDoSort;
-    rSubTotalParam.bAscending		= bSubAscending;
-    rSubTotalParam.bIncludePattern	= bSubIncludePattern;
-    rSubTotalParam.bUserDef			= bSubUserDef;
-    rSubTotalParam.nUserIndex		= nSubUserIndex;
-
-    for (i=0; i<MAXSUBTOTAL; i++)
-    {
-        rSubTotalParam.bGroupActive[i]	= bDoSubTotal[i];
-        rSubTotalParam.nField[i]		= nSubField[i];
-        SCCOL nCount = nSubTotals[i];
-
-        rSubTotalParam.nSubTotals[i] = nCount;
-        delete[] rSubTotalParam.pSubTotals[i];
-        delete[] rSubTotalParam.pFunctions[i];
-        rSubTotalParam.pSubTotals[i] = nCount > 0 ? new SCCOL[nCount] : NULL;
-        rSubTotalParam.pFunctions[i] = nCount > 0 ? new ScSubTotalFunc[nCount]
-                                              : NULL;
-        for (j=0; j<nCount; j++)
-        {
-            rSubTotalParam.pSubTotals[i][j] = pSubTotals[i][j];
-            rSubTotalParam.pFunctions[i][j] = pFunctions[i][j];
-        }
-    }
 }
 
 void ScDBData::SetSubTotalParam(const ScSubTotalParam& rSubTotalParam)
 {
-    sal_uInt16 i;
-    sal_uInt16 j;
-
-    bSubRemoveOnly		= rSubTotalParam.bRemoveOnly;
-    bSubReplace			= rSubTotalParam.bReplace;
-    bSubPagebreak		= rSubTotalParam.bPagebreak;
-    bSubCaseSens		= rSubTotalParam.bCaseSens;
-    bSubDoSort			= rSubTotalParam.bDoSort;
-    bSubAscending		= rSubTotalParam.bAscending;
-    bSubIncludePattern	= rSubTotalParam.bIncludePattern;
-    bSubUserDef			= rSubTotalParam.bUserDef;
-    nSubUserIndex		= rSubTotalParam.nUserIndex;
-
-    for (i=0; i<MAXSUBTOTAL; i++)
-    {
-        bDoSubTotal[i]	= rSubTotalParam.bGroupActive[i];
-        nSubField[i]	= rSubTotalParam.nField[i];
-        SCCOL nCount = rSubTotalParam.nSubTotals[i];
-
-        nSubTotals[i] = nCount;
-        delete[] pSubTotals[i];
-        delete[] pFunctions[i];
-        pSubTotals[i] = nCount > 0 ? new SCCOL			[nCount] : NULL;
-        pFunctions[i] = nCount > 0 ? new ScSubTotalFunc [nCount] : NULL;
-        for (j=0; j<nCount; j++)
-        {
-            pSubTotals[i][j] = rSubTotalParam.pSubTotals[i][j];
-            pFunctions[i][j] = rSubTotalParam.pFunctions[i][j];
-        }
-    }
+    maSubTotal = rSubTotalParam;
 }
 
 void ScDBData::GetImportParam(ScImportParam& rImportParam) const
commit 9a65f3d8b6d93d5b08d97c6532d983ddfbc083f6
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Thu Mar 24 00:06:49 2011 -0400

    sal_Bool to bool.

diff --git a/sc/source/ui/dbgui/tpsubt.cxx b/sc/source/ui/dbgui/tpsubt.cxx
index b3f1019..54cbb94 100644
--- a/sc/source/ui/dbgui/tpsubt.cxx
+++ b/sc/source/ui/dbgui/tpsubt.cxx
@@ -137,7 +137,7 @@ sal_uInt16* ScTpSubTotalGroup::GetRanges()
 
 // -----------------------------------------------------------------------
 
-sal_Bool ScTpSubTotalGroup::DoReset( sal_uInt16 			nGroupNo,
+bool ScTpSubTotalGroup::DoReset( sal_uInt16 			nGroupNo,
                                  const SfxItemSet&	rArgSet  )
 {
     sal_uInt16 nGroupIdx = 0;
@@ -189,12 +189,12 @@ sal_Bool ScTpSubTotalGroup::DoReset( sal_uInt16 			nGroupNo,
         aLbFunctions.SelectEntryPos( 0 );
     }
 
-    return sal_True;
+    return true;
 }
 
 // -----------------------------------------------------------------------
 
-sal_Bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16		nGroupNo,
+bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16		nGroupNo,
                                        SfxItemSet&	rArgSet  )
 {
     sal_uInt16 nGroupIdx = 0;
@@ -223,7 +223,7 @@ sal_Bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16		nGroupNo,
     {
         const SfxItemSet* pExample = pDlg->GetExampleSet();
         const SfxPoolItem* pItem;
-        if ( pExample && pExample->GetItemState( nWhichSubTotals, sal_True, &pItem ) == SFX_ITEM_SET )
+        if ( pExample && pExample->GetItemState( nWhichSubTotals, true, &pItem ) == SFX_ITEM_SET )
             theSubTotalData = ((const ScSubTotalItem*)pItem)->GetSubTotalData();
     }
 
@@ -273,7 +273,7 @@ sal_Bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16		nGroupNo,
     if ( pSubTotals ) delete [] pSubTotals;
     if ( pFunctions ) delete [] pFunctions;
 
-    return sal_True;
+    return true;
 }
 
 // -----------------------------------------------------------------------
@@ -322,14 +322,14 @@ void ScTpSubTotalGroup::FillListBoxes()
 sal_uInt16 ScTpSubTotalGroup::GetFieldSelPos( SCCOL nField )
 {
     sal_uInt16	nFieldPos	= 0;
-    sal_Bool	bFound		= false;
+    bool	bFound		= false;
 
     for ( sal_uInt16 n=0; n<nFieldCount && !bFound; n++ )
     {
         if ( nFieldArr[n] == nField )
         {
             nFieldPos = n;
-            bFound = sal_True;
+            bFound = true;
         }
     }
 
@@ -559,7 +559,7 @@ void ScTpSubTotalOptions::Reset( const SfxItemSet& /* rArgSet */ )
 
     if ( rSubTotalData.bUserDef )
     {
-        aBtnUserDef.Check( sal_True );
+        aBtnUserDef.Check( true );
         aLbUserDef.Enable();
         aLbUserDef.SelectEntryPos( rSubTotalData.nUserIndex );
     }
@@ -583,12 +583,12 @@ sal_Bool ScTpSubTotalOptions::FillItemSet( SfxItemSet& rArgSet )
     {
         const SfxItemSet* pExample = pDlg->GetExampleSet();
         const SfxPoolItem* pItem;
-        if ( pExample && pExample->GetItemState( nWhichSubTotals, sal_True, &pItem ) == SFX_ITEM_SET )
+        if ( pExample && pExample->GetItemState( nWhichSubTotals, true, &pItem ) == SFX_ITEM_SET )
             theSubTotalData = ((const ScSubTotalItem*)pItem)->GetSubTotalData();
     }
 
     theSubTotalData.bPagebreak		= aBtnPagebreak.IsChecked();
-    theSubTotalData.bReplace		= sal_True;
+    theSubTotalData.bReplace		= true;
     theSubTotalData.bCaseSens		= aBtnCase.IsChecked();
     theSubTotalData.bIncludePattern = aBtnFormats.IsChecked();
     theSubTotalData.bDoSort 		= aBtnSort.IsChecked();
@@ -600,7 +600,7 @@ sal_Bool ScTpSubTotalOptions::FillItemSet( SfxItemSet& rArgSet )
 
     rArgSet.Put( ScSubTotalItem( nWhichSubTotals, &theSubTotalData ) );
 
-    return sal_True;
+    return true;
 }
 
 // -----------------------------------------------------------------------
diff --git a/sc/source/ui/inc/tpsubt.hxx b/sc/source/ui/inc/tpsubt.hxx
index 30f337d..413c66b 100644
--- a/sc/source/ui/inc/tpsubt.hxx
+++ b/sc/source/ui/inc/tpsubt.hxx
@@ -56,9 +56,9 @@ public:
     virtual ~ScTpSubTotalGroup();
 
     static sal_uInt16*	GetRanges		();
-    sal_Bool			DoReset			( sal_uInt16			nGroupNo,
+    bool			DoReset			( sal_uInt16			nGroupNo,
                                       const SfxItemSet&	rArgSet  );
-    sal_Bool			DoFillItemSet	( sal_uInt16		nGroupNo,
+    bool			DoFillItemSet	( sal_uInt16		nGroupNo,
                                       SfxItemSet&	rArgSet  );
 protected:
     FixedText		aFtGroup;
@@ -103,7 +103,7 @@ public:
 
     static	SfxTabPage*	Create		( Window*				pParent,
                                       const SfxItemSet& 	rArgSet );
-    virtual	sal_Bool		FillItemSet	( SfxItemSet& rArgSet );
+    virtual sal_Bool    FillItemSet ( SfxItemSet& rArgSet );
     virtual	void		Reset		( const SfxItemSet& rArgSet );
 };
 
@@ -120,7 +120,7 @@ public:
 
     static	SfxTabPage*	Create		( Window*				pParent,
                                       const SfxItemSet& 	rArgSet );
-    virtual	sal_Bool		FillItemSet	( SfxItemSet& rArgSet );
+    virtual sal_Bool    FillItemSet ( SfxItemSet& rArgSet );
     virtual	void		Reset		( const SfxItemSet& rArgSet );
 };
 
@@ -137,7 +137,7 @@ public:
 
     static	SfxTabPage*	Create		( Window*				pParent,
                                       const SfxItemSet& 	rArgSet );
-    virtual	sal_Bool		FillItemSet	( SfxItemSet& rArgSet );
+    virtual sal_Bool    FillItemSet ( SfxItemSet& rArgSet );
     virtual	void		Reset		( const SfxItemSet& rArgSet );
 };
 
@@ -156,7 +156,7 @@ public:
     static sal_uInt16*		GetRanges	();
     static SfxTabPage*	Create		( Window*				pParent,
                                       const SfxItemSet& 	rArgSet );
-    virtual	sal_Bool		FillItemSet	( SfxItemSet& rArgSet );
+    virtual sal_Bool    FillItemSet ( SfxItemSet& rArgSet );
     virtual	void		Reset		( const SfxItemSet& rArgSet );
 
 private:


More information about the Libreoffice-commits mailing list