[ooo-build-commit] patches/dev300 patches/vba

Noel Power noelp at kemper.freedesktop.org
Mon Dec 14 07:11:24 PST 2009


 patches/dev300/apply                           |    3 
 patches/vba/vba-fireevents-from-apichange.diff |  343 +++++++++++++++++++++++++
 patches/vba/vba-fix-listboxhang-n560355.diff   |   45 +++
 3 files changed, 390 insertions(+), 1 deletion(-)

New commits:
commit 74dcfcfe8ca01b9f00cd3188fb6d3930ac22ff04
Author: Noel Power <noel.power at novell.com>
Date:   Mon Dec 14 14:59:27 2009 +0000

    fix n#560355 & n#561639 ( remove fix for n#539220 as its included in above )
    
    * patches/dev300/apply:
    * patches/vba/vba-fireevents-from-apichange.diff: fire change event for listindex and radiobutton value/state change
    * patches/vba/vba-fix-listboxhang-n560355.diff: remove hacky call to fire events event when listbox ( or radiiobutton ) value changed

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 9bb38d6..cde223c 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1593,7 +1593,6 @@ cws-vbasupportdev300.diff
 
 vba-basic-not-fix.diff, i#105321, Fong
 vba-autofiltermode.diff, n#549383
-vba-combobox-listindex-fix.diff, n#539220
 vba-fix-selection-dot-inproject.diff
 vba-fix-override-exportproblem.diff
 vba-thiscomponent-fix.diff
@@ -1609,7 +1608,9 @@ fix-vba-late-docevent-crash.diff, n#558907
 vba-import-and-use-localrangenames.diff
 # make sure no vba libraries are loaded ( if not filtering )
 vba-dont-load-for-odf.diff
+vba-fix-listboxhang-n560355.diff, n#560355
 
+vba-fireevents-from-apichange.diff, n#561639, n#539220
 [VBAUntested]
 SectionOwner => noelpwer
 # doesn't work
