ooo-build r11617 - in branches/sled-10-ooo-build-2-3: . patches/src680 patches/vba



Author: pmladek
Date: Mon Feb 18 16:12:21 2008
New Revision: 11617
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11617&view=rev

Log:
2008-02-18  Noel Power  <noel power novell com>

	* patches/ooxml/xmlfilter-fixup-singlerange-sheetref.diff: 
	  fixed BASIC runtime error '1' returned by Application.Goto, n#309981

	* patches/src680/apply: api side of fix for n#309981
	* patches/vba/sc-source-ui-vba-vbarange-hxx.diff:
	* patches/vba/sc-source-ui-vba-vbaapplication-cxx.diff:
	* patches/vba/sc-source-ui-vba-vbarange-cxx.diff:



Added:
   branches/sled-10-ooo-build-2-3/patches/src680/xmlfilter-fixup-singlerange-sheetref.diff
Modified:
   branches/sled-10-ooo-build-2-3/ChangeLog
   branches/sled-10-ooo-build-2-3/patches/src680/apply
   branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbaapplication-cxx.diff
   branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbarange-cxx.diff
   branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbarange-hxx.diff

Modified: branches/sled-10-ooo-build-2-3/patches/src680/apply
==============================================================================
--- branches/sled-10-ooo-build-2-3/patches/src680/apply	(original)
+++ branches/sled-10-ooo-build-2-3/patches/src680/apply	Mon Feb 18 16:12:21 2008
@@ -1574,6 +1574,9 @@
 
 win32-installer-register-moox-types.diff
 
+# fix for n#309981
+xmlfilter-fixup-singlerange-sheetref.diff
+
 
 [ Win32Only ]
 # As the OOXML set is not used on Win32 in this branch now (which as such
@@ -1582,7 +1585,6 @@
 # asked to, duplicate this patch in the Win32Only set.
 win32-installer-register-moox-types.diff
 
-
 [ OOXSTLport5 ]
 SectionOwner => hmth
 

