ooo-build r13767 - in trunk: . patches/dev300 patches/vba
- From: noelpwer svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r13767 - in trunk: . patches/dev300 patches/vba
- Date: Wed, 3 Sep 2008 14:21:13 +0000 (UTC)
Author: noelpwer
Date: Wed Sep 3 14:21:13 2008
New Revision: 13767
URL: http://svn.gnome.org/viewvc/ooo-build?rev=13767&view=rev
Log:
2008-09-03 Noel Power <noel power novell com>
* patches/dev300/apply: fix various bits
* patches/vba/vba-intersect-multi-area.diff:
* patches/vba/parse-xla1-bad-3dflag.diff: fix n#422569
* patches/vba/stringnumbercompare.diff: fix n#422559
* patches/vba/vba-rowheight-fix.diff:
* patches/vba/range-listBox-compare.diff: fix n#421939
Added:
trunk/patches/vba/parse-xla1-bad-3dflag.diff
trunk/patches/vba/range-listBox-compare.diff
trunk/patches/vba/stringnumbercompare.diff
trunk/patches/vba/vba-intersect-multi-area.diff
trunk/patches/vba/vba-rowheight-fix.diff
Modified:
trunk/ChangeLog
trunk/patches/dev300/apply
Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply (original)
+++ trunk/patches/dev300/apply Wed Sep 3 14:21:13 2008
@@ -1608,6 +1608,18 @@
basic-ide-objectmodule.diff, Fong
# display a friendly name for objectmodule tab
basic-ide-module-object-name-combile.diff, Fong
+# fix bug accessing default member of userform control
+range-listBox-compare.diff, n#421939
+# fix bug comparing string that can't be converted to number
+stringnumbercompare.diff, n#422559
+# fix bug generating a specific Sheet reference
+parse-xla1-bad-3dflag.diff, n#422569
+# fix bad intersect api, need to be folded into npower11
+# also needs some testing
+vba-intersect-multi-area.diff
+# fix rowheight to return null if any row in a multicell range is
+# of a different height to the others, also need to be pulled into npower11
+vba-rowheight-fix.diff
[ VBAUntested ]
SectionOwner => noelpwer
vba-basic-null.diff i#85349, jjiao
@@ -2608,3 +2620,4 @@
sw-filter-import-TOX.diff ,n#40425, Amelia Wang
gnome-fpicker-transient-win.diff, i#92878, cmc
gnome-fpicker-main-thread.diff, i#93366, cmc
+
Added: trunk/patches/vba/parse-xla1-bad-3dflag.diff
==============================================================================
--- (empty file)
+++ trunk/patches/vba/parse-xla1-bad-3dflag.diff Wed Sep 3 14:21:13 2008
@@ -0,0 +1,41 @@
+diff --git sc/source/core/tool/address.cxx sc/source/core/tool/address.cxx
+index e518b27..8966a96 100644
+--- sc/source/core/tool/address.cxx
++++ sc/source/core/tool/address.cxx
+@@ -235,7 +235,7 @@ lcl_ScRange_Parse_XL_Header( ScRange& r,
+ USHORT& nFlags )
+ {
+ const sal_Unicode* startTabs, *start = p;
+-
++ USHORT nSaveFlags = nFlags;
+ // Is this an external reference ?
+ rStartTabName.Erase();
+ rEndTabName.Erase();
+@@ -287,7 +287,13 @@ lcl_ScRange_Parse_XL_Header( ScRange& r,
+ }
+
+ if( *p++ != '!' )
++ {
++ // bit of a hack ( in fact for a1:d11 ) passed in above
++ // the first tabname will be assigned a1 ??
++ // In anycase if we get here we need to reset the flags (
++ nFlags = nSaveFlags;
+ return start; // syntax error
++ }
+ }
+ else
+ {
+@@ -614,7 +620,12 @@ lcl_ScRange_Parse_XL_A1( ScRange& r,
+ {
+ const sal_Unicode* tmp1, *tmp2;
+ String aExternDocName, aStartTabName, aEndTabName; // for external link table
+- USHORT nFlags = SCA_VALID | SCA_VALID_TAB, nFlags2 = SCA_VALID_TAB2;
++
++ // nFlags 2 is always shifted << 4 which would imply
++ // SCA_VALID_TAB2 should be SCA_VALID_TAB ( which would ensure
++ // Range references have the correct flags set when ScRange::ParseAny
++ // is called
++ USHORT nFlags = SCA_VALID | SCA_VALID_TAB, nFlags2 = SCA_VALID_TAB;
+
+ #if 0
+ {
Added: trunk/patches/vba/range-listBox-compare.diff
==============================================================================
--- (empty file)
+++ trunk/patches/vba/range-listBox-compare.diff Wed Sep 3 14:21:13 2008
@@ -0,0 +1,35 @@
+diff --git basic/source/runtime/step0.cxx basic/source/runtime/step0.cxx
+index 25adf15..cbd2fad 100644
+--- basic/source/runtime/step0.cxx
++++ basic/source/runtime/step0.cxx
+@@ -109,19 +109,24 @@ void SbiRuntime::StepCompare( SbxOperato
+ // values ( and type ) set as appropriate
+ SbxDataType p1Type = p1->GetType();
+ SbxDataType p2Type = p2->GetType();
++ if ( p1Type == SbxEMPTY )
++ {
++ p1->Broadcast( SBX_HINT_DATAWANTED );
++ p1Type = p1->GetType();
++ }
++ if ( p2Type == SbxEMPTY )
++ {
++ p2->Broadcast( SBX_HINT_DATAWANTED );
++ p2Type = p2->GetType();
++ }
+ if ( p1Type == p2Type )
+ {
+- if ( p1Type == SbxEMPTY )
+- {
+- p1->Broadcast( SBX_HINT_DATAWANTED );
+- p2->Broadcast( SBX_HINT_DATAWANTED );
+- }
+ // if both sides are an object and have default props
+ // then we need to use the default props
+ // we don't need to worry if only one side ( lhs, rhs ) is an
+ // object ( object side will get coerced to correct type in
+ // Compare )
+- else if ( p1Type == SbxOBJECT )
++ if ( p1Type == SbxOBJECT )
+ {
+ SbxVariable* pDflt = getDefaultProp( p1 );
+ if ( pDflt )
Added: trunk/patches/vba/stringnumbercompare.diff
==============================================================================
--- (empty file)
+++ trunk/patches/vba/stringnumbercompare.diff Wed Sep 3 14:21:13 2008
@@ -0,0 +1,34 @@
+diff --git basic/source/sbx/sbxvalue.cxx basic/source/sbx/sbxvalue.cxx
+index fb57038..dd5f9c1 100644
+--- basic/source/sbx/sbxvalue.cxx
++++ basic/source/sbx/sbxvalue.cxx
+@@ -1572,7 +1572,9 @@ BOOL SbxValue::Compare( SbxOperator eOp,
+ else
+ {
+ aL.eType = aR.eType = SbxDOUBLE;
+- if( Get( aL ) && rOp.Get( aR ) )
++ bool bGetL = Get( aL );
++ bool bGetR = rOp.Get( aR );
++ if( bGetL && bGetR )
+ switch( eOp )
+ {
+ case SbxEQ:
+@@ -1590,6 +1592,18 @@ BOOL SbxValue::Compare( SbxOperator eOp,
+ default:
+ SetError( SbxERR_NOTIMP );
+ }
++ // at least one value was got
++ // if this is VBA then a conversion error for one
++ // side will yield a false result of an equality test
++ else if ( bGetR || bGetL )
++ {
++ if ( bVBAInterop && eOp == SbxEQ && GetError() == SbxERR_CONVERSION )
++ {
++ ResetError();
++ bRes = FALSE;
++ }
++ }
++
+ }
+ }
+ if( eOld != SbxERR_OK )
Added: trunk/patches/vba/vba-intersect-multi-area.diff
==============================================================================
--- (empty file)
+++ trunk/patches/vba/vba-intersect-multi-area.diff Wed Sep 3 14:21:13 2008
@@ -0,0 +1,39 @@
+diff --git sc/source/ui/vba/vbarange.cxx sc/source/ui/vba/vbarange.cxx
+index 3b62d7b..c149923 100644
+--- sc/source/ui/vba/vbarange.cxx
++++ sc/source/ui/vba/vbarange.cxx
+@@ -5330,6 +5338,34 @@ 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;
++ }
++
+ try
+ {
+ uno::Reference< sheet::XCellRangesQuery > xQuery( mxRange, uno::UNO_QUERY_THROW );
Added: trunk/patches/vba/vba-rowheight-fix.diff
==============================================================================
--- (empty file)
+++ trunk/patches/vba/vba-rowheight-fix.diff Wed Sep 3 14:21:13 2008
@@ -0,0 +1,20 @@
+diff --git sc/source/ui/vba/vbarange.cxx sc/source/ui/vba/vbarange.cxx
+index 3b62d7b..c149923 100644
+--- sc/source/ui/vba/vbarange.cxx
++++ sc/source/ui/vba/vbarange.cxx
+@@ -3636,12 +3642,14 @@ ScVbaRange::getRowHeight() throw (uno::R
+ double nHeight = getCalcRowHeight( thisAddress );
+ // #TODO probably possible to use the SfxItemSet ( and see if
+ // SFX_ITEM_DONTCARE is set ) to improve performance
+- if ( mbIsRows )
++ // seems not just for Rows but ordinary RowHeights too
++// if ( mbIsRows )
+ {
+ for ( sal_Int32 nRow = nStartRow ; nRow <= nEndRow; ++nRow )
+ {
+ thisAddress.StartRow = nRow;
+ double nCurHeight = getCalcRowHeight( thisAddress );
++ OSL_TRACE("row %d nHeight %f nCurHeight %f", nRow, nHeight, nCurHeight );
+ if ( nHeight != nCurHeight )
+ return aNULL();
+ }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]