[ooo-build-commit] Branch 'ooo-build-3-1-1' - patches/dev300 patches/vba

Noel Power noelp at kemper.freedesktop.org
Wed Oct 28 03:14:45 PDT 2009


 patches/dev300/apply                             |    3 ++
 patches/vba/vba-control-api-vis-fix.diff         |   26 +++++++++++++++++
 patches/vba/vba-fix-isempty.diff                 |   34 +++++++++++++++++++++++
 patches/vba/vba-fix-wsfunction-booleanparam.diff |   22 ++++++++++++++
 4 files changed, 85 insertions(+)

New commits:
commit 9aa5f574ed3bb8a2bef16dbd1256ee5503b43fc8
Author: Noel Power <npower at linux-h0uc.site>
Date:   Wed Oct 28 10:02:41 2009 +0000

    add missing fixes for  bnc#542132, bnc#541749, bnc#541735
    
    * patches/dev300/apply:
    * patches/vba/vba-control-api-vis-fix.diff: fix for bnc#542132
    * patches/vba/vba-fix-isempty.diff: bnc#541749
    * patches/vba/vba-fix-wsfunction-booleanparam.diff: bnc#541735

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 156f26d..e05e745 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1885,6 +1885,9 @@ vba-financial-functions.diff, n#525633, n#525635, n#525642, n#525647,
 vba-typename-fix.diff, n#525649
 vba-reenable-rowsourcefixes.diff, n#540960
 vba-autofiltermode.diff, n#549383
+vba-control-api-vis-fix.diff, bnc#542132
+vba-fix-isempty.diff, bnc#541749 
+vba-fix-wsfunction-booleanparam.diff, bnc#54173
 [VBAUntested]
 SectionOwner => noelpwer
 # doesn't work
diff --git a/patches/vba/vba-control-api-vis-fix.diff b/patches/vba/vba-control-api-vis-fix.diff
new file mode 100644
index 0000000..d286725
--- /dev/null
+++ b/patches/vba/vba-control-api-vis-fix.diff
@@ -0,0 +1,26 @@
+diff --git vbahelper/source/msforms/vbacontrol.cxx vbahelper/source/msforms/vbacontrol.cxx
+index 0989548..f51cf56 100644
+--- vbahelper/source/msforms/vbacontrol.cxx
++++ vbahelper/source/msforms/vbacontrol.cxx
+@@ -189,14 +189,17 @@ void SAL_CALL ScVbaControl::setEnabled( sal_Bool bVisible ) throw (uno::RuntimeE
+ 
+ sal_Bool SAL_CALL ScVbaControl::getVisible() throw (uno::RuntimeException)
+ {
+-    uno::Reference< awt::XWindow2 > xWindow2( getWindowPeer(), uno::UNO_QUERY_THROW );
+-    return xWindow2->isVisible();
++    sal_Bool bVisible( sal_True );
++    m_xProps->getPropertyValue
++            (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EnableVisible" ) )) >>= bVisible;
++    return bVisible;
+ }
+ 
+ void SAL_CALL ScVbaControl::setVisible( sal_Bool bVisible ) throw (uno::RuntimeException)
+ {
+-    uno::Reference< awt::XWindow2 > xWindow2( getWindowPeer(), uno::UNO_QUERY_THROW );
+-    xWindow2->setVisible( bVisible );
++    uno::Any aValue( bVisible );
++    m_xProps->setPropertyValue
++            (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "EnableVisible" ) ), aValue);
+ }
+ double SAL_CALL ScVbaControl::getHeight() throw (uno::RuntimeException)
+ {
diff --git a/patches/vba/vba-fix-isempty.diff b/patches/vba/vba-fix-isempty.diff
new file mode 100644
index 0000000..4bf3aa2
--- /dev/null
+++ b/patches/vba/vba-fix-isempty.diff
@@ -0,0 +1,34 @@
+diff --git basic/source/classes/sbunoobj.cxx basic/source/classes/sbunoobj.cxx
+index b02dca2..6abb00c 100644
+--- basic/source/classes/sbunoobj.cxx
++++ basic/source/classes/sbunoobj.cxx
+@@ -139,16 +139,19 @@ bool SbUnoObject::getDefaultPropName( SbUnoObject* pUnoObj, String& sDfltProp )
+ SbxVariable* getDefaultProp( SbxVariable* pRef )
+ {
+ 	SbxVariable* pDefaultProp = NULL;
+-	SbxObject* pObj = PTR_CAST(SbxObject,(SbxVariable*) pRef);
+-	if ( !pObj )
++	if ( pRef->GetType() == SbxOBJECT )
+ 	{
+-		SbxBase* pObjVarObj = pRef->GetObject();
+-		pObj = PTR_CAST(SbxObject,pObjVarObj);
+-	}
+-	if ( pObj && pObj->ISA(SbUnoObject) )
+-	{
+-		SbUnoObject* pUnoObj = PTR_CAST(SbUnoObject,(SbxObject*)pObj);
+-		pDefaultProp = pUnoObj->GetDfltProperty();
++  		SbxObject* pObj = PTR_CAST(SbxObject,(SbxVariable*) pRef);
++		if ( !pObj )
++		{
++			SbxBase* pObjVarObj = pRef->GetObject();
++			pObj = PTR_CAST(SbxObject,pObjVarObj);
++		}
++		if ( pObj && pObj->ISA(SbUnoObject) )
++		{
++			SbUnoObject* pUnoObj = PTR_CAST(SbUnoObject,(SbxObject*)pObj);
++			pDefaultProp = pUnoObj->GetDfltProperty();
++		}
+ 	}
+ 	return pDefaultProp;
+ }
+
diff --git a/patches/vba/vba-fix-wsfunction-booleanparam.diff b/patches/vba/vba-fix-wsfunction-booleanparam.diff
new file mode 100644
index 0000000..7334744
--- /dev/null
+++ b/patches/vba/vba-fix-wsfunction-booleanparam.diff
@@ -0,0 +1,22 @@
+diff --git sc/source/ui/vba/vbawsfunction.cxx sc/source/ui/vba/vbawsfunction.cxx
+index d0e7ee3..ed3a749 100644
+--- sc/source/ui/vba/vbawsfunction.cxx
++++ sc/source/ui/vba/vbawsfunction.cxx
+@@ -81,6 +81,16 @@ ScVbaWSFunction::invoke(const rtl::OUString& FunctionName, const uno::Sequence<
+ 			aArrayTemp[i] = myRange->getCellRange();
+ 			continue;
+ 		}
++                else if (  aArray[ i ].getValueType().getTypeClass() == uno::TypeClass_BOOLEAN )
++		{
++			sal_Bool bValue( sal_False );
++			aArray[ i ] >>= bValue;
++			if ( bValue )
++				aArrayTemp[ i ] <<= double( 1.0 ); 
++			else
++				aArrayTemp[ i ] <<= double( 0.0 ); 
++                        
++		}
+         else if ( aArray[ i ].getValueType().getTypeClass() == uno::TypeClass_SEQUENCE )
+         {
+             // the sheet.FunctionAccess service doesn't deal with Sequences, only Sequences of Sequence
+


More information about the ooo-build-commit mailing list