ooo-build r11813 - in trunk: . patches/src680



Author: kyoshida
Date: Wed Mar  5 17:23:21 2008
New Revision: 11813
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11813&view=rev

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

	* patches/src680/sc-dbrange-dynamic-resize.diff: preserve the original
	dbrange but track the dynamic end row position separately.  IMO this 
	works much better & less surprises.


Modified:
   trunk/ChangeLog
   trunk/patches/src680/sc-dbrange-dynamic-resize.diff

Modified: trunk/patches/src680/sc-dbrange-dynamic-resize.diff
==============================================================================
--- trunk/patches/src680/sc-dbrange-dynamic-resize.diff	(original)
+++ trunk/patches/src680/sc-dbrange-dynamic-resize.diff	Wed Mar  5 17:23:21 2008
@@ -1,12 +1,31 @@
-? sc/sc.vpj
-Index: sc/inc/document.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/document.hxx,v
-retrieving revision 1.105
-diff -u -r1.105 document.hxx
---- sc/inc/document.hxx	7 Dec 2007 10:40:50 -0000	1.105
-+++ sc/inc/document.hxx	16 Jan 2008 17:03:07 -0000
-@@ -857,7 +857,7 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/dbcolect.hxx sc/inc/dbcolect.hxx
+--- sc.clean/inc/dbcolect.hxx	2008-03-03 11:24:43.000000000 -0500
++++ sc/inc/dbcolect.hxx	2008-03-05 11:52:43.000000000 -0500
+@@ -115,6 +115,7 @@ private:
+ 	ScQueryConnect  eQueryConnect[MAXQUERY];
+ 	BOOL			bIsAdvanced;		// TRUE if created by advanced filter
+ 	ScRange			aAdvSource;			// source range
++    SCROW           nDynamicEndRow;
+ 	// SubTotalParam
+ 	BOOL			bSubRemoveOnly;
+ 	BOOL			bSubReplace;
+@@ -165,9 +166,10 @@ public:
+ 			const String& GetName() const				{ return aName; }
+ 			void		GetName(String& rName) const	{ rName = aName; }
+ 			void		SetName(const String& rName)	{ aName = rName; }
+-			void		GetArea(SCTAB& rTab, SCCOL& rCol1, SCROW& rRow1, SCCOL& rCol2, SCROW& rRow2) const;
+-			SC_DLLPUBLIC void		GetArea(ScRange& rRange) const;
++			void		GetArea(SCTAB& rTab, SCCOL& rCol1, SCROW& rRow1, SCCOL& rCol2, SCROW& rRow2, bool bUseDynamicRange = false) const;
++			SC_DLLPUBLIC void		GetArea(ScRange& rRange, bool bUseDynamicRange = false) const;
+ 			void		SetArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2);
++            void        SetDynamicEndRow(SCROW nRow);
+ 			void		MoveTo(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2);
+ 			BOOL		IsByRow() const 				{ return bByRow; }
+ 			void		SetByRow(BOOL bByR) 			{ bByRow = bByR; }
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/document.hxx sc/inc/document.hxx
+--- sc.clean/inc/document.hxx	2008-03-03 11:24:43.000000000 -0500
++++ sc/inc/document.hxx	2008-03-05 11:47:35.000000000 -0500
+@@ -864,7 +864,7 @@ SC_DLLPUBLIC	ScDBCollection*	GetDBCollec
  	USHORT			GetErrCode( const ScAddress& ) const;
  
  	void			GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
@@ -15,24 +34,33 @@
  	BOOL			GetCellArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
  	BOOL			GetTableArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
  	BOOL			GetPrintArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow,
-@@ -1365,6 +1365,9 @@
+@@ -1381,6 +1381,9 @@ SC_DLLPUBLIC	SvNumberFormatter*	GetForma
  										SCTAB nTab, ScQueryParam& rQueryParam );
  	void 			GetUpperCellString(SCCOL nCol, SCROW nRow, SCTAB nTab, String& rStr);
  
