ooo-build r14156 - in trunk: . patches/dev300 scratch/sc-vba/testvba/TestDocuments
- From: noelpwer svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r14156 - in trunk: . patches/dev300 scratch/sc-vba/testvba/TestDocuments
- Date: Tue, 30 Sep 2008 14:41:51 +0000 (UTC)
Author: noelpwer
Date: Tue Sep 30 14:41:50 2008
New Revision: 14156
URL: http://svn.gnome.org/viewvc/ooo-build?rev=14156&view=rev
Log:
2008-09-30 Noel Power <noel power novell com>
* patches/dev300/cws-npower11.diff: new implementation for
Application.Intersection & Application.Union
* scratch/sc-vba/testvba/TestDocuments/TestUnion.xls: new test
documents
* scratch/sc-vba/testvba/TestDocuments/TestIntersection.xls:
Modified:
trunk/ChangeLog
trunk/patches/dev300/cws-npower11.diff
trunk/scratch/sc-vba/testvba/TestDocuments/TestIntersection.xls
trunk/scratch/sc-vba/testvba/TestDocuments/TestUnion.xls
Modified: trunk/patches/dev300/cws-npower11.diff
==============================================================================
--- trunk/patches/dev300/cws-npower11.diff (original)
+++ trunk/patches/dev300/cws-npower11.diff Tue Sep 30 14:41:50 2008
@@ -201,10 +201,10 @@
===================================================================
RCS file: /cvs/sc/sc/source/ui/vba/vbaapplication.cxx,v
retrieving revision 1.7
-retrieving revision 1.5.42.4
-diff -u -p -u -p -b -w -B -r1.7 -r1.5.42.4
+retrieving revision 1.5.42.5
+diff -u -p -u -p -b -w -B -r1.7 -r1.5.42.5
--- sc/source/ui/vba/vbaapplication.cxx 11 Apr 2008 00:47:25 -0000 1.7
-+++ sc/source/ui/vba/vbaapplication.cxx 29 Jul 2008 06:35:39 -0000 1.5.42.4
++++ sc/source/ui/vba/vbaapplication.cxx 30 Sep 2008 14:06:04 -0000 1.5.42.5
@@ -42,6 +42,7 @@
#include <com/sun/star/task/XStatusIndicator.hpp>
#include <org/openoffice/excel/XlMousePointer.hpp>
@@ -223,7 +223,7 @@
#include "sc.hrc"
#include <osl/file.hxx>
-@@ -78,6 +82,10 @@
+@@ -78,9 +82,19 @@
#include <basic/sbuno.hxx>
#include <basic/sbmeth.hxx>
@@ -234,7 +234,16 @@
using namespace ::org::openoffice;
using namespace ::com::sun::star;
-@@ -122,9 +130,25 @@ ScVbaApplication::getThisWorkbook() thro
++// Enable our own join detection for Intersection and Union
++// should be more efficient than using ScRangeList::Join ( because
++// we already are testing the same things )
++
++#define OWN_JOIN 1
++
+ // #TODO is this defined somewhere else?
+ #if ( defined UNX ) || ( defined OS2 ) //unix
+ #define FILE_PATH_SEPERATOR "/"
+@@ -122,9 +136,25 @@ ScVbaApplication::getThisWorkbook() thro
return getActiveWorkbook();
}
@@ -260,7 +269,7 @@
uno::Reference< lang::XServiceInfo > xServiceInfo( getCurrentDocument()->getCurrentSelection(), uno::UNO_QUERY_THROW );
rtl::OUString sImpementaionName = xServiceInfo->getImplementationName();
if( sImpementaionName.equalsIgnoreAsciiCaseAscii("com.sun.star.drawing.SvxShapeCollection") )
-@@ -132,6 +156,17 @@ ScVbaApplication::getSelection() throw (
+@@ -132,6 +162,17 @@ ScVbaApplication::getSelection() throw (
uno::Reference< drawing::XShapes > xShapes( getCurrentDocument()->getCurrentSelection(), uno::UNO_QUERY_THROW );
uno::Reference< container::XIndexAccess > xIndexAccess( xShapes, uno::UNO_QUERY_THROW );
uno::Reference< drawing::XShape > xShape( xIndexAccess->getByIndex(0), uno::UNO_QUERY_THROW );
@@ -278,7 +287,7 @@
return uno::makeAny( uno::Reference< msforms::XShape >(new ScVbaShape( this, mxContext, xShape, xShapes, ScVbaShape::getType( xShape ) ) ) );
}
else if( xServiceInfo->supportsService( rtl::OUString::createFromAscii("com.sun.star.sheet.SheetCellRange")) ||
-@@ -426,12 +461,17 @@ ScVbaApplication::Range( const uno::Any&
+@@ -426,12 +467,17 @@ ScVbaApplication::Range( const uno::Any&
}
uno::Any SAL_CALL
@@ -299,98 +308,425 @@
}
-@@ -883,6 +923,97 @@ ScVbaApplication::Intersect( const uno::
+@@ -800,89 +846,382 @@ ScVbaApplication::PathSeparator( ) thro
+ return sPathSep;
+ }
+
++typedef std::list< ScRange > Ranges;
++typedef std::list< ScRangeList > RangesList;
++
++void lcl_addRangesToVec( RangesList& vRanges, const uno::Any& aArg ) throw ( script::BasicErrorException, uno::RuntimeException )
++{
++ ScRangeList theRanges;
++ uno::Reference< excel::XRange > xRange( aArg, uno::UNO_QUERY_THROW );
++ uno::Reference< vba::XCollection > xCol( xRange->Areas( uno::Any() ), uno::UNO_QUERY_THROW );
++ sal_Int32 nCount = xCol->getCount();
++ for( sal_Int32 i = 1; i <= nCount; ++i )
++ {
++ uno::Reference< excel::XRange > xAreaRange( xCol->Item( uno::makeAny( sal_Int32(i) ), uno::Any() ), uno::UNO_QUERY_THROW );
++ uno::Reference< sheet::XCellRangeAddressable > xAddressable( xAreaRange->getCellRange(), uno::UNO_QUERY_THROW );
++ table::CellRangeAddress addr = xAddressable->getRangeAddress();
++ ScRange refRange;
++ ScUnoConversion::FillScRange( refRange, addr );
++ theRanges.Append( refRange );
++ }
++ vRanges.push_back( theRanges );
++}
++
++void lcl_addRangeToVec( Ranges& vRanges, const uno::Any& aArg ) throw ( script::BasicErrorException, uno::RuntimeException )
++{
++ uno::Reference< excel::XRange > xRange( aArg, uno::UNO_QUERY_THROW );
++ uno::Reference< vba::XCollection > xCol( xRange->Areas( uno::Any() ), uno::UNO_QUERY_THROW );
++ sal_Int32 nCount = xCol->getCount();
++ for( sal_Int32 i = 1; i <= nCount; ++i )
++ {
++ uno::Reference< excel::XRange > xAreaRange( xCol->Item( uno::makeAny( sal_Int32(i) ), uno::Any() ), uno::UNO_QUERY_THROW );
++ uno::Reference< sheet::XCellRangeAddressable > xAddressable( xAreaRange->getCellRange(), uno::UNO_QUERY_THROW );
++ table::CellRangeAddress addr = xAddressable->getRangeAddress();
++ ScRange refRange;
++ ScUnoConversion::FillScRange( refRange, addr );
++ vRanges.push_back( refRange );
++ }
++}
++
++bool lcl_canJoin( ScRange& r1, ScRange& r2 )
++{
++ bool bCanJoin = false;
++ SCCOL startEndColDiff = r2.aStart.Col() - r1.aEnd.Col();
++ SCROW startEndRowDiff = r2.aStart.Row() - r1.aEnd.Row();
++ SCCOL startColDiff = r2.aStart.Col() - r1.aStart.Col();
++ SCCOL endColDiff = r2.aEnd.Col() - r1.aEnd.Col();
++ SCROW startRowDiff = r2.aStart.Row() - r1.aStart.Row();
++ SCROW endRowDiff = r2.aEnd.Row() - r1.aEnd.Row();
++ if ( ( startRowDiff == endRowDiff ) && startRowDiff == 0 && startColDiff >=0 && endColDiff > 0 && ( startEndColDiff <= 1 && startEndColDiff >= -r1.aEnd.Col() ) )
++ bCanJoin = true;
++ else if ( ( startColDiff == endColDiff ) && startColDiff == 0 && startRowDiff >= 0 && endRowDiff > 0 && ( startEndRowDiff <= 1 && startEndRowDiff >= -r1.aEnd.Row() ) )
++ bCanJoin = true;
++#ifdef DEBUG
++ String sr1;
++ String sr2;
++ r1.Format( sr1, SCA_VALID ) ;
++ r2.Format( sr2, SCA_VALID ) ;
++ OSL_TRACE(" canJoin address %s with %s %s ( startRowDiff(%d), endRowDiff(%d), startColDiff(%d) endColDiff(%d) startEndRowDiff(%d), startEndColDiff(%d) ",
++ rtl::OUStringToOString( sr1, RTL_TEXTENCODING_UTF8 ).getStr(),
++ rtl::OUStringToOString( sr2, RTL_TEXTENCODING_UTF8 ).getStr(), bCanJoin ? "true" : "false", startRowDiff, endRowDiff, startColDiff, endColDiff, startEndRowDiff, startEndColDiff );
++#endif
++ return bCanJoin;
++}
++// strips out ranges that contain other ranges, also
++// if the borders of the intersecting ranges are alligned
++// then the the range is extended to the larger
++// e.g. Range("A4:D10"), Range("B4:E10") would be combined
++// to Range("A4:E10")
++void lcl_strip_containedRanges( Ranges& vRanges )
++{
++ // get rid of ranges that are surrounded by other ranges
++ for( Ranges::iterator it = vRanges.begin(); it != vRanges.end(); ++it )
++ {
++ for( Ranges::iterator it_inner = vRanges.begin(); it_inner != vRanges.end(); ++it_inner )
++ {
++ if ( it != it_inner )
++ {
++#ifdef DEBUG
++ String r1;
++ String r2;
++ it->Format( r1, SCA_VALID ) ;
++ it_inner->Format( r2, SCA_VALID ) ;
++ OSL_TRACE( "try strip/join address %s with %s ",
++ rtl::OUStringToOString( r1, RTL_TEXTENCODING_UTF8 ).getStr(),
++ rtl::OUStringToOString( r2, RTL_TEXTENCODING_UTF8 ).getStr() );
++#endif
++ if ( it->In( *it_inner ) )
++ it_inner = vRanges.erase( it_inner );
++ else if ( it_inner->In( *it ) )
++ it = vRanges.erase( it );
++#ifndef OWN_JOIN
++ else if ( (*it_inner).aStart.Row() == (*it).aStart.Row()
++ && (*it_inner).aEnd.Row() == (*it).aEnd.Row() )
++ {
++ it->ExtendTo( *it_inner );
++ it_inner = vRanges.erase( it_inner );
++ }
++#else
++ else if ( lcl_canJoin( *it, *it_inner ) )
++ {
++ it->ExtendTo( *it_inner );
++ it_inner = vRanges.erase( it_inner );
++ }
++ else if ( lcl_canJoin( *it_inner, *it) )
++ {
++ it_inner->ExtendTo( *it );
++ it = vRanges.erase( it );
++ }
++#endif
++ }
++ }
++ }
++
++}
++
++Ranges
++lcl_intersectionImpl( ScRangeList& rl1, ScRangeList& rl2 )
++{
++ Ranges intersections;
++ for ( USHORT x = 0 ; x < rl1.Count(); ++x )
++ {
++ for ( USHORT y = 0 ; y < rl2.Count(); ++y )
++ {
++#ifdef DEBUG
++ String r1;
++ String r2;
++ rl1.GetObject( x )->Format( r1, SCA_VALID ) ;
++ rl2.GetObject( y )->Format( r2, SCA_VALID ) ;
++ OSL_TRACE( "comparing address %s with %s ",
++ rtl::OUStringToOString( r1, RTL_TEXTENCODING_UTF8 ).getStr(),
++ rtl::OUStringToOString( r2, RTL_TEXTENCODING_UTF8 ).getStr() );
++#endif
++ if( rl1.GetObject( x )->Intersects( *rl2.GetObject( y ) ) )
++ {
++ ScRange aIntersection = ScRange( Max( rl1.GetObject( x )->aStart.Col(), rl2.GetObject( y )->aStart.Col() ),
++ Max( rl1.GetObject( x )->aStart.Row(), rl2.GetObject( y )->aStart.Row() ),
++ Max( rl1.GetObject( x )->aStart.Tab(), rl2.GetObject( y )->aStart.Tab() ),
++ Min( rl1.GetObject( x )->aEnd.Col(), rl2.GetObject( y )->aEnd.Col() ),
++ Min( rl1.GetObject( x )->aEnd.Row(), rl2.GetObject( y )->aEnd.Row() ),
++ Min( rl1.GetObject( x )->aEnd.Tab(), rl2.GetObject( y )->aEnd.Tab() ) );
++ intersections.push_back( aIntersection );
++ }
++ }
++ }
++ lcl_strip_containedRanges( intersections );
++ return intersections;
++}
++
++// Intersection of a set of ranges ( where each range is represented by a ScRangeList e.g.
++// any range can be a multi-area range )
++// An intersection is performed between each range in the set of ranges.
++// The resulting set of intersections is then processed to strip out any
++// intersections that contain other intersections ( and also ranges that directly line up
++// are joined ) ( see lcl_strip_containedRanges )
++RangesList lcl_intersections( RangesList& vRanges )
++{
++ RangesList intersections;
++ for( RangesList::iterator it = vRanges.begin(); it != vRanges.end(); ++it )
++ {
++ Ranges intermediateList;
++ for( RangesList::iterator it_inner = vRanges.begin(); it_inner != vRanges.end(); ++it_inner )
++ {
++ if ( it != it_inner )
++ {
++ Ranges ranges = lcl_intersectionImpl( *it, *it_inner );
++ for ( Ranges::iterator range_it = ranges.begin(); range_it != ranges.end(); ++range_it )
++ intermediateList.push_back( *range_it );
++ }
++ }
++ it = vRanges.erase( it ); // remove it so we don't include it in the next pass.
++
++ ScRangeList argIntersect;
++ lcl_strip_containedRanges( intermediateList );
++
++ for( Ranges::iterator it_inter = intermediateList.begin(); it_inter != intermediateList.end(); ++it_inter )
++#ifndef OWN_JOIN
++ argIntersect.Join( *it_inter );
++#else
++ argIntersect.Append( *it_inter );
++#endif
++
++ intersections.push_back( argIntersect );
++ }
++ return intersections;
++}
++
+ uno::Reference< excel::XRange > SAL_CALL
+ ScVbaApplication::Intersect( const uno::Reference< excel::XRange >& Arg1, const uno::Reference< excel::XRange >& Arg2, const uno::Any& Arg3, const uno::Any& Arg4, const uno::Any& Arg5, const uno::Any& Arg6, const uno::Any& Arg7, const uno::Any& Arg8, const uno::Any& Arg9, const uno::Any& Arg10, const uno::Any& Arg11, const uno::Any& Arg12, const uno::Any& Arg13, const uno::Any& Arg14, const uno::Any& Arg15, const uno::Any& Arg16, const uno::Any& Arg17, const uno::Any& Arg18, const uno::Any& Arg19, const uno::Any& Arg20, const uno::Any& Arg21, const uno::Any& Arg22, const uno::Any& Arg23, const uno::Any& Arg24, const uno::Any& Arg25, const uno::Any& Arg26, const uno::Any& Arg27, const uno::Any& Arg28, const uno::Any& Arg29, const uno::Any& Arg30 ) throw (script::BasicErrorException, uno::RuntimeException)
+ {
+- std::vector< uno::Reference< excel::XRange > > vRanges;
+ if ( !Arg1.is() || !Arg2.is() )
+ DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() );
+
+- vRanges.push_back( Arg1 );
+- vRanges.push_back( Arg2 );
++ RangesList vRanges;
++ lcl_addRangesToVec( vRanges, uno::makeAny( Arg1 ) );
++ lcl_addRangesToVec( vRanges, uno::makeAny( Arg2 ) );
+
+ if ( Arg3.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg3, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg3 );
+ if ( Arg4.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg4, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg4 );
+ if ( Arg5.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg5, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg5 );
+ if ( Arg6.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg6, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg6 );
+ if ( Arg7.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg7, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg7 );
+ if ( Arg8.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg8, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg8 );
+ if ( Arg9.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg9, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg9 );
+ if ( Arg10.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg10, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg10 );
+ if ( Arg11.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg11, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg11 );
+ if ( Arg12.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg12, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg12 );
+ if ( Arg13.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg13, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg13 );
+ if ( Arg14.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg14, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg14 );
+ if ( Arg15.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg15, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg15 );
+ if ( Arg16.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg16, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg16 );
+ if ( Arg17.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg17, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg17 );
+ if ( Arg18.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg18, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg18 );
+ if ( Arg19.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg19, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg19 );
+ if ( Arg20.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg20, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg20 );
+ if ( Arg21.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg21, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg21 );
+ if ( Arg22.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg22, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg22 );
+ if ( Arg23.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg23, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg23 );
+ if ( Arg24.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg24, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg24 );
+ if ( Arg25.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg25, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg25 );
+ if ( Arg26.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg26, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg26 );
+ if ( Arg27.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg27, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg27 );
+ if ( Arg28.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg28, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg28 );
+ if ( Arg29.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg29, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg29 );
+ if ( Arg30.hasValue() )
+- vRanges.push_back( uno::Reference< excel::XRange >( Arg30, uno::UNO_QUERY_THROW ) );
++ lcl_addRangesToVec( vRanges, Arg30 );
+
+- std::vector< uno::Reference< excel::XRange > >::iterator it = vRanges.begin();
+- std::vector< uno::Reference< excel::XRange > >::iterator it_end = vRanges.end();
++ uno::Reference< excel::XRange > xRefRange;
++
++ ScRangeList aCellRanges;
++ // first pass - gets the set of all possible interections of Arg1..ArgN
++ RangesList intersections = lcl_intersections( vRanges );
++ // second pass - gets the intersections of the intersections ( don't ask, but this
++ // is what seems to happen )
++ if ( intersections.size() > 1)
++ intersections = lcl_intersections( intersections );
++ for( RangesList::iterator it = intersections.begin(); it != intersections.end(); ++it )
++ {
++ for ( USHORT x = 0 ; x < it->Count(); ++x )
++#ifndef OWN_JOIN
++ aCellRanges.Join( *it->GetObject(x) );
++#else
++ aCellRanges.Append( *it->GetObject(x) );
++#endif
++ }
++
++ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
++ ScDocShell* pDocShell = getDocShell( xModel );
++ if ( aCellRanges.Count() == 1 )
++ {
++ xRefRange = new ScVbaRange( uno::Reference< vba::XHelperInterface >(), mxContext, new ScCellRangeObj( pDocShell, *aCellRanges.First() ) );
++ }
++ else if ( aCellRanges.Count() > 1 )
++ {
++ uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocShell, aCellRanges ) );
++ xRefRange = new ScVbaRange( uno::Reference< vba::XHelperInterface >(), mxContext, xRanges );
+
+- uno::Reference< excel::XRange > xRefRange( *it );
+- ++it;
+- for ( ; it != it_end; ++it )
+- {
+- ScVbaRange* pRange = dynamic_cast< ScVbaRange * >( xRefRange.get());
+- if ( pRange )
+- xRefRange = pRange->intersect( *it );
+- if ( !xRefRange.is() )
+- return uno::Reference< excel::XRange >();
+ }
return xRefRange;
}
+uno::Reference< excel::XRange > SAL_CALL
+ScVbaApplication::Union( const uno::Reference< excel::XRange >& Arg1, const uno::Reference< excel::XRange >& Arg2, const uno::Any& Arg3, const uno::Any& Arg4, const uno::Any& Arg5, const uno::Any& Arg6, const uno::Any& Arg7, const uno::Any& Arg8, const uno::Any& Arg9, const uno::Any& Arg10, const uno::Any& Arg11, const uno::Any& Arg12, const uno::Any& Arg13, const uno::Any& Arg14, const uno::Any& Arg15, const uno::Any& Arg16, const uno::Any& Arg17, const uno::Any& Arg18, const uno::Any& Arg19, const uno::Any& Arg20, const uno::Any& Arg21, const uno::Any& Arg22, const uno::Any& Arg23, const uno::Any& Arg24, const uno::Any& Arg25, const uno::Any& Arg26, const uno::Any& Arg27, const uno::Any& Arg28, const uno::Any& Arg29, const uno::Any& Arg30 ) throw (script::BasicErrorException, uno::RuntimeException)
+{
-+ std::vector< uno::Reference< excel::XRange > > vRanges;
+ if ( !Arg1.is() || !Arg2.is() )
+ DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() );
+
-+ vRanges.push_back( Arg1 );
-+ vRanges.push_back( Arg2 );
++ uno::Reference< excel::XRange > xRange;
++ Ranges vRanges;
++ lcl_addRangeToVec( vRanges, uno::makeAny( Arg1 ) );
++ lcl_addRangeToVec( vRanges, uno::makeAny( Arg2 ) );
+
+ if ( Arg3.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg3, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg3 );
+ if ( Arg4.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg4, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg4 );
+ if ( Arg5.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg5, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg5 );
+ if ( Arg6.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg6, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg6 );
+ if ( Arg7.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg7, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg7 );
+ if ( Arg8.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg8, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg8 );
+ if ( Arg9.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg9, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg9 );
+ if ( Arg10.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg10, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg10 );
+ if ( Arg11.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg11, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg11 );
+ if ( Arg12.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg12, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg12 );
+ if ( Arg13.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg13, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg13 );
+ if ( Arg14.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg14, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg14 );
+ if ( Arg15.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg15, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg15 );
+ if ( Arg16.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg16, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg16 );
+ if ( Arg17.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg17, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg17 );
+ if ( Arg18.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg18, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg18 );
+ if ( Arg19.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg19, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg19 );
+ if ( Arg20.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg20, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg20 );
+ if ( Arg21.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg21, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg21 );
+ if ( Arg22.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg22, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg22 );
+ if ( Arg23.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg23, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg23 );
+ if ( Arg24.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg24, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg24 );
+ if ( Arg25.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg25, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg25 );
+ if ( Arg26.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg26, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg26 );
+ if ( Arg27.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg27, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg27 );
+ if ( Arg28.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg28, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg28 );
+ if ( Arg29.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg29, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg29 );
+ if ( Arg30.hasValue() )
-+ vRanges.push_back( uno::Reference< excel::XRange >( Arg30, uno::UNO_QUERY_THROW ) );
++ lcl_addRangeToVec( vRanges, Arg30 );
+
-+ std::vector< uno::Reference< excel::XRange > >::iterator it = vRanges.begin();
-+ std::vector< uno::Reference< excel::XRange > >::iterator it_end = vRanges.end();
++ ScRangeList aCellRanges;
++ lcl_strip_containedRanges( vRanges );
+
-+ uno::Reference< excel::XRange > xRange;
-+ ScRangeList aCellRanges;
-+ for( ; it != it_end; ++it )
-+ {
-+ xRange = *it;
-+ uno::Reference< table::XCellRange > xRangeParam;
-+ xRange->getCellRange() >>= xRangeParam;
-+ uno::Reference< sheet::XCellRangeAddressable > xAddressable( xRangeParam, uno::UNO_QUERY_THROW );
-+ ScRange refRange;
-+ ScUnoConversion::FillScRange( refRange, xAddressable->getRangeAddress() );
-+ aCellRanges.Append( refRange );
-+ }
++ for( Ranges::iterator it = vRanges.begin(); it != vRanges.end(); ++it )
++ aCellRanges.Append( *it );
+
+ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
+ ScDocShell* pDocShell = getDocShell( xModel );
-+ uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocShell, aCellRanges ) );
++ if ( aCellRanges.Count() == 1 )
++ {
++ // normal range
++ xRange = new ScVbaRange( uno::Reference< vba::XHelperInterface >(), mxContext, new ScCellRangeObj( pDocShell, *aCellRanges.First() ) );
++ }
++ else if ( aCellRanges.Count() > 1 ) // Multi-Area
++ {
++ uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocShell, aCellRanges ) );
++ xRange = new ScVbaRange( uno::Reference< vba::XHelperInterface >(), mxContext, xRanges );
++ }
++
+ // #FIXME need proper (WorkSheet) parent
-+ xRange = new ScVbaRange( uno::Reference< vba::XHelperInterface >(), mxContext, xRanges );
+ return xRange;
+}
+
@@ -8015,10 +8351,10 @@
===================================================================
RCS file: /cvs/sc/sc/source/ui/vba/vbarange.cxx,v
retrieving revision 1.9
-retrieving revision 1.5.34.16
-diff -u -p -u -p -b -w -B -r1.9 -r1.5.34.16
+retrieving revision 1.5.34.17
+diff -u -p -u -p -b -w -B -r1.9 -r1.5.34.17
--- sc/source/ui/vba/vbarange.cxx 14 May 2008 10:03:31 -0000 1.9
-+++ sc/source/ui/vba/vbarange.cxx 23 Sep 2008 14:58:56 -0000 1.5.34.16
++++ sc/source/ui/vba/vbarange.cxx 30 Sep 2008 14:06:04 -0000 1.5.34.17
@@ -115,6 +115,7 @@
#include <org/openoffice/excel/XlCellType.hpp>
#include <org/openoffice/excel/XlSpecialCellsValue.hpp>
@@ -8556,70 +8892,51 @@
{
if ( bIsMultiArea )
{
-@@ -4959,20 +5323,51 @@ uno::Reference< excel::XRange >
- ScVbaRange::intersect( const css::uno::Reference< oo::excel::XRange >& xRange ) throw (script::BasicErrorException, uno::RuntimeException)
- {
- uno::Reference< excel::XRange > xResult;
-+ sal_Int32 nLen = m_Areas->getCount();
-+ if ( nLen > 1 )
-+ {
-+ ScRangeList aCellRanges;
-+ for ( sal_Int32 index = 1; index != nLen; ++index )
-+ {
-+ uno::Reference< excel::XRange > xAreaRange( getArea( index ), uno::UNO_QUERY_THROW );
-+ ScVbaRange* pRange = dynamic_cast< ScVbaRange * >( xAreaRange.get());
-+ if ( pRange )
-+ {
-+ uno::Reference< excel::XRange > xResultRange = pRange->intersect( xAreaRange );
-+ if ( xResultRange.is() )
-+ {
-+ ScRange refRange;
-+ RangeHelper aRange( xResultRange->getCellRange() );
-+ ScUnoConversion::FillScRange( refRange, aRange.getCellRangeAddressable()->getRangeAddress() );
-+ aCellRanges.Append( refRange );
-+ }
-+ }
-+ }
-+ if ( aCellRanges.First() != aCellRanges.Last() )
-+ {
-+ uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( getScDocShell(), aCellRanges ) );
-+ xResult = new ScVbaRange( getParent(), mxContext, xRanges );
-+ }
-+ return xResult;
-+ }
-+ else
-+ {
-+ // This is a single range
- try
- {
-- uno::Reference< sheet::XCellRangesQuery > xQuery( mxRange, uno::UNO_QUERY_THROW );
-- RangeHelper aRange( xRange->getCellRange() );
-+ // xRange could be a single of multi-area range
-+ uno::Reference< sheet::XCellRangesQuery > xQuery( xRange->getCellRange(), uno::UNO_QUERY_THROW );
-+ RangeHelper aRange( mxRange );
- table::CellRangeAddress aAddress = aRange.getCellRangeAddressable()->getRangeAddress();
- uno::Reference< sheet::XSheetCellRanges > xIntersectRanges = xQuery->queryIntersection( aAddress );
- xResult = lcl_makeXRangeFromSheetCellRanges( getParent(), mxContext, xIntersectRanges, getScDocShell() );
-
--
- }
- catch( uno::Exception& )
- {
- DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
+@@ -4955,27 +5319,6 @@ ScVbaRange::Subtotal( ::sal_Int32 _nGrou
}
-+ }
- return xResult;
}
+-uno::Reference< excel::XRange >
+-ScVbaRange::intersect( const css::uno::Reference< oo::excel::XRange >& xRange ) throw (script::BasicErrorException, uno::RuntimeException)
+-{
+- uno::Reference< excel::XRange > xResult;
+- try
+- {
+- uno::Reference< sheet::XCellRangesQuery > xQuery( mxRange, uno::UNO_QUERY_THROW );
+- RangeHelper aRange( xRange->getCellRange() );
+- table::CellRangeAddress aAddress = aRange.getCellRangeAddressable()->getRangeAddress();
+- uno::Reference< sheet::XSheetCellRanges > xIntersectRanges = xQuery->queryIntersection( aAddress );
+- xResult = lcl_makeXRangeFromSheetCellRanges( getParent(), mxContext, xIntersectRanges, getScDocShell() );
+-
+-
+- }
+- catch( uno::Exception& )
+- {
+- DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
+- }
+- return xResult;
+-}
+-
+ rtl::OUString&
+ ScVbaRange::getServiceImplName()
+ {
Index: sc/source/ui/vba/vbarange.hxx
===================================================================
RCS file: /cvs/sc/sc/source/ui/vba/vbarange.hxx,v
retrieving revision 1.6
-retrieving revision 1.6.70.1
-diff -u -p -u -p -b -w -B -r1.6 -r1.6.70.1
+retrieving revision 1.6.70.2
+diff -u -p -u -p -b -w -B -r1.6 -r1.6.70.2
--- sc/source/ui/vba/vbarange.hxx 14 May 2008 10:03:47 -0000 1.6
-+++ sc/source/ui/vba/vbarange.hxx 29 Jul 2008 06:35:42 -0000 1.6.70.1
-@@ -171,6 +171,10 @@ public:
++++ sc/source/ui/vba/vbarange.hxx 30 Sep 2008 14:06:05 -0000 1.6.70.2
+@@ -128,7 +128,6 @@ public:
+ virtual ~ScVbaRange();
+ 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< 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
+@@ -171,6 +170,10 @@ public:
virtual css::uno::Reference< oo::excel::XValidation > SAL_CALL getValidation() throw (css::uno::RuntimeException);
virtual css::uno::Any SAL_CALL getFormulaHidden() throw (css::script::BasicErrorException, css::uno::RuntimeException);
virtual void SAL_CALL setFormulaHidden(const css::uno::Any& aHidden) throw (css::script::BasicErrorException, css::uno::RuntimeException);
@@ -8630,7 +8947,7 @@
// Methods
sal_Bool IsRows() { return mbIsRows; }
sal_Bool IsColumns() { return mbIsColumns; }
-@@ -210,6 +214,7 @@ public:
+@@ -210,6 +213,7 @@ public:
virtual css::uno::Any SAL_CALL getCellRange( ) throw (css::uno::RuntimeException);
virtual void SAL_CALL PasteSpecial( const css::uno::Any& Paste, const css::uno::Any& Operation, const css::uno::Any& SkipBlanks, const css::uno::Any& Transpose ) throw (css::uno::RuntimeException);
virtual ::sal_Bool SAL_CALL Replace( const ::rtl::OUString& What, const ::rtl::OUString& Replacement, const css::uno::Any& LookAt, const css::uno::Any& SearchOrder, const css::uno::Any& MatchCase, const css::uno::Any& MatchByte, const css::uno::Any& SearchFormat, const css::uno::Any& ReplaceFormat ) throw (css::uno::RuntimeException);
@@ -8638,7 +8955,7 @@
virtual void SAL_CALL Sort( const css::uno::Any& Key1, const css::uno::Any& Order1, const css::uno::Any& Key2, const css::uno::Any& Type, const css::uno::Any& Order2, const css::uno::Any& Key3, const css::uno::Any& Order3, const css::uno::Any& Header, const css::uno::Any& OrderCustom, const css::uno::Any& MatchCase, const css::uno::Any& Orientation, const css::uno::Any& SortMethod, const css::uno::Any& DataOption1, const css::uno::Any& DataOption2, const css::uno::Any& DataOption3 ) throw (css::uno::RuntimeException);
virtual css::uno::Reference< oo::excel::XRange > SAL_CALL End( ::sal_Int32 Direction ) throw (css::uno::RuntimeException);
virtual css::uno::Reference< oo::excel::XCharacters > SAL_CALL characters( const css::uno::Any& Start, const css::uno::Any& Length ) throw (css::uno::RuntimeException);
-@@ -241,6 +246,7 @@ public:
+@@ -241,6 +245,7 @@ public:
virtual css::uno::Reference< oo::excel::XRange > SAL_CALL Next() throw (css::script::BasicErrorException, css::uno::RuntimeException);
virtual css::uno::Reference< oo::excel::XRange > SAL_CALL Previous() throw (css::script::BasicErrorException, css::uno::RuntimeException);
virtual void SAL_CALL RemoveSubtotal( ) throw (css::script::BasicErrorException, css::uno::RuntimeException);
@@ -11461,117 +11778,117 @@
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/AutoFilter.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/AutoFilter.xls
-Binary files /dev/null and /tmp/cvsKXaG4v differ
+Binary files /dev/null and /tmp/cvssWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/MiscRangeTests.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/MiscRangeTests.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/MiscRangeTests.xls
-Binary files /dev/null and /tmp/cvsLXaG4v differ
+Binary files /dev/null and /tmp/cvstWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/PageBreaks.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/PageBreaks.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/PageBreaks.xls
-Binary files /dev/null and /tmp/cvsMXaG4v differ
+Binary files /dev/null and /tmp/cvsuWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/PageSetup.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/PageSetup.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/PageSetup.xls
-Binary files /dev/null and /tmp/cvsNXaG4v differ
+Binary files /dev/null and /tmp/cvsvWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/Ranges-2.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/Ranges-2.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/Ranges-2.xls
-Binary files /dev/null and /tmp/cvsOXaG4v differ
+Binary files /dev/null and /tmp/cvswWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/Ranges-3.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/Ranges-3.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/Ranges-3.xls
-Binary files /dev/null and /tmp/cvsPXaG4v differ
+Binary files /dev/null and /tmp/cvsxWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/Ranges.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/Ranges.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/Ranges.xls
-Binary files /dev/null and /tmp/cvsQXaG4v differ
+Binary files /dev/null and /tmp/cvsyWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/Shapes.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/Shapes.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/Shapes.xls
-Binary files /dev/null and /tmp/cvsRXaG4v differ
+Binary files /dev/null and /tmp/cvszWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/StrConv-test.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/StrConv-test.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/StrConv-test.xls
-Binary files /dev/null and /tmp/cvsSXaG4v differ
+Binary files /dev/null and /tmp/cvsAWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/Template.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/Template.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/Template.xls
-Binary files /dev/null and /tmp/cvsTXaG4v differ
+Binary files /dev/null and /tmp/cvsBWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/TestAddress.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/TestAddress.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/TestAddress.xls
-Binary files /dev/null and /tmp/cvsUXaG4v differ
+Binary files /dev/null and /tmp/cvsCWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest.xls
-Binary files /dev/null and /tmp/cvsVXaG4v differ
+Binary files /dev/null and /tmp/cvsDWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest2.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest2.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest2.xls
-Binary files /dev/null and /tmp/cvsWXaG4v differ
+Binary files /dev/null and /tmp/cvsEWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/Window.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/Window.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/Window.xls
-Binary files /dev/null and /tmp/cvsXXaG4v differ
+Binary files /dev/null and /tmp/cvsFWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/bytearraystring.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/bytearraystring.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/bytearraystring.xls
-Binary files /dev/null and /tmp/cvsYXaG4v differ
+Binary files /dev/null and /tmp/cvsGWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/dateserial.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/dateserial.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/dateserial.xls
-Binary files /dev/null and /tmp/cvsZXaG4v differ
+Binary files /dev/null and /tmp/cvsHWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/datevalue.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/datevalue.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/datevalue.xls
-Binary files /dev/null and /tmp/cvs0XaG4v differ
+Binary files /dev/null and /tmp/cvsIWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/format.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/format.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/format.xls
-Binary files /dev/null and /tmp/cvs1XaG4v differ
+Binary files /dev/null and /tmp/cvsJWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/partition.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/partition.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/partition.xls
-Binary files /dev/null and /tmp/cvs2XaG4v differ
+Binary files /dev/null and /tmp/cvsKWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/range-4.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/range-4.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/range-4.xls
-Binary files /dev/null and /tmp/cvs3XaG4v differ
+Binary files /dev/null and /tmp/cvsLWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/replace.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/replace.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/replace.xls
-Binary files /dev/null and /tmp/cvs4XaG4v differ
+Binary files /dev/null and /tmp/cvsMWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/stringplusdouble.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/stringplusdouble.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/stringplusdouble.xls
-Binary files /dev/null and /tmp/cvs5XaG4v differ
+Binary files /dev/null and /tmp/cvsNWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/window2.xls
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/window2.xls
diff -N sc/source/ui/vba/testvba/TestDocuments/window2.xls
-Binary files /dev/null and /tmp/cvs6XaG4v differ
+Binary files /dev/null and /tmp/cvsOWaGWk differ
Index: sc/source/ui/vba/testvba/TestDocuments/logs/excel/AutoFilter.log
===================================================================
RCS file: sc/source/ui/vba/testvba/TestDocuments/logs/excel/AutoFilter.log
Modified: trunk/scratch/sc-vba/testvba/TestDocuments/TestIntersection.xls
==============================================================================
Binary files. No diff available.
Modified: trunk/scratch/sc-vba/testvba/TestDocuments/TestUnion.xls
==============================================================================
Binary files. No diff available.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]