diff options
Diffstat (limited to 'patches/vba/vba-combobox-listindex-fix.diff')
-rw-r--r-- | patches/vba/vba-combobox-listindex-fix.diff | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/patches/vba/vba-combobox-listindex-fix.diff b/patches/vba/vba-combobox-listindex-fix.diff deleted file mode 100644 index f8270a7cd..000000000 --- a/patches/vba/vba-combobox-listindex-fix.diff +++ /dev/null @@ -1,68 +0,0 @@ -diff --git vbahelper/source/msforms/vbacombobox.cxx vbahelper/source/msforms/vbacombobox.cxx -index 7c27734..c4146f7 100644 ---- vbahelper/source/msforms/vbacombobox.cxx -+++ vbahelper/source/msforms/vbacombobox.cxx -@@ -29,6 +29,9 @@ - ************************************************************************/ - #include "vbacombobox.hxx" - #include <vector> -+#include <svx/msvbahelper.hxx> -+#include <basic/sbstar.hxx> -+#include <basic/sbmod.hxx> - - using namespace com::sun::star; - using namespace ooo::vba; -@@ -66,12 +69,41 @@ 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 ) ); -+ -+ // fire the _Change event -+ if( nOldIndex != nIndex ) -+ { -+ rtl::OUString sControlName = getName(); -+ // get active module -+ SbModule* pModule = StarBASIC::GetActiveModule(); -+ StarBASIC* pLib = pModule ? dynamic_cast< StarBASIC* >( pModule->GetParent() ) : NULL; -+ if( pModule && pLib ) -+ { -+ rtl::OUString sMacroName = pModule->GetParent()->GetName(); -+ rtl::OUString sModuleName = pModule->GetName(); -+ sMacroName = sMacroName.concat( rtl::OUString::createFromAscii(".") ).concat( sModuleName ).concat( rtl::OUString::createFromAscii(".") ).concat( sControlName ).concat( rtl::OUString::createFromAscii("_Change") ); -+ OSL_TRACE("ScVbaComboBox::setListIndex, fire the event %s", -+ rtl::OUStringToOString( sMacroName, RTL_TEXTENCODING_UTF8 ).getStr() ); -+ //static const rtl::OUString sThisComponent( RTL_CONSTASCII_USTRINGPARAM("ThisComponent" ) ); -+ //uno::Reference< frame::XModel > xModel = getCurrentDoc( sThisComponent ); -+ VBAMacroResolvedInfo aMacroInfo = resolveVBAMacro( getSfxObjShell( m_xModel ), sMacroName ); -+ if( aMacroInfo.IsResolved() ) -+ { -+ uno::Sequence< uno::Any > aArgs; -+ uno::Any aRet; -+ uno::Any aDummyCaller; -+ executeMacro( aMacroInfo.MacroDocContext(), aMacroInfo.ResolvedMacro(), aArgs, aRet, aDummyCaller ); -+ } -+ } -+ } - } - } - } -diff --git vbahelper/util/makefile.mk vbahelper/util/makefile.mk -index 796af0a..9180676 100644 ---- vbahelper/util/makefile.mk -+++ vbahelper/util/makefile.mk -@@ -95,6 +95,7 @@ SHL2STDLIBS= \ - $(VCLLIB) \ - $(TKLIB) \ - $(BASICLIB) \ -+ $(SVXMSFILTERLIB) \ - - SHL2DEPN=$(SHL1TARGETN) - SHL2LIBS=$(SLB)$/$(TARGET_MSFORMS).lib |