Added: branches/sled-10-ooo-build-2-3/patches/src680/xmlfilter-fixup-singlerange-sheetref.diff
==============================================================================
--- (empty file)
+++ branches/sled-10-ooo-build-2-3/patches/src680/xmlfilter-fixup-singlerange-sheetref.diff	Mon Feb 18 16:12:21 2008
@@ -0,0 +1,34 @@
+Index: sc/source/core/tool/rangelst.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/core/tool/rangelst.cxx,v
+retrieving revision 1.10
+diff -u -p -r1.10 rangelst.cxx
+--- sc/source/core/tool/rangelst.cxx	27 Feb 2007 12:18:02 -0000	1.10
++++ sc/source/core/tool/rangelst.cxx	30 Nov 2007 11:48:55 -0000
+@@ -109,15 +109,18 @@ USHORT ScRangeList::Parse( const String&
+ 		for ( USHORT i=0; i<nTCount; i++ )
+ 		{
+ 			aOne = rStr.GetToken( i, cDelimiter );
+-			// FIXME : broken for Lotus
+-			if ( aOne.Search( ':' ) == STRING_NOTFOUND )
+-			{	// Range muss es sein
+-				String aStrTmp( aOne );
+-				aOne += ':';
+-				aOne += aStrTmp;
+-			}
+ 			aRange.aStart.SetTab( nTab );	// Default Tab wenn nicht angegeben
+-			USHORT nRes = aRange.Parse( aOne, pDoc, eConv );
++			USHORT nRes = aRange.ParseAny( aOne, pDoc, eConv );
++			USHORT nEndRangeBits = SCA_VALID_COL2 | SCA_VALID_ROW2 | SCA_VALID_TAB2;
++			// nRes & (SCA_VALID_TAB | SCA_VALID_COL | SCA_VALID_ROW | SCA_TAB_3D | SCA_TAB_ABSOLUTE | SCA_ROW_ABSOLUTE | SCA_COL_ABSOLUTE);
++			USHORT nTmp1 = ( nRes & 0x070f );
++			USHORT nTmp2 = ( nRes & nEndRangeBits );
++			// If we have a valid single range with
++			// any of the address bits we are interested in
++			// set - set the equiv end range bits
++			if ( (nRes & SCA_VALID ) && nTmp1 && ( nTmp2 != nEndRangeBits ) )
++					nRes |= ( nTmp1 << 4 );
++	
+ 			if ( (nRes & nMask) == nMask )
+ 				Append( aRange );
+ 			nResult &= nRes;		// alle gemeinsamen Bits bleiben erhalten

Modified: branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbaapplication-cxx.diff
==============================================================================
--- branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbaapplication-cxx.diff	(original)
+++ branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbaapplication-cxx.diff	Mon Feb 18 16:12:21 2008
@@ -21,7 +21,28 @@
  
  using namespace ::org::openoffice;
  using namespace ::com::sun::star;
-@@ -824,6 +824,61 @@ ScVbaApplication::Intersect( const uno::
+@@ -504,18 +504,8 @@ ScVbaApplication::GoTo( const uno::Any& 
+         ScGridWindow* gridWindow = (ScGridWindow*)pShell->GetWindow(); 
+         try
+         {
+-            uno::Reference< beans::XPropertySet > xProps( getCurrentDocument(), uno::UNO_QUERY_THROW );
+-            uno::Reference< container::XNameAccess > xNameAccess( xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NamedRanges") ) ), uno::UNO_QUERY_THROW );
+-            sal_Bool isNamedReference = xNameAccess->hasByName( sRangeName ); 
+-            uno::Reference< table::XCellRange > xRange;
+-
+-            if ( isNamedReference )
+-                xRange = ScVbaRange::getCellRangeForName( sRangeName, xDoc );
+-            else
+-                xRange = ScVbaRange::getCellRangeForName( sRangeName, xDoc, ScAddress::CONV_XL_R1C1 );
+-
+-            ScVbaRange* pRange = new ScVbaRange( this, mxContext, xRange );
+-            uno::Reference< excel::XRange > xVbaSheetRange( pRange );
++            uno::Reference< excel::XRange > xVbaSheetRange = ScVbaRange::getRangeObjectForName( mxContext, sRangeName, getDocShell( xModel ), ScAddress::CONV_XL_R1C1 );
++;
+             if( bScroll )
+             {
+                 xVbaSheetRange->Select();
+@@ -824,6 +814,61 @@ ScVbaApplication::Intersect( const uno::
  	return xRefRange;
  }
  

Modified: branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbarange-cxx.diff
==============================================================================
--- branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbarange-cxx.diff	(original)
+++ branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbarange-cxx.diff	Mon Feb 18 16:12:21 2008
@@ -34,8 +34,7 @@
 -public:
 -	CellsEnumeration( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange ): mxContext( xContext ), m_xRange( xRange )
 +	uno::Reference< table::XCellRange > getArea( sal_Int32 nVBAIndex ) throw ( uno::RuntimeException )
- 	{
--		uno::Reference< table::XColumnRowRange > xColumnRowRange(m_xRange, uno::UNO_QUERY_THROW );
++	{
 +		if ( nVBAIndex < 1 || nVBAIndex > m_xAreas->getCount() )
 +			throw uno::RuntimeException();
 +		uno::Reference< excel::XRange > xRange( m_xAreas->Item( uno::makeAny(nVBAIndex), uno::Any() ), uno::UNO_QUERY_THROW );
@@ -48,7 +47,8 @@
 +		
 +	}
 +        void populateArea( sal_Int32 nVBAIndex )
-+	{
+ 	{
+-		uno::Reference< table::XColumnRowRange > xColumnRowRange(m_xRange, uno::UNO_QUERY_THROW );
 +		uno::Reference< table::XCellRange > xRange = getArea( nVBAIndex );
 +		uno::Reference< table::XColumnRowRange > xColumnRowRange(xRange, uno::UNO_QUERY_THROW );
  		sal_Int32 nRowCount =  xColumnRowRange->getRows()->getCount();
@@ -85,7 +85,154 @@
  	}
  };
  
-@@ -1100,39 +1128,8 @@ lcl_setupBorders( const uno::Reference< 
+@@ -972,34 +1000,6 @@ public:
+ 	
+ };
+ 
+-static table::CellRangeAddress getCellRangeAddress( const uno::Any& aParam,
+-const uno::Reference< sheet::XSpreadsheet >& xDoc )
+-{
+-	uno::Reference< table::XCellRange > xRangeParam;
+-	switch ( aParam.getValueTypeClass() )
+-	{
+-		case uno::TypeClass_STRING:
+-		{
+-			rtl::OUString rString;
+-			aParam >>= rString;
+-			xRangeParam = ScVbaRange::getCellRangeForName( rString, xDoc );
+-			break;
+-		}
+-		case uno::TypeClass_INTERFACE:
+-		{
+-			uno::Reference< excel::XRange > xRange;
+-			aParam >>= xRange;
+-			if ( xRange.is() )
+-				xRange->getCellRange() >>= xRangeParam;
+-			break;
+-		}
+-		default:
+-			throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Can't extact CellRangeAddress from type" ) ), uno::Reference< uno::XInterface >() );
+-	}
+-	uno::Reference< sheet::XCellRangeAddressable > xAddressable( xRangeParam, uno::UNO_QUERY_THROW );
+-	return xAddressable->getRangeAddress();
+-}
+-
+ bool
+ getCellRangesForAddress( USHORT& rResFlags, const rtl::OUString& sAddress, ScDocShell* pDocSh, ScRangeList& rCellRanges, ScAddress::Convention& eConv )
+ {
+@@ -1020,15 +1020,12 @@ getCellRangesForAddress( USHORT& rResFla
+ 	return false;
+ } 
+ 
+-ScVbaRange*
+-getRangeForName( const uno::Reference< uno::XComponentContext >& xContext, const rtl::OUString& sName, ScDocShell* pDocSh, table::CellRangeAddress& pAddr ) throw ( uno::RuntimeException )
++bool getScRangeListForAddress( const rtl::OUString& sName, ScDocShell* pDocSh, ScRange& refRange, ScRangeList& aCellRanges, ScAddress::Convention aConv = ScAddress::CONV_XL_A1 ) throw ( uno::RuntimeException )
+ {
+-	ScAddress::Convention eConv = ScAddress::CONV_XL_A1; 
+ 	// see if there is a match with a named range
+ 	uno::Reference< beans::XPropertySet > xProps( pDocSh->GetModel(), uno::UNO_QUERY_THROW );
+ 	uno::Reference< container::XNameAccess > xNameAccess( xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NamedRanges") ) ), uno::UNO_QUERY_THROW );
+ 	// Strangly enough you can have Range( "namedRange1, namedRange2, etc," )	
+-	ScRangeList aCellRanges;
+ 	// loop around each ',' seperated name
+ 	std::vector< rtl::OUString > vNames;
+ 	sal_Int32 nIndex = 0;
+@@ -1045,6 +1042,8 @@ getRangeForName( const uno::Reference< u
+ 	std::vector< rtl::OUString >::iterator it_end = vNames.end(); 
+ 	for ( ; it != it_end; ++it )
+ 	{
++		
++		ScAddress::Convention eConv = aConv; 
+ 		// spaces are illegal ( but the user of course can enter them )
+ 		rtl::OUString sAddress = (*it).trim();
+ 		if ( xNameAccess->hasByName( sAddress ) )
+@@ -1055,11 +1054,10 @@ getRangeForName( const uno::Reference< u
+ 			// style is may not be XL_A1
+ 			eConv = pDocSh->GetDocument()->GetAddressConvention();
+ 		}	
+-		ScRange refRange;	
+-		ScUnoConversion::FillScRange( refRange, pAddr );
++
+ 		USHORT nFlags = 0;
+ 		if ( !getCellRangesForAddress( nFlags, sAddress, pDocSh, aCellRanges, eConv ) )
+-			throw uno::RuntimeException();
++			return false;
+ 	
+ 		bool bTabFromReferrer = !( nFlags & SCA_TAB_3D );
+ 
+@@ -1073,7 +1071,18 @@ getRangeForName( const uno::Reference< u
+ 			pRange->aEnd.SetTab( bTabFromReferrer ? refRange.aEnd.Tab()  : pRange->aEnd.Tab() );
+ 		}
+ 	}
++	return true;
++}
++
+ 
++ScVbaRange*
++getRangeForName( const uno::Reference< uno::XComponentContext >& xContext, const rtl::OUString& sName, ScDocShell* pDocSh, table::CellRangeAddress& pAddr, ScAddress::Convention eConv = ScAddress::CONV_XL_A1 ) throw ( uno::RuntimeException )
++{
++	ScRangeList aCellRanges;
++	ScRange refRange;
++	ScUnoConversion::FillScRange( refRange, pAddr );
++	if ( !getScRangeListForAddress ( sName, pDocSh, refRange, aCellRanges, eConv ) ) 
++		throw uno::RuntimeException();
+ 	// Single range
+ 	if ( aCellRanges.First() == aCellRanges.Last() )
+ 	{
+@@ -1085,7 +1094,51 @@ getRangeForName( const uno::Reference< u
+  	
+ 	// #FIXME need proper (WorkSheet) parent
+ 	return new ScVbaRange( uno::Reference< vba::XHelperInterface >(), xContext, xRanges );
+-	
++}
++
++css::uno::Reference< excel::XRange >
++ScVbaRange::getRangeObjectForName( const uno::Reference< uno::XComponentContext >& xContext, const rtl::OUString& sRangeName, ScDocShell* pDocSh, ScAddress::Convention eConv ) throw ( uno::RuntimeException )
++{
++	table::CellRangeAddress refAddr;
++	return getRangeForName( xContext, sRangeName, pDocSh, refAddr, eConv );
++}
++
++
++table::CellRangeAddress getCellRangeAddressForVBARange( const uno::Any& aParam, ScDocShell* pDocSh,  ScAddress::Convention aConv = ScAddress::CONV_XL_A1) throw ( uno::RuntimeException )
++{
++	uno::Reference< table::XCellRange > xRangeParam;
++	switch ( aParam.getValueTypeClass() )
++	{
++		case uno::TypeClass_STRING:
++		{
++			rtl::OUString rString;
++			aParam >>= rString;
++			ScRangeList aCellRanges;
++			ScRange refRange;
++			if ( getScRangeListForAddress ( rString, pDocSh, refRange, aCellRanges, aConv ) ) 			
++			{
++				if ( aCellRanges.First() == aCellRanges.Last() )
++				{
++					table::CellRangeAddress aRangeAddress;
++					ScUnoConversion::FillApiRange( aRangeAddress, *aCellRanges.First() );
++					return aRangeAddress;
++				}
++			}
++		}
++		case uno::TypeClass_INTERFACE:
++		{
++			uno::Reference< excel::XRange > xRange;
++			aParam >>= xRange;
++			if ( xRange.is() )
++				xRange->getCellRange() >>= xRangeParam;
++			break;
++		}
++		default:
++			throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Can't extact CellRangeAddress from type" ) ), uno::Reference< uno::XInterface >() );
++	}
++	uno::Reference< sheet::XCellRangeAddressable > xAddressable( xRangeParam, uno::UNO_QUERY_THROW );
++	return xAddressable->getRangeAddress();
++
+ }
+ 
+ uno::Reference< vba::XCollection >
+@@ -1100,39 +1153,8 @@ lcl_setupBorders( const uno::Reference< 
  	return borders;
  }
  
@@ -126,7 +273,7 @@
  {
  	mxRange.set( mxPropertySet, uno::UNO_QUERY_THROW );
  	uno::Reference< container::XIndexAccess > xIndex( new SingleRangeIndexAccess( mxContext, mxRange ) );
-@@ -1177,13 +1174,6 @@ uno::Reference< vba::XCollection >& ScVb
+@@ -1177,13 +1199,6 @@ uno::Reference< vba::XCollection >& ScVb
  	return m_Borders;
  }
  
@@ -140,7 +287,7 @@
  void
  ScVbaRange::visitArray( ArrayVisitor& visitor )
  {
-@@ -1246,7 +1236,7 @@ ScVbaRange::setValue(  const uno::Any  &
+@@ -1246,7 +1261,7 @@ ScVbaRange::setValue(  const uno::Any  &
  	uno::TypeClass aClass = aValue.getValueTypeClass();
  	if ( aClass == uno::TypeClass_SEQUENCE )
  	{
@@ -149,7 +296,7 @@
  		uno::Any aConverted;
  		try
  		{
-@@ -1658,7 +1648,7 @@ ScVbaRange::getFormulaArray() throw (uno
+@@ -1658,7 +1673,7 @@ ScVbaRange::getFormulaArray() throw (uno
  	}
  	
  	uno::Reference< sheet::XCellRangeFormula> xCellRangeFormula( mxRange, uno::UNO_QUERY_THROW );
@@ -158,7 +305,110 @@
  	uno::Any aMatrix;
  	aMatrix = xConverter->convertTo( uno::makeAny( xCellRangeFormula->getFormulaArray() ) , getCppuType((uno::Sequence< uno::Sequence< uno::Any > >*)0)  ) ;
  	return aMatrix;
-@@ -3120,7 +3110,7 @@ ScVbaRange::hasElements() throw (uno::Ru
+@@ -1742,7 +1757,9 @@ ScVbaRange::Address(  const uno::Any& Ro
+ 			dDetails = ScAddress::Details( ScAddress::CONV_XL_R1C1, 0, 0 );
+ 	}
+ 	USHORT nFlags = SCA_VALID;
+-	ScDocument* pDoc =  getDocumentFromRange( mxRange );
++	ScDocShell* pDocShell =  getScDocShell();
++	ScDocument* pDoc =  pDocShell->GetDocument();
++
+ 	RangeHelper thisRange( mxRange );	
+ 	table::CellRangeAddress thisAddress = thisRange.getCellRangeAddressable()->getRangeAddress();
+ 	ScRange aRange( static_cast< SCCOL >( thisAddress.StartColumn ), static_cast< SCROW >( thisAddress.StartRow ), static_cast< SCTAB >( thisAddress.Sheet ), static_cast< SCCOL >( thisAddress.EndColumn ), static_cast< SCROW >( thisAddress.EndRow ), static_cast< SCTAB >( thisAddress.Sheet ) );
+@@ -1776,7 +1793,7 @@ ScVbaRange::Address(  const uno::Any& Ro
+ 	{
+ 		// #TODO should I throw an error if R1C1 is not set?
+ 		
+-		table::CellRangeAddress refAddress = getCellRangeAddress( RelativeTo, thisRange.getSpreadSheet() );
++		table::CellRangeAddress refAddress = getCellRangeAddressForVBARange( RelativeTo, pDocShell );
+ 		dDetails = ScAddress::Details( ScAddress::CONV_XL_R1C1, static_cast< SCROW >( refAddress.StartRow ), static_cast< SCCOL >( refAddress.StartColumn ) );
+ 	}
+ 	aRange.Format( sRange,  nFlags, pDoc, dDetails ); 
+@@ -2294,12 +2311,12 @@ ScVbaRange::Range( const uno::Any &Cell1
+ 	else
+ 	{
+ 		table::CellRangeAddress  cell1, cell2;
+-		cell1 = getCellRangeAddress( Cell1, thisRange.getSpreadSheet() ); 	
++		cell1 = getCellRangeAddressForVBARange( Cell1, getScDocShell() ); 	
+ 		// Cell1 & Cell2 defined
+ 		// Excel seems to combine the range as the range defined by
+ 		// the combination of Cell1 & Cell2
+ 	
+-		cell2 = getCellRangeAddress( Cell2, thisRange.getSpreadSheet() ); 	
++		cell2 = getCellRangeAddressForVBARange( Cell2, getScDocShell() ); 	
+ 
+ 		resultAddress.StartColumn = ( cell1.StartColumn <  cell2.StartColumn ) ? cell1.StartColumn : cell2.StartColumn;
+ 		resultAddress.StartRow = ( cell1.StartRow <  cell2.StartRow ) ? cell1.StartRow : cell2.StartRow;
+@@ -2674,38 +2691,26 @@ ScVbaRange::Replace( const ::rtl::OUStri
+ 	return sal_True; // always
+ }
+ 
+-uno::Reference< table::XCellRange > 
+-ScVbaRange::getCellRangeForName(  const rtl::OUString& sRangeName, const uno::Reference< sheet::XSpreadsheet >& xDoc, ScAddress::Convention aConv )
+-{
+-	uno::Reference< uno::XInterface > xRanges( xDoc, uno::UNO_QUERY_THROW );
+-	ScCellRangeObj* pRanges = dynamic_cast< ScCellRangeObj* >( xRanges.get() );
+-    ScAddress::Convention eConv = aConv;//ScAddress::CONV_XL_A1;   the default. 
+-
+-	ScAddress::Details dDetails( eConv, 0, 0 );
+-		
+-	uno::Reference< table::XCellRange > xRange;
+-	if ( pRanges )
+-		xRange = pRanges->getCellRangeByName( sRangeName, dDetails );
+-	return xRange;	
+-}
+-
+-uno::Reference< table::XCellRange > processKey( const uno::Any& Key, uno::Reference< table::XCellRange >& xRange )
++uno::Reference< table::XCellRange > processKey( const uno::Any& Key, uno::Reference<  uno::XComponentContext >& xContext, ScDocShell* pDocSh )
+ {
+-	uno::Reference< table::XCellRange > xKey;
++	uno::Reference< excel::XRange > xKeyRange;
+ 	if ( Key.getValueType() == excel::XRange::static_type() )
+ 	{
+-		uno::Reference< excel::XRange > xKeyRange( Key, uno::UNO_QUERY_THROW );
+-		xKey.set( xKeyRange->getCellRange(), uno::UNO_QUERY_THROW );
++		xKeyRange.set( Key, uno::UNO_QUERY_THROW );
+ 	}
+ 	else if ( Key.getValueType() == ::getCppuType( static_cast< const rtl::OUString* >(0) )  )
+ 			
+ 	{
+ 		rtl::OUString sRangeName = ::comphelper::getString( Key );
+-		RangeHelper dRange( xRange );
+-		xKey = ScVbaRange::getCellRangeForName( sRangeName,  dRange.getSpreadSheet() );
++		table::CellRangeAddress  aRefAddr;
++		if ( !pDocSh )
++			throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Range::Sort no docshell to calculate key param")), uno::Reference< uno::XInterface >() );
++		xKeyRange = getRangeForName( xContext, sRangeName, pDocSh, aRefAddr ); 
+ 	}
+ 	else
+ 		throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Range::Sort illegal type value for key param")), uno::Reference< uno::XInterface >() );
++	uno::Reference< table::XCellRange > xKey;
++	xKey.set( xKeyRange->getCellRange(), uno::UNO_QUERY_THROW );
+ 	return xKey;
+ }
+ 
+@@ -2913,15 +2918,15 @@ ScVbaRange::Sort( const uno::Any& Key1, 
+ 	uno::Reference< table::XCellRange > xKey1;	
+ 	uno::Reference< table::XCellRange > xKey2;	
+ 	uno::Reference< table::XCellRange > xKey3;	
+-
+-	xKey1 = processKey( Key1, mxRange );
++	ScDocShell* pDocShell = getScDocShell();
++	xKey1 = processKey( Key1, mxContext, pDocShell );
+ 	if ( !xKey1.is() )
+ 		throw uno::RuntimeException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Range::Sort needs a key1 param")), uno::Reference< uno::XInterface >() );
+ 
+ 	if ( Key2.hasValue() )
+-		xKey2 = processKey( Key2, mxRange );
++		xKey2 = processKey( Key2, mxContext, pDocShell );
+ 	if ( Key3.hasValue() )
+-		xKey3 = processKey( Key3, mxRange );
++		xKey3 = processKey( Key3, mxContext, pDocShell );
+ 
+ 	uno::Reference< util::XSortable > xSort( mxRange, uno::UNO_QUERY_THROW );
+ 	uno::Sequence< beans::PropertyValue > sortDescriptor = xSort->createSortDescriptor();
+@@ -3120,7 +3125,7 @@ ScVbaRange::hasElements() throw (uno::Ru
  uno::Reference< container::XEnumeration > SAL_CALL 
  ScVbaRange::createEnumeration() throw (uno::RuntimeException)
  {

Modified: branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbarange-hxx.diff
==============================================================================
--- branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbarange-hxx.diff	(original)
+++ branches/sled-10-ooo-build-2-3/patches/vba/sc-source-ui-vba-vbarange-hxx.diff	Mon Feb 18 16:12:21 2008
@@ -16,3 +16,13 @@
  
  	css::uno::Reference< oo::excel::XRange > getEntireColumnOrRow( bool bColumn = true ) throw( css::uno::RuntimeException );
  
+@@ -136,7 +134,8 @@ public:
+ 	virtual css::uno::Reference< oo::vba::XHelperInterface > thisHelperIface() { return this; }
+ 	bool isSingleCellRange(); 
+ 	css::uno::Reference< oo::excel::XRange > intersect( const css::uno::Reference< oo::excel::XRange >& xRange ) throw (css::script::BasicErrorException, css::uno::RuntimeException);
+-        static css::uno::Reference< css::table::XCellRange > getCellRangeForName( const rtl::OUString& sRangeName, const css::uno::Reference< css::sheet::XSpreadsheet >& xDoc, ScAddress::Convention eConv = ScAddress::CONV_XL_A1 );
++        static css::uno::Reference< oo::excel::XRange > getRangeObjectForName( const css::uno::Reference< css::uno::XComponentContext >& xContext, const rtl::OUString& sRangeName, ScDocShell* pDocSh, ScAddress::Convention eConv = ScAddress::CONV_XL_A1  ) throw ( css::uno::RuntimeException );
++
+     // Attributes
+ 	virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
+ 	virtual void   SAL_CALL setValue( const css::uno::Any& aValue ) throw ( css::uno::RuntimeException);



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