sc/inc/dpgroup.hxx | 33 +----------- sc/source/core/data/dpdimsave.cxx | 4 - sc/source/core/data/dpgroup.cxx | 99 ++++++------------------------------- sc/source/filter/excel/xepivot.cxx | 2 4 files changed, 25 insertions(+), 113 deletions(-)
New commits: commit 16bbecab811a7ea95439bcbdf99050f766d18a9d Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Sat Mar 24 00:13:30 2012 -0400 ScDPDateGroupHelper class is no more. diff --git a/sc/inc/dpgroup.hxx b/sc/inc/dpgroup.hxx index fadb830..fe5fd62 100644 --- a/sc/inc/dpgroup.hxx +++ b/sc/inc/dpgroup.hxx @@ -41,28 +41,6 @@ class ScDocument; class SvNumberFormatter; -// ScDPDateGroupHelper is used as part of ScDPGroupDimension (additional dim.) -// or ScDPNumGroupDimension (innermost, replaces the original dim.). -// Source index, name and result collection are stored at the parent. - -class ScDPDateGroupHelper -{ - ScDPNumGroupInfo aNumInfo; // only start and end (incl. auto flags) are used - sal_Int32 nDatePart; // single part - long mnGroupDim; - -public: - ScDPDateGroupHelper( const ScDPNumGroupInfo& rInfo, long nDim, sal_Int32 nPart ); - ~ScDPDateGroupHelper(); - - void SetGroupDim(long nDim); - - sal_Int32 GetDatePart() const { return nDatePart; } - const ScDPNumGroupInfo& GetNumInfo() const { return aNumInfo; } - - void FillColumnEntries(const ScDPCache* pCache, std::vector<SCROW>& rEntries) const; -}; - typedef ::std::vector<ScDPItemData> ScDPItemDataVec; class ScDPGroupItem @@ -90,9 +68,9 @@ class ScDPGroupDimension long nSourceDim; long nGroupDim; rtl::OUString aGroupName; - ScDPDateGroupHelper* pDateHelper; ScDPGroupItemVec aItems; - mutable ::std::vector< SCROW > maMemberEntries; + mutable std::vector<SCROW> maMemberEntries; + bool mbDateDimension; public: ScDPGroupDimension( long nSource, const String& rNewName ); ScDPGroupDimension( const ScDPGroupDimension& rOther ); @@ -112,12 +90,11 @@ public: const ScDPGroupItem* GetGroupForName( const ScDPItemData& rName ) const; // rName = entry in group dim. const ScDPGroupItem* GetGroupByIndex( size_t nIndex ) const; - void MakeDateHelper( const ScDPNumGroupInfo& rInfo, sal_Int32 nPart ); - void DisposeData(); size_t GetItemCount() const { return aItems.size(); } + void SetDateDimension(); bool IsDateDimension() const; }; @@ -126,8 +103,8 @@ typedef ::std::vector<ScDPGroupDimension> ScDPGroupDimensionVec; class SC_DLLPUBLIC ScDPNumGroupDimension { mutable ScDPNumGroupInfo aGroupInfo; // settings - ScDPDateGroupHelper* pDateHelper; mutable std::vector<SCROW> maMemberEntries; + bool mbDateDimension; public: ScDPNumGroupDimension(); @@ -141,7 +118,7 @@ public: const std::vector<SCROW>& GetNumEntries(SCCOL nSourceDim, const ScDPCache* pCache) const; - void MakeDateHelper( const ScDPNumGroupInfo& rInfo, long nDim, sal_Int32 nPart ); + void SetDateDimension(); void DisposeData(); diff --git a/sc/source/core/data/dpdimsave.cxx b/sc/source/core/data/dpdimsave.cxx index 30ddd74..80257be 100644 --- a/sc/source/core/data/dpdimsave.cxx +++ b/sc/source/core/data/dpdimsave.cxx @@ -379,7 +379,7 @@ void ScDPSaveGroupDimension::AddToData( ScDPGroupTableData& rData ) const { // date grouping - aDim.MakeDateHelper( aDateInfo, nDatePart ); + aDim.SetDateDimension(); } else { @@ -459,7 +459,7 @@ void ScDPSaveNumGroupDimension::AddToData( ScDPGroupTableData& rData ) const { ScDPNumGroupDimension aDim( aGroupInfo ); // aGroupInfo: value grouping if ( nDatePart ) - aDim.MakeDateHelper( aDateInfo, nSource, nDatePart ); // date grouping + aDim.SetDateDimension(); rData.SetNumGroupDimension( nSource, aDim ); } diff --git a/sc/source/core/data/dpgroup.cxx b/sc/source/core/data/dpgroup.cxx index 5f8865c..a129fec 100644 --- a/sc/source/core/data/dpgroup.cxx +++ b/sc/source/core/data/dpgroup.cxx @@ -240,19 +240,6 @@ bool ScDPGroupDateFilter::match( const ScDPItemData & rCellData ) const return false; } -// ----------------------------------------------------------------------- - -ScDPDateGroupHelper::ScDPDateGroupHelper( - const ScDPNumGroupInfo& rInfo, long nDim, sal_Int32 nPart ) : - aNumInfo( rInfo ), - nDatePart( nPart ), - mnGroupDim(nDim) -{ -} - -ScDPDateGroupHelper::~ScDPDateGroupHelper() -{ -} namespace { @@ -304,18 +291,6 @@ bool isDateInGroup(const ScDPItemData& rGroupItem, const ScDPItemData& rChildIte } -void ScDPDateGroupHelper::SetGroupDim(long nDim) -{ - mnGroupDim = nDim; -} - -void ScDPDateGroupHelper::FillColumnEntries(const ScDPCache* pCache, std::vector<SCROW>& rEntries) const -{ - pCache->GetGroupDimMemberIds(mnGroupDim, rEntries); -} - -// ----------------------------------------------------------------------- - ScDPGroupItem::ScDPGroupItem( const ScDPItemData& rName ) : aGroupName( rName ) { @@ -361,13 +336,12 @@ ScDPGroupDimension::ScDPGroupDimension( long nSource, const String& rNewName ) : nSourceDim( nSource ), nGroupDim( -1 ), aGroupName( rNewName ), - pDateHelper( NULL ) + mbDateDimension(false) { } ScDPGroupDimension::~ScDPGroupDimension() { - delete pDateHelper; maMemberEntries.clear(); } @@ -375,11 +349,9 @@ ScDPGroupDimension::ScDPGroupDimension( const ScDPGroupDimension& rOther ) : nSourceDim( rOther.nSourceDim ), nGroupDim( rOther.nGroupDim ), aGroupName( rOther.aGroupName ), - pDateHelper( NULL ), - aItems( rOther.aItems ) + aItems( rOther.aItems ), + mbDateDimension(rOther.mbDateDimension) { - if ( rOther.pDateHelper ) - pDateHelper = new ScDPDateGroupHelper( *rOther.pDateHelper ); } ScDPGroupDimension& ScDPGroupDimension::operator=( const ScDPGroupDimension& rOther ) @@ -388,22 +360,10 @@ ScDPGroupDimension& ScDPGroupDimension::operator=( const ScDPGroupDimension& rOt nGroupDim = rOther.nGroupDim; aGroupName = rOther.aGroupName; aItems = rOther.aItems; - - delete pDateHelper; - if ( rOther.pDateHelper ) - pDateHelper = new ScDPDateGroupHelper( *rOther.pDateHelper ); - else - pDateHelper = NULL; - + mbDateDimension = rOther.mbDateDimension; return *this; } -void ScDPGroupDimension::MakeDateHelper( const ScDPNumGroupInfo& rInfo, sal_Int32 nPart ) -{ - delete pDateHelper; - pDateHelper = new ScDPDateGroupHelper(rInfo, nGroupDim, nPart); -} - void ScDPGroupDimension::AddItem( const ScDPGroupItem& rItem ) { aItems.push_back( rItem ); @@ -412,8 +372,6 @@ void ScDPGroupDimension::AddItem( const ScDPGroupItem& rItem ) void ScDPGroupDimension::SetGroupDim( long nDim ) { nGroupDim = nDim; - if (pDateHelper) - pDateHelper->SetGroupDim(nDim); } const std::vector<SCROW>& ScDPGroupDimension::GetColumnEntries( @@ -422,12 +380,6 @@ const std::vector<SCROW>& ScDPGroupDimension::GetColumnEntries( if (!maMemberEntries.empty()) return maMemberEntries; - if (pDateHelper) - { - pDateHelper->FillColumnEntries(rCacheTable.getCache(), maMemberEntries); - return maMemberEntries; - } - rCacheTable.getCache()->GetGroupDimMemberIds(nGroupDim, maMemberEntries); return maMemberEntries; } @@ -465,37 +417,30 @@ void ScDPGroupDimension::DisposeData() maMemberEntries.clear(); } +void ScDPGroupDimension::SetDateDimension() +{ + mbDateDimension = true; +} + bool ScDPGroupDimension::IsDateDimension() const { - return pDateHelper != NULL; + return mbDateDimension; } // ----------------------------------------------------------------------- -ScDPNumGroupDimension::ScDPNumGroupDimension() : - pDateHelper(NULL) {} +ScDPNumGroupDimension::ScDPNumGroupDimension() : mbDateDimension(false) {} ScDPNumGroupDimension::ScDPNumGroupDimension( const ScDPNumGroupInfo& rInfo ) : - aGroupInfo(rInfo), pDateHelper(NULL) {} + aGroupInfo(rInfo), mbDateDimension(false) {} ScDPNumGroupDimension::ScDPNumGroupDimension( const ScDPNumGroupDimension& rOther ) : - aGroupInfo( rOther.aGroupInfo ), - pDateHelper(NULL) -{ - if ( rOther.pDateHelper ) - pDateHelper = new ScDPDateGroupHelper( *rOther.pDateHelper ); -} + aGroupInfo(rOther.aGroupInfo), mbDateDimension(rOther.mbDateDimension) {} ScDPNumGroupDimension& ScDPNumGroupDimension::operator=( const ScDPNumGroupDimension& rOther ) { aGroupInfo = rOther.aGroupInfo; - - delete pDateHelper; - if ( rOther.pDateHelper ) - pDateHelper = new ScDPDateGroupHelper( *rOther.pDateHelper ); - else - pDateHelper = NULL; - + mbDateDimension = rOther.mbDateDimension; return *this; } @@ -507,20 +452,17 @@ void ScDPNumGroupDimension::DisposeData() bool ScDPNumGroupDimension::IsDateDimension() const { - return pDateHelper != NULL; + return mbDateDimension; } ScDPNumGroupDimension::~ScDPNumGroupDimension() { - delete pDateHelper; } -void ScDPNumGroupDimension::MakeDateHelper( const ScDPNumGroupInfo& rInfo, long nDim, sal_Int32 nPart ) +void ScDPNumGroupDimension::SetDateDimension() { - delete pDateHelper; - pDateHelper = new ScDPDateGroupHelper(rInfo, nDim, nPart); - aGroupInfo.mbEnable = true; //! or query both? + mbDateDimension = true; } const std::vector<SCROW>& ScDPNumGroupDimension::GetNumEntries( @@ -529,13 +471,6 @@ const std::vector<SCROW>& ScDPNumGroupDimension::GetNumEntries( if (!maMemberEntries.empty()) return maMemberEntries; - if (pDateHelper) - { - // Grouped by dates. - pDateHelper->FillColumnEntries(pCache, maMemberEntries); - return maMemberEntries; - } - pCache->GetGroupDimMemberIds(nSourceDim, maMemberEntries); return maMemberEntries; } diff --git a/sc/source/filter/excel/xepivot.cxx b/sc/source/filter/excel/xepivot.cxx index df41e8c..ac0bef9 100644 --- a/sc/source/filter/excel/xepivot.cxx +++ b/sc/source/filter/excel/xepivot.cxx @@ -553,7 +553,7 @@ void XclExpPCField::InsertNumDateGroupItems( const ScDPObject& rDPObj, const ScD // get the string collection with generated grouping elements ScDPNumGroupDimension aTmpDim( rNumInfo ); if( nDatePart != 0 ) - aTmpDim.MakeDateHelper( rNumInfo, mnFieldIdx, nDatePart ); + aTmpDim.SetDateDimension(); const std::vector<SCROW>& aMemberIds = aTmpDim.GetNumEntries( static_cast<SCCOL>(nDim), pCache); for ( size_t nIdx = 0 ; nIdx < aMemberIds.size(); nIdx++ ) _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits