ooo-build r14761 - in branches/ooo-build-3-0-1: . patches/dev300



Author: kyoshida
Date: Fri Dec  5 17:54:55 2008
New Revision: 14761
URL: http://svn.gnome.org/viewvc/ooo-build?rev=14761&view=rev

Log:
2008-12-05  Kohei Yoshida  <kyoshida novell com>

	* patches/dev300/calc-dp-group-ident-category-fix.diff: fixed a 
	regression that caused the 'Identify Categories' option to be ignored
	in presence of grouped fields. (n#447182, i#96171)
	
	* patches/dev300/apply: apply this new patch.



Added:
   branches/ooo-build-3-0-1/patches/dev300/calc-dp-group-ident-category-fix.diff
Modified:
   branches/ooo-build-3-0-1/ChangeLog
   branches/ooo-build-3-0-1/patches/dev300/apply

Modified: branches/ooo-build-3-0-1/patches/dev300/apply
==============================================================================
--- branches/ooo-build-3-0-1/patches/dev300/apply	(original)
+++ branches/ooo-build-3-0-1/patches/dev300/apply	Fri Dec  5 17:54:55 2008
@@ -1703,6 +1703,9 @@
 # mark data range dirty to force full re-calculation.
 chart-refresh-mark-range-dirty.diff, n#425617, kohei
 
+# fix 'Identify Categories' greakage on grouping.
+calc-dp-group-ident-category-fix.diff, n#447182, i#96171, kohei
+
 [ CalcSolver ]
 SectionOwner => kohei
 
@@ -2546,7 +2549,7 @@
 testing-more-optimizations-ark.diff
 
 [ Fixes ]
-win32-mergemodule-pm.diff, tml
+#win32-mergemodule-pm.diff, tml
 svtools-update-ole.diff, n#411855, thorsten
 vcl-logical-bmp-size.diff, i#92902, thorsten
 sdext-presenterview-thread-suicide.diff, n#425072, thorsten

Added: branches/ooo-build-3-0-1/patches/dev300/calc-dp-group-ident-category-fix.diff
==============================================================================
--- (empty file)
+++ branches/ooo-build-3-0-1/patches/dev300/calc-dp-group-ident-category-fix.diff	Fri Dec  5 17:54:55 2008
@@ -0,0 +1,56 @@
+diff --git sc/inc/dpcachetable.hxx sc/inc/dpcachetable.hxx
+index e894eed..a599c51 100644
+--- sc/inc/dpcachetable.hxx
++++ sc/inc/dpcachetable.hxx
+@@ -203,7 +203,7 @@ public:
+     /** Get the cell instance at specified location within the data grid. Note
+         that the data grid doesn't include the header row.  Don't delete the
+         returned object! */
+-    const ::ScDPCacheTable::Cell* getCell(SCCOL nCol, SCROW nRow, bool bRepeatIfEmpty = false) const;
++    const ::ScDPCacheTable::Cell* getCell(SCCOL nCol, SCROW nRow, bool bRepeatIfEmpty) const;
+ 
+     const String* getFieldName(sal_Int32 nIndex) const;
+ 
+diff --git sc/inc/dpgroup.hxx sc/inc/dpgroup.hxx
+index 391f5fb..3c6f2d3 100644
+--- sc/inc/dpgroup.hxx
++++ sc/inc/dpgroup.hxx
+@@ -218,6 +218,8 @@ public:
+     virtual void                    DisposeData();
+     virtual void                    SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmpty );
+ 
++    virtual bool                    IsRepeatIfEmpty();
++
+     virtual void                    CreateCacheTable();
+     virtual void                    FilterCacheTable(const ::std::vector<ScDPCacheTable::Criterion>& rCriteria);
+     virtual void                    GetDrillDownData(const ::std::vector<ScDPCacheTable::Criterion>& rCriteria,
+diff --git sc/source/core/data/dpgroup.cxx sc/source/core/data/dpgroup.cxx
+index 5cc1893..8d14d0d 100644
+--- sc/source/core/data/dpgroup.cxx
++++ sc/source/core/data/dpgroup.cxx
+@@ -1131,6 +1131,11 @@ void ScDPGroupTableData::SetEmptyFlags( BOOL bIgnoreEmptyRows, BOOL bRepeatIfEmp
+     pSourceData->SetEmptyFlags( bIgnoreEmptyRows, bRepeatIfEmpty );
+ }
+ 
++bool ScDPGroupTableData::IsRepeatIfEmpty()
++{
++    return pSourceData->IsRepeatIfEmpty();
++}
++
+ void ScDPGroupTableData::CreateCacheTable()
+ {
+     pSourceData->CreateCacheTable();
+diff --git sc/source/core/data/dptabdat.cxx sc/source/core/data/dptabdat.cxx
+index dc42601..4a6add2 100644
+--- sc/source/core/data/dptabdat.cxx
++++ sc/source/core/data/dptabdat.cxx
+@@ -258,7 +258,8 @@ void ScDPTableData::FillRowDataFromCacheTable(sal_Int32 nRow, const ScDPCacheTab
+         long nDim = rInfo.aDataSrcCols[i];
+         rData.aValues.push_back( ScDPValueData() );
+         ScDPValueData& rVal = rData.aValues.back();
+-        const ScDPCacheTable::Cell* pCell = rCacheTable.getCell(static_cast<SCCOL>(nDim), static_cast<SCROW>(nRow));
++        const ScDPCacheTable::Cell* pCell = rCacheTable.getCell(
++            static_cast<SCCOL>(nDim), static_cast<SCROW>(nRow), IsRepeatIfEmpty());
+         if (pCell)
+         {
+             rVal.fValue = pCell->mbNumeric ? pCell->mfValue : 0.0;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]