-+    /** Expands the database range in a presense of new data rows. */
-+    void            ExpandDBDataRows(ScDBData& rDBData) const;
++    /** Update the dynamic end row position of a current data area. */
++    void            UpdateDynamicEndRow(ScDBData& rDBData) const;
 +
  	BOOL			GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab,
  								TypedStrCollection& rStrings, bool bFilter = false );
  	SC_DLLPUBLIC BOOL			GetFilterEntriesArea( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
-Index: sc/inc/table.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/table.hxx,v
-retrieving revision 1.32
-diff -u -r1.32 table.hxx
---- sc/inc/table.hxx	21 Sep 2007 09:22:40 -0000	1.32
-+++ sc/inc/table.hxx	16 Jan 2008 17:03:08 -0000
-@@ -355,7 +355,7 @@
+Only in sc/inc: document.hxx.orig
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/global.hxx sc/inc/global.hxx
+--- sc.clean/inc/global.hxx	2008-03-03 11:24:43.000000000 -0500
++++ sc/inc/global.hxx	2008-03-05 00:52:49.000000000 -0500
+@@ -932,6 +932,8 @@ struct SC_DLLPUBLIC ScQueryParam
+ 	SCTAB			nDestTab;
+ 	SCCOL			nDestCol;
+ 	SCROW			nDestRow;
++    SCROW           nDynamicEndRow;
++    bool            bUseDynamicRange;
+ 
+ private:
+ 	SCSIZE			nEntryCount;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/inc/table.hxx sc/inc/table.hxx
+--- sc.clean/inc/table.hxx	2008-03-03 11:24:44.000000000 -0500
++++ sc/inc/table.hxx	2008-03-05 00:52:16.000000000 -0500
+@@ -355,7 +355,7 @@ public:
  						SCCOL nStartCol, SCROW nStartRow, SCCOL& rEndCol, SCROW nEndRow );
  
  	void		GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
@@ -41,18 +69,14 @@
  
  	SCSIZE	    GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
  										SCCOL nEndCol, SCROW nEndRow, ScDirection eDir );