diff --git a/patches/vba/vba-fireevents-from-apichange.diff b/patches/vba/vba-fireevents-from-apichange.diff
new file mode 100644
index 0000000..71638a5
--- /dev/null
+++ b/patches/vba/vba-fireevents-from-apichange.diff
@@ -0,0 +1,343 @@
+diff --git basic/source/classes/sbxmod.cxx basic/source/classes/sbxmod.cxx
+index 684c009..3d5b120 100644
+--- basic/source/classes/sbxmod.cxx
++++ basic/source/classes/sbxmod.cxx
+@@ -2001,10 +2001,11 @@ void SbUserFormModule::InitObject()
+             m_xDialog = xProvider->createDialog( sDialogUrl );
+ 
+             // create vba api object
+-            aArgs.realloc( 3 );
++            aArgs.realloc( 4 );
+             aArgs[ 0 ] = uno::Any();
+             aArgs[ 1 ] <<= m_xDialog;
+             aArgs[ 2 ] <<= m_xModel;
++            aArgs[ 3 ] <<= rtl::OUString( GetName() );
+             pDocObject = new SbUnoObject( GetName(), uno::makeAny( xVBAFactory->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.msforms.UserForm")), aArgs  ) ) );
+             uno::Reference< lang::XComponent > xComponent( aArgs[ 1 ], uno::UNO_QUERY_THROW );
+             // remove old listener if it exists
+diff --git scripting/source/vbaevents/eventhelper.cxx scripting/source/vbaevents/eventhelper.cxx
+index 0f6b91c..317bc49 100644
+--- scripting/source/vbaevents/eventhelper.cxx
++++ scripting/source/vbaevents/eventhelper.cxx
+@@ -23,6 +23,8 @@
+ #include <com/sun/star/script/ScriptEventDescriptor.hpp>
+ #include <com/sun/star/script/provider/XScriptProviderSupplier.hpp>
+ 
++#include <com/sun/star/container/XNamed.hpp>
++
+ #include <com/sun/star/drawing/XControlShape.hpp>
+ 
+ #include <com/sun/star/awt/XControl.hpp>
+@@ -908,17 +910,31 @@ EventListener::firing_Impl(const ScriptEvent& evt, Any* pRet ) throw(RuntimeExce
+     evt.Arguments[ 0 ] >>= aEvent;
+ 	OSL_TRACE("evt.MethodName is  %s", rtl::OUStringToOString( evt.MethodName, RTL_TEXTENCODING_UTF8 ).getStr() );
+ 	OSL_TRACE("Argument[0] is  %s", rtl::OUStringToOString( comphelper::anyToString( evt.Arguments[0] ), RTL_TEXTENCODING_UTF8 ).getStr() );
+-	OSL_TRACE("Getting Control");
+-    uno::Reference< awt::XControl > xControl( aEvent.Source, uno::UNO_QUERY_THROW );
+-	OSL_TRACE("Getting properties");
+-    uno::Reference< beans::XPropertySet > xProps( xControl->getModel(), uno::UNO_QUERY_THROW );
+-
+     rtl::OUString sName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("UserForm") );
+ 	OSL_TRACE("Getting Name");
+ 
+     uno::Reference< awt::XDialog > xDlg( aEvent.Source, uno::UNO_QUERY );
+     if ( !xDlg.is() )
+-        xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Name") ) ) >>= sName;
++    {
++	OSL_TRACE("Getting Control");
++	uno::Reference< awt::XControl > xControl( aEvent.Source, uno::UNO_QUERY );
++	if ( xControl.is() )	      
++        {
++		uno::Reference< beans::XPropertySet > xProps;
++		OSL_TRACE("Getting properties");
++        	xProps.set( xControl->getModel(), uno::UNO_QUERY_THROW );
++        	xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Name") ) ) >>= sName;
++	}
++	else
++	{
++		uno::Reference< drawing::XControlShape >  xCntrlShape( aEvent.Source, UNO_QUERY_THROW );
++		OSL_TRACE("Got control shape");
++		uno::Reference< container::XNamed > xName( xCntrlShape->getControl(), uno::UNO_QUERY_THROW );
++		OSL_TRACE("Got xnamed ");
++		sName = xName->getName();
++	}
++
++    }
+     //dumpEvent( evt );
+     EventInfoHash& infos = getEventTransInfo();
+     EventInfoHash::const_iterator eventInfo_it = infos.find( evt.MethodName );
+diff --git vbahelper/source/msforms/vbacheckbox.cxx vbahelper/source/msforms/vbacheckbox.cxx
+index 3a6c5d9..3794a75 100644
+--- vbahelper/source/msforms/vbacheckbox.cxx
++++ vbahelper/source/msforms/vbacheckbox.cxx
+@@ -78,6 +78,8 @@ void SAL_CALL
+ ScVbaCheckbox::setValue( const uno::Any& _value ) throw (css::uno::RuntimeException)
+ {
+     sal_Int16 nValue = 0;
++    sal_Int16 nOldValue = 0;
++    m_xProps->getPropertyValue( STATE ) >>= nOldValue;
+     sal_Bool bValue = false;
+     if( _value >>= nValue )
+     {
+@@ -90,6 +92,8 @@ ScVbaCheckbox::setValue( const uno::Any& _value ) throw (css::uno::RuntimeExcept
+             nValue = 1;
+     }
+     m_xProps->setPropertyValue( STATE, uno::makeAny( nValue ) );
++    if ( nValue != nOldValue )
++        fireChangeEvent();
+ }
+ rtl::OUString& 
+ ScVbaCheckbox::getServiceImplName()
+diff --git vbahelper/source/msforms/vbacombobox.cxx vbahelper/source/msforms/vbacombobox.cxx
+index 7c27734..20f8f25 100644
+--- vbahelper/source/msforms/vbacombobox.cxx
++++ vbahelper/source/msforms/vbacombobox.cxx
+@@ -66,12 +66,16 @@ ScVbaComboBox::setListIndex( const uno::Any& _value ) throw (uno::RuntimeExcepti
+     sal_Int16 nIndex = 0;
+     if( _value >>= nIndex )
+     {
++        sal_Int32 nOldIndex = -1;
++        getListIndex() >>= nOldIndex;
+ 	    uno::Sequence< rtl::OUString > sItems;
+     	m_xProps->getPropertyValue( ITEMS ) >>= sItems;
+         if( ( nIndex >= 0 ) && ( sItems.getLength() > nIndex ) )
+         {
+             rtl::OUString sText = sItems[ nIndex ];
+             m_xProps->setPropertyValue( TEXT, uno::makeAny( sText ) );
++            if( nOldIndex != nIndex )
++                fireChangeEvent();
+         }
+     }
+ }
+@@ -106,7 +110,12 @@ ScVbaComboBox::getListIndex() throw (uno::RuntimeException)
+ void SAL_CALL 
+ ScVbaComboBox::setValue( const uno::Any& _value ) throw (uno::RuntimeException)
+ {
++	rtl::OUString sOldValue;
++	rtl::OUString sNewValue;
++	_value >>= sNewValue;
+ 	m_xProps->setPropertyValue( sSourceName, _value );
++	if ( sNewValue != sOldValue )
++            fireChangeEvent();       
+ }
+ 
+ // see Value
+diff --git vbahelper/source/msforms/vbacontrol.cxx vbahelper/source/msforms/vbacontrol.cxx
+index 284bf99..caf018d 100644
+--- vbahelper/source/msforms/vbacontrol.cxx
++++ vbahelper/source/msforms/vbacontrol.cxx
+@@ -42,6 +42,9 @@
+ #include <com/sun/star/form/binding/XListEntrySink.hpp>
+ #include <com/sun/star/table/CellAddress.hpp>
+ #include <com/sun/star/table/CellRangeAddress.hpp>
++#include <com/sun/star/script/XScriptListener.hpp>
++#include <com/sun/star/document/XCodeNameQuery.hpp>
++#include <com/sun/star/form/XChangeListener.hpp>
+ #include <ooo/vba/XControlProvider.hpp>
+ #ifdef VBA_OOBUILD_HACK
+ #include <svtools/bindablecontrolhelper.hxx>
+@@ -383,6 +386,62 @@ void SAL_CALL ScVbaControl::setForeColor( ::sal_Int32 _forecolor ) throw (::com:
+ {	
+ 	 m_xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TextColor" ) ), uno::makeAny( XLRGBToOORGB( _forecolor ) ) );
+ }
++
++void ScVbaControl::fireEvent( script::ScriptEvent& evt )
++{
++    uno::Reference<lang::XMultiComponentFactory > xServiceManager( mxContext->getServiceManager(), uno::UNO_QUERY_THROW );
++    uno::Reference< script::XScriptListener > xScriptListener( xServiceManager->createInstanceWithContext( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.EventListener" ) ), mxContext ), uno::UNO_QUERY_THROW );
++
++    uno::Reference< beans::XPropertySet > xProps( xScriptListener, uno::UNO_QUERY_THROW );
++    xProps->setPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Model" ) ), uno::makeAny( m_xModel ) );
++
++    // handling for sheet control
++    uno::Reference< drawing::XControlShape > xControlShape( m_xControl, uno::UNO_QUERY ) ;
++    uno::Reference< msforms::XControl > xControl( this );
++    evt.Source = xControl;
++    try
++    {
++        if ( xControlShape.is() )
++        {
++            // Set up proper scriptcode
++            uno::Reference< lang::XMultiServiceFactory > xDocFac(  m_xModel, uno::UNO_QUERY_THROW );
++            uno::Reference< document::XCodeNameQuery > xNameQuery(  xDocFac->createInstance( rtl::OUString::createFromAscii( "ooo.vba.VBACodeNameProvider" ) ), uno::UNO_QUERY_THROW );
++            uno::Reference< uno::XInterface > xIf( xControlShape->getControl(), uno::UNO_QUERY_THROW );
++            evt.ScriptCode = xNameQuery->getCodeNameForObject( xIf );
++            xScriptListener->firing( evt );
++        }
++        else 
++        {
++            uno::Reference< awt::XControl > xControl( m_xControl, uno::UNO_QUERY_THROW );
++            if ( xControl.is() ) // normal control ( from dialog/userform )
++            {
++                uno::Reference< beans::XPropertySet > xProps( xControl, uno::UNO_QUERY_THROW );
++                rtl::OUString sCodeName;
++                xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Name") ) ) >>= sCodeName;
++                evt.ScriptCode = m_sLibraryName.concat( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "." ) ) ).concat( sCodeName ); 
++                xScriptListener->firing( evt );
++            }
++        }
++    }
++    catch( uno::Exception& e )
++    {
++    }
++}
++void ScVbaControl::fireChangeEvent()
++{
++    script::ScriptEvent evt;
++    evt.ScriptType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("VBAInterop") );
++    evt.ListenerType = form::XChangeListener::static_type(0);
++    evt.MethodName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("changed") );
++    evt.Arguments.realloc( 1 );
++    lang::EventObject aEvt;
++    
++    uno::Reference< drawing::XControlShape > xControlShape( m_xControl, uno::UNO_QUERY ) ;
++    if ( xControlShape.is() )
++        aEvt.Source = xControlShape;
++    evt.Arguments[ 0 ] = uno::makeAny( aEvt );
++    fireEvent( evt ); 
++}
+ //ScVbaControlFactory
+ 
+ ScVbaControlFactory::ScVbaControlFactory( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, const uno::Reference< frame::XModel >& xModel ): m_xContext( xContext ), m_xControl( xControl ), m_xModel( xModel )
+diff --git vbahelper/source/msforms/vbacontrol.hxx vbahelper/source/msforms/vbacontrol.hxx
+index 3d7f67f..f734725 100644
+--- vbahelper/source/msforms/vbacontrol.hxx
++++ vbahelper/source/msforms/vbacontrol.hxx
+@@ -37,6 +37,7 @@
+ #include <com/sun/star/drawing/XControlShape.hpp>
+ #include <com/sun/star/awt/XControl.hpp>
+ #include <com/sun/star/awt/XWindowPeer.hpp>
++#include <com/sun/star/script/ScriptEvent.hpp>
+ #include <ooo/vba/msforms/XControl.hpp>
+ 
+ #include <vbahelper/vbahelper.hxx>
+@@ -51,12 +52,15 @@ class ScVbaControl : public ControlImpl_BASE
+ private:
+     com::sun::star::uno::Reference< com::sun::star::lang::XEventListener > m_xEventListener;
+ protected:
++    rtl::OUString m_sLibraryName;
+     std::auto_ptr< ov::AbstractGeometryAttributes > mpGeometryHelper;
+     css::uno::Reference< css::beans::XPropertySet > m_xProps;
+     css::uno::Reference< css::uno::XInterface > m_xControl;
+     css::uno::Reference< css::frame::XModel > m_xModel;
+ 
+     virtual css::uno::Reference< css::awt::XWindowPeer > getWindowPeer() throw (css::uno::RuntimeException);
++    void fireChangeEvent();
++    void fireEvent( css::script::ScriptEvent& evt );
+ public:
+     ScVbaControl( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, 
+                     const css::uno::Reference< css::uno::XInterface >& xControl, const css::uno::Reference< css::frame::XModel >& xModel, ov::AbstractGeometryAttributes* pHelper );
+@@ -64,6 +68,10 @@ public:
+     // This class will own the helper, so make sure it is allocated from 
+     // the heap
+     void setGeometryHelper( ov::AbstractGeometryAttributes* pHelper );
++    // sets the name of the associated library ( used for UserForm controls )
++    void setLibraryName( const rtl::OUString& sLibName ) { m_sLibraryName = sLibName; }
++    rtl::OUString getLibraryName() { return m_sLibraryName; }
++
+     // XControl
+     virtual sal_Bool SAL_CALL getEnabled() throw (css::uno::RuntimeException);
+     virtual void SAL_CALL setEnabled( sal_Bool _enabled ) throw (css::uno::RuntimeException);
+diff --git vbahelper/source/msforms/vbalistbox.cxx vbahelper/source/msforms/vbalistbox.cxx
+index 175328f..06d4b26 100644
+--- vbahelper/source/msforms/vbalistbox.cxx
++++ vbahelper/source/msforms/vbalistbox.cxx
+@@ -53,8 +53,12 @@ ScVbaListBox::setListIndex( const uno::Any& _value ) throw (uno::RuntimeExceptio
+ {
+     sal_Int32 nIndex = 0;
+     _value >>= nIndex;
++    sal_Int32 nOldIndex = 0;
++    getListIndex() >>= nOldIndex;
+     uno::Reference< XPropValue > xPropVal( Selected( nIndex ), uno::UNO_QUERY_THROW );
+     xPropVal->setValue( uno::makeAny( sal_True ) ); 
++    if ( nIndex != nOldIndex )
++        fireChangeEvent();
+ }
+ 
+ uno::Any SAL_CALL 
+@@ -111,8 +115,12 @@ ScVbaListBox::setValue( const uno::Any& _value ) throw (uno::RuntimeException)
+                     "Attribute use invalid." ), uno::Reference< uno::XInterface >() );
+ 
+     uno::Sequence< sal_Int16 > nSelectedIndices(1);
++    uno::Sequence< sal_Int16 > nOldSelectedIndices;
++    m_xProps->getPropertyValue( SELECTEDITEMS ) >>= nOldSelectedIndices;
+     nSelectedIndices[ 0 ] = nValue;
+     m_xProps->setPropertyValue( SELECTEDITEMS, uno::makeAny( nSelectedIndices ) ); 
++    if ( nSelectedIndices != nOldSelectedIndices )
++       fireChangeEvent(); 
+ 	//m_xProps->setPropertyValue( TEXT, uno::makeAny( sValue ) );   //liuchen 2009-8-12 solve the problem that ListBox.Text and ListBox.Value cannot be set
+ }
+ 
+@@ -210,6 +218,7 @@ ScVbaListBox::setValueEvent( const uno::Any& value )
+                 }
+                 nList.realloc( nLength - 1 );
+                 //m_xProps->setPropertyValue( sSourceName, uno::makeAny( nList ) );
++                fireChangeEvent();
+ 		m_xProps->setPropertyValue( SELECTEDITEMS, uno::makeAny( nList ) );
+                 return;
+             }
+@@ -228,6 +237,7 @@ ScVbaListBox::setValueEvent( const uno::Any& value )
+             nList[0] = nIndex;
+         }
+         //m_xProps->setPropertyValue( sSourceName, uno::makeAny( nList ) );
++        fireChangeEvent();
+         m_xProps->setPropertyValue( SELECTEDITEMS, uno::makeAny( nList ) );
+     }
+ }
+diff --git vbahelper/source/msforms/vbaradiobutton.cxx vbahelper/source/msforms/vbaradiobutton.cxx
+index 5aa9d20..735081f 100644
+--- vbahelper/source/msforms/vbaradiobutton.cxx
++++ vbahelper/source/msforms/vbaradiobutton.cxx
+@@ -73,7 +73,9 @@ void SAL_CALL
+ ScVbaRadioButton::setValue( const uno::Any& _value ) throw (uno::RuntimeException)
+ {
+     sal_Int16 nValue = 0;
++    sal_Int16 nOldValue = 0;
+     sal_Bool bValue = sal_False;
++    getValue() >>= nOldValue;
+     if( _value >>= nValue )
+     {
+         if( nValue == -1)
+@@ -85,6 +87,8 @@ ScVbaRadioButton::setValue( const uno::Any& _value ) throw (uno::RuntimeExceptio
+             nValue = 1;
+     }
+     m_xProps->setPropertyValue( STATE, uno::makeAny( nValue ) );
++    if ( nValue != nOldValue )
++        fireChangeEvent();
+ }
+ 
+ rtl::OUString& 
+diff --git vbahelper/source/msforms/vbauserform.cxx vbahelper/source/msforms/vbauserform.cxx
+index fef36db..d2e5ab6 100644
+--- vbahelper/source/msforms/vbauserform.cxx
++++ vbahelper/source/msforms/vbauserform.cxx
+@@ -61,6 +61,8 @@ ScVbaUserForm::ScVbaUserForm( uno::Sequence< uno::Any > const& aArgs, uno::Refer
+     uno::Reference< awt::XControl > xControl( m_xDialog, uno::UNO_QUERY_THROW );
+     m_xProps.set( xControl->getModel(), uno::UNO_QUERY_THROW );
+     setGeometryHelper( new UserFormGeometryHelper( xContext, xControl ) );
++    if ( aArgs.getLength() >= 4 )
++        aArgs[ 3 ] >>= m_sLibName;
+ }
+ 
+ ScVbaUserForm::~ScVbaUserForm()
+@@ -182,6 +184,8 @@ ScVbaUserForm::getValue( const ::rtl::OUString& aPropertyName ) throw (beans::Un
+         uno::Reference< msforms::XControl > xVBAControl( aFac.createControl( xDialogControl->getModel() ) );
+         ScVbaControl* pControl  = dynamic_cast< ScVbaControl* >( xVBAControl.get() );
+         pControl->setGeometryHelper( new UserFormGeometryHelper( mxContext, xControl ) );
++        if ( m_sLibName.getLength() )
++            pControl->setLibraryName( m_sLibName );
+ 	return uno::makeAny( xVBAControl );
+ }
+ 
+diff --git vbahelper/source/msforms/vbauserform.hxx vbahelper/source/msforms/vbauserform.hxx
+index be93dc7..9ad194d 100644
+--- vbahelper/source/msforms/vbauserform.hxx
++++ vbahelper/source/msforms/vbauserform.hxx
+@@ -51,6 +51,7 @@ class ScVbaUserForm : public ScVbaUserForm_BASE
+ private:
+     css::uno::Reference< css::awt::XDialog > m_xDialog;
+     bool mbDispose;
++    rtl::OUString m_sLibName;
+ protected:
+ public:
+     ScVbaUserForm( css::uno::Sequence< css::uno::Any > const& aArgs, css::uno::Reference< css::uno::XComponentContext >const& xContext ) throw ( css::lang::IllegalArgumentException );
diff --git a/patches/vba/vba-fix-listboxhang-n560355.diff b/patches/vba/vba-fix-listboxhang-n560355.diff
new file mode 100644
index 0000000..3540ee1
--- /dev/null
+++ b/patches/vba/vba-fix-listboxhang-n560355.diff
@@ -0,0 +1,45 @@
+diff --git toolkit/source/awt/vclxwindows.cxx toolkit/source/awt/vclxwindows.cxx
+index dc32c06..7b2f801 100644
+--- toolkit/source/awt/vclxwindows.cxx
++++ toolkit/source/awt/vclxwindows.cxx
+@@ -1181,16 +1181,6 @@ void VCLXRadioButton::setProperty( const ::rtl::OUString& PropertyName, const ::
+                         pButton->Check( b );
+                     else
+                         pButton->SetState( b );
+-					// If VBA - need to be able to test
+-					// simulate click event
+-					if ( maActionListeners.getLength() )
+-					{
+-						::com::sun::star::awt::ActionEvent aEvent;
+-						aEvent.Source = (::cppu::OWeakObject*)this;
+-						aEvent.ActionCommand = maActionCommand;
+-						maActionListeners.actionPerformed( aEvent );
+-					}
+-					
+                 }
+             }
+             break;
+@@ -1953,11 +1943,8 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const ::com:
+                 ::com::sun::star::uno::Sequence< ::rtl::OUString> aItems;
+                 if ( Value >>= aItems )
+                 {
+-					sal_Int16 nElem  = pListBox->GetEntryCount();
+                     pListBox->Clear();
+                     addItems( aItems, 0 );
+-					if ( aItems.getLength() == 0 && nElem && maItemListeners.getLength() )
+-						ImplCallItemListeners();
+                 }
+             }
+             break;
+@@ -1970,11 +1957,7 @@ void VCLXListBox::setProperty( const ::rtl::OUString& PropertyName, const ::com:
+                         pListBox->SelectEntryPos( --n, sal_False );
+ 
+                     if ( aItems.getLength() )
+-                    {			
+                         selectItemsPos( aItems, sal_True );
+-                       if ( maItemListeners.getLength() )
+-                           ImplCallItemListeners();
+-                    }
+                     else
+                         pListBox->SetNoSelection();
+ 


More information about the ooo-build-commit mailing list