[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