-Index: sc/source/core/data/documen3.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/documen3.cxx,v
-retrieving revision 1.38
-diff -u -r1.38 documen3.cxx
---- sc/source/core/data/documen3.cxx	21 Sep 2007 09:22:54 -0000	1.38
-+++ sc/source/core/data/documen3.cxx	16 Jan 2008 17:03:08 -0000
-@@ -1337,6 +1337,20 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/documen3.cxx sc/source/core/data/documen3.cxx
+--- sc.clean/source/core/data/documen3.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/documen3.cxx	2008-03-05 11:47:22.000000000 -0500
+@@ -1282,6 +1282,18 @@ BOOL ScDocument::HasRowHeader( SCCOL nSt
  //	GetFilterEntries - Eintraege fuer AutoFilter-Listbox
  //
  
-+void ScDocument::ExpandDBDataRows(ScDBData& rDBData) const
++void ScDocument::UpdateDynamicEndRow(ScDBData& rDBData) const
 +{
 +    SCCOL nCol1, nCol2;
 +    SCROW nRow1, nRow2;
@@ -61,30 +85,33 @@
 +    SCCOL nCol1a = nCol1, nCol2a = nCol2;
 +    SCROW nRow1a = nRow1, nRow2a = nRow2;
 +    GetDataArea(nTab, nCol1a, nRow1a, nCol2a, nRow2a, false);
-+    if (nRow2a > nRow2)
-+        // resize only when the data size grows.
-+        rDBData.SetArea(nTab, nCol1, nRow1, nCol2, nRow2a);
++    rDBData.SetDynamicEndRow(nRow2a);
 +}
 +
  BOOL ScDocument::GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedStrCollection& rStrings, bool bFilter )
  {
  	if ( ValidTab(nTab) && pTab[nTab] && pDBCollection )
-@@ -1344,6 +1358,7 @@
+@@ -1289,6 +1301,7 @@ BOOL ScDocument::GetFilterEntries( SCCOL
  		ScDBData* pDBData = pDBCollection->GetDBAtCursor(nCol, nRow, nTab, FALSE);	//!??
  		if (pDBData)
  		{
-+            ExpandDBDataRows(*pDBData);
++            UpdateDynamicEndRow(*pDBData);
  			SCTAB nAreaTab;
  			SCCOL nStartCol;
  			SCROW nStartRow;
-Index: sc/source/core/data/document.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/document.cxx,v
-retrieving revision 1.80
-diff -u -r1.80 document.cxx
---- sc/source/core/data/document.cxx	27 Sep 2007 13:52:38 -0000	1.80
-+++ sc/source/core/data/document.cxx	16 Jan 2008 17:03:08 -0000
-@@ -590,7 +590,7 @@
+@@ -1300,6 +1313,7 @@ BOOL ScDocument::GetFilterEntries( SCCOL
+ 
+ 			ScQueryParam aParam;
+ 			pDBData->GetQueryParam( aParam );
++            nEndRow = aParam.nDynamicEndRow;
+ 			rStrings.SetCaseSensitive( aParam.bCaseSens );
+ 
+             // return all filter entries, if a filter condition is connected with a boolean OR
+Only in sc/source/core/data: documen3.cxx.orig
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/document.cxx sc/source/core/data/document.cxx
+--- sc.clean/source/core/data/document.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/document.cxx	2008-03-04 22:23:36.000000000 -0500
+@@ -584,7 +584,7 @@ BOOL ScDocument::GetTableArea( SCTAB nTa
  //	zusammenhaengender Bereich
  
  void ScDocument::GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
@@ -93,14 +120,61 @@
  {
  	if (VALIDTAB(nTab))
  		if (pTab[nTab])
-Index: sc/source/core/data/table1.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/table1.cxx,v
-retrieving revision 1.20
-diff -u -r1.20 table1.cxx
---- sc/source/core/data/table1.cxx	27 Feb 2007 12:09:14 -0000	1.20
-+++ sc/source/core/data/table1.cxx	16 Jan 2008 17:03:09 -0000
-@@ -619,7 +619,7 @@
+Only in sc/source/core/data: document.cxx.orig
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/global2.cxx sc/source/core/data/global2.cxx
+--- sc.clean/source/core/data/global2.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/global2.cxx	2008-03-05 00:56:41.000000000 -0500
+@@ -295,7 +295,8 @@ ScQueryParam::ScQueryParam( const ScQuer
+ 		bHasHeader(r.bHasHeader), bByRow(r.bByRow), bInplace(r.bInplace), bCaseSens(r.bCaseSens),
+ 		bRegExp(r.bRegExp), bMixedComparison(r.bMixedComparison),
+         bDuplicate(r.bDuplicate), bDestPers(r.bDestPers),
+-		nDestTab(r.nDestTab), nDestCol(r.nDestCol), nDestRow(r.nDestRow)
++		nDestTab(r.nDestTab), nDestCol(r.nDestCol), nDestRow(r.nDestRow),
++        nDynamicEndRow(r.nDynamicEndRow), bUseDynamicRange(r.bUseDynamicRange)
+ {
+ 	nEntryCount = 0;
+ 
+@@ -321,6 +322,8 @@ void ScQueryParam::Clear()
+ 	nTab = SCTAB_MAX;
+ 	bHasHeader = bCaseSens = bRegExp = bMixedComparison = FALSE;
+ 	bInplace = bByRow = bDuplicate = bDestPers = TRUE;
++    nDynamicEndRow = 0;
++    bUseDynamicRange = false;
+ 
+ 	Resize( MAXQUERY );
+ 	for (USHORT i=0; i<MAXQUERY; i++)
+@@ -347,6 +350,8 @@ ScQueryParam& ScQueryParam::operator=( c
+ 	bDuplicate	= r.bDuplicate;
+ 	bByRow		= r.bByRow;
+ 	bDestPers	= r.bDestPers;
++    nDynamicEndRow = r.nDynamicEndRow;
++    bUseDynamicRange = r.bUseDynamicRange;
+ 
+ 	Resize( r.nEntryCount );
+ 	for (USHORT i=0; i<nEntryCount; i++)
+@@ -384,7 +389,9 @@ BOOL ScQueryParam::operator==( const ScQ
+ 		&& (bDestPers   == rOther.bDestPers)
+ 		&& (nDestTab	== rOther.nDestTab)
+ 		&& (nDestCol	== rOther.nDestCol)
+-		&& (nDestRow	== rOther.nDestRow) )
++		&& (nDestRow	== rOther.nDestRow)
++        && (nDynamicEndRow == rOther.nDynamicEndRow)
++        && (bUseDynamicRange == rOther.bUseDynamicRange) )
+ 	{
+ 		bEqual = TRUE;
+ 		for ( USHORT i=0; i<nUsed && bEqual; i++ )
+@@ -446,6 +453,7 @@ void ScQueryParam::MoveToDest()
+         nCol2 = sal::static_int_cast<SCCOL>( nCol2 + nDifX );
+         nRow2 = sal::static_int_cast<SCROW>( nRow2 + nDifY );
+         nTab  = sal::static_int_cast<SCTAB>( nTab  + nDifZ );
++        nDynamicEndRow = sal::static_int_cast<SCROW>( nDynamicEndRow + nDifY );
+ 		for (USHORT i=0; i<nEntryCount; i++)
+ 			pEntries[i].nField += nDifX;
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/table1.cxx sc/source/core/data/table1.cxx
+--- sc.clean/source/core/data/table1.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/table1.cxx	2008-03-04 22:23:36.000000000 -0500
+@@ -665,7 +665,7 @@ BOOL ScTable::GetDataStart( SCCOL& rStar
  }
  
  void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
@@ -109,14 +183,91 @@
  {
  	BOOL bLeft       = FALSE;
  	BOOL bRight  = FALSE;
-Index: sc/source/ui/inc/dbfunc.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/dbfunc.hxx,v
-retrieving revision 1.10
-diff -u -r1.10 dbfunc.hxx
---- sc/source/ui/inc/dbfunc.hxx	7 Dec 2007 10:42:00 -0000	1.10
-+++ sc/source/ui/inc/dbfunc.hxx	16 Jan 2008 17:03:09 -0000
-@@ -85,7 +85,7 @@
+Only in sc/source/core/data: table1.cxx.orig
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/data/table3.cxx sc/source/core/data/table3.cxx
+--- sc.clean/source/core/data/table3.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/data/table3.cxx	2008-03-05 11:10:54.000000000 -0500
+@@ -1363,6 +1363,7 @@ SCSIZE ScTable::Query(ScQueryParam& rPar
+ 	BOOL* pSpecial = new BOOL[nEntryCount];
+     lcl_PrepareQuery( pDocument, this, aParam, pSpecial );
+ 
++    SCROW nEndRow = aParam.bUseDynamicRange ? aParam.nDynamicEndRow : aParam.nRow2;
+ 	if (!aParam.bInplace)
+ 	{
+ 		nOutRow = aParam.nDestRow + nHeader;
+@@ -1371,7 +1372,7 @@ SCSIZE ScTable::Query(ScQueryParam& rPar
+ 							aParam.nDestCol, aParam.nDestRow, aParam.nDestTab );
+ 	}
+ 
+-	for (SCROW j=aParam.nRow1 + nHeader; j<=aParam.nRow2; j++)
++	for (SCROW j=aParam.nRow1 + nHeader; j<=nEndRow; j++)
+ 	{
+ 		BOOL bResult;									// Filterergebnis
+ 		BOOL bValid = ValidQuery(j, aParam, pSpecial);
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/core/tool/dbcolect.cxx sc/source/core/tool/dbcolect.cxx
+--- sc.clean/source/core/tool/dbcolect.cxx	2008-03-03 11:24:50.000000000 -0500
++++ sc/source/core/tool/dbcolect.cxx	2008-03-05 11:52:55.000000000 -0500
+@@ -671,18 +671,20 @@ String ScDBData::GetOperations() const
+ 	return aVal;
+ }
+ 
+-void ScDBData::GetArea(SCTAB& rTab, SCCOL& rCol1, SCROW& rRow1, SCCOL& rCol2, SCROW& rRow2) const
++void ScDBData::GetArea(SCTAB& rTab, SCCOL& rCol1, SCROW& rRow1, SCCOL& rCol2, SCROW& rRow2, 
++                       bool bUseDynamicRange) const
+ {
+ 	rTab  = nTable;
+ 	rCol1 = nStartCol;
+ 	rRow1 = nStartRow;
+ 	rCol2 = nEndCol;
+-	rRow2 = nEndRow;
++	rRow2 = bUseDynamicRange ? nDynamicEndRow : nEndRow;
+ }
+ 
+-void ScDBData::GetArea(ScRange& rRange) const
++void ScDBData::GetArea(ScRange& rRange, bool bUseDynamicRange) const
+ {
+-	rRange = ScRange( nStartCol,nStartRow,nTable, nEndCol,nEndRow,nTable );
++    SCROW nNewEndRow = bUseDynamicRange ? nDynamicEndRow : nEndRow;
++	rRange = ScRange( nStartCol, nStartRow, nTable, nEndCol, nNewEndRow, nTable );
+ }
+ 
+ void ScDBData::SetArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
+@@ -694,6 +696,11 @@ void ScDBData::SetArea(SCTAB nTab, SCCOL
+ 	nEndRow   = nRow2;
+ }
+ 
++void ScDBData::SetDynamicEndRow(SCROW nRow)
++{
++    nDynamicEndRow = nRow;
++}
++
+ void ScDBData::MoveTo(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
+ {
+ 	USHORT i;
+@@ -799,6 +806,7 @@ void ScDBData::GetQueryParam( ScQueryPar
+ 	rQueryParam.nDestTab = nQueryDestTab;
+ 	rQueryParam.nDestCol = nQueryDestCol;
+ 	rQueryParam.nDestRow = nQueryDestRow;
++    rQueryParam.nDynamicEndRow = nDynamicEndRow;
+ 
+ 	rQueryParam.Resize( MAXQUERY );
+ 	for (SCSIZE i=0; i<MAXQUERY; i++)
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/dbgui/filtdlg.cxx sc/source/ui/dbgui/filtdlg.cxx
+--- sc.clean/source/ui/dbgui/filtdlg.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/dbgui/filtdlg.cxx	2008-03-05 11:11:49.000000000 -0500
+@@ -403,7 +403,7 @@ void ScFilterDlg::UpdateValueList( USHOR
+ 			{
+ 				SCTAB nTab		 = nSrcTab;
+ 				SCROW nFirstRow = theQueryData.nRow1;
+-				SCROW nLastRow	 = theQueryData.nRow2;
++				SCROW nLastRow	 = theQueryData.bUseDynamicRange ? theQueryData.nDynamicEndRow : theQueryData.nRow2;
+ 
+ 				//	erstmal ohne die erste Zeile
+ 
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/inc/dbfunc.hxx sc/source/ui/inc/dbfunc.hxx
+--- sc.clean/source/ui/inc/dbfunc.hxx	2008-03-03 11:24:45.000000000 -0500
++++ sc/source/ui/inc/dbfunc.hxx	2008-03-04 22:23:36.000000000 -0500
+@@ -85,7 +85,7 @@ public:
  	void			GotoDBArea( const String& rDBName );
  
  					// DB-Bereich vom Cursor
@@ -125,14 +276,10 @@
  
  	void			NotifyCloseDbNameDlg( const ScDBCollection& rNewColl, const List& rDelAreaList );
  
-Index: sc/source/ui/view/dbfunc.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/dbfunc.cxx,v
-retrieving revision 1.13
-diff -u -r1.13 dbfunc.cxx
---- sc/source/ui/view/dbfunc.cxx	27 Feb 2007 13:49:34 -0000	1.13
-+++ sc/source/ui/view/dbfunc.cxx	16 Jan 2008 17:03:09 -0000
-@@ -112,7 +112,7 @@
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/dbfunc.cxx sc/source/ui/view/dbfunc.cxx
+--- sc.clean/source/ui/view/dbfunc.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/dbfunc.cxx	2008-03-05 11:47:22.000000000 -0500
+@@ -112,7 +112,7 @@ void ScDBFunc::GotoDBArea( const String&
  
  //	aktuellen Datenbereich fuer Sortieren / Filtern suchen
  
@@ -141,7 +288,7 @@
  {
  	ScDocShell* pDocSh = GetViewData()->GetDocShell();
  	ScDBData* pData = NULL;
-@@ -124,8 +124,17 @@
+@@ -124,11 +124,20 @@ ScDBData* ScDBFunc::GetDBData( BOOL bMar
  					ScRange( GetViewData()->GetCurX(), GetViewData()->GetCurY(),
  							 GetViewData()->GetTabNo() ),
  					eMode, FALSE );
@@ -149,39 +296,55 @@
 +        return NULL;
  
 -	if ( pData && bMark )
-+    if (bExpandRows && pData->GetName() != ScGlobal::GetRscString(STR_DB_NONAME))
++    if (bExpandRows)
 +    {
 +        // Dynamically expand rows to include any new data rows that are
 +        // immediately below the original range.
-+        GetViewData()->GetDocument()->ExpandDBDataRows(*pData);
++        GetViewData()->GetDocument()->UpdateDynamicEndRow(*pData);
 +    }
 +
 +    if (bMark)
  	{
  		ScRange aFound;
- 		pData->GetArea(aFound);
-Index: sc/source/ui/view/tabvwshc.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/tabvwshc.cxx,v
-retrieving revision 1.11
-diff -u -r1.11 tabvwshc.cxx
---- sc/source/ui/view/tabvwshc.cxx	22 May 2007 20:15:06 -0000	1.11
-+++ sc/source/ui/view/tabvwshc.cxx	16 Jan 2008 17:03:09 -0000
-@@ -194,7 +194,7 @@
+-		pData->GetArea(aFound);
++		pData->GetArea(aFound, bExpandRows);
+ 		MarkRange( aFound, FALSE );
+ 	}
+ 	return pData;
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
+--- sc.clean/source/ui/view/gridwin.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/gridwin.cxx	2008-03-05 11:12:33.000000000 -0500
+@@ -1224,6 +1224,7 @@ void ScGridWindow::ExecFilter( ULONG nSe
+ 					pViewData->GetViewShell()->UpdateInputHandler();
+ 				}
+ 
++                aParam.bUseDynamicRange = true;
+ 				pViewData->GetView()->Query( aParam, NULL, TRUE );
+ 				pDBData->SetQueryParam( aParam );							// speichern
+ 			}
+diff -urp --exclude=CVS --exclude=unxlngi6.pro --exclude=sc.vpj sc.clean/source/ui/view/tabvwshc.cxx sc/source/ui/view/tabvwshc.cxx
+--- sc.clean/source/ui/view/tabvwshc.cxx	2008-03-03 11:24:49.000000000 -0500
++++ sc/source/ui/view/tabvwshc.cxx	2008-03-05 11:43:37.000000000 -0500
+@@ -195,8 +195,9 @@ SfxModelessDialog* ScTabViewShell::Creat
  									 SCITEM_QUERYDATA,
  									 SCITEM_QUERYDATA );
  
 -			ScDBData* pDBData = GetDBData();
 +            ScDBData* pDBData = GetDBData(true, SC_DB_MAKE, true);
  			pDBData->GetQueryParam( aQueryParam );
++            aQueryParam.bUseDynamicRange = true;
  
  			ScQueryItem aItem( SCITEM_QUERYDATA, GetViewData(), &aQueryParam );
-@@ -219,7 +219,7 @@
+ 			ScRange aAdvSource;
+@@ -220,8 +221,9 @@ SfxModelessDialog* ScTabViewShell::Creat
  									 SCITEM_QUERYDATA,
  									 SCITEM_QUERYDATA );
  
 -			ScDBData* pDBData = GetDBData();
 +            ScDBData* pDBData = GetDBData(true, SC_DB_MAKE, true);
  			pDBData->GetQueryParam( aQueryParam );
++            aQueryParam.bUseDynamicRange = true;
  
  			aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA,
+ 									  GetViewData(),
+Only in sc/source/ui/view: tabvwshc.cxx.orig



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