diff options
Diffstat (limited to 'sc/source/ui/docshell/docsh.cxx')
-rw-r--r-- | sc/source/ui/docshell/docsh.cxx | 65 |
1 files changed, 7 insertions, 58 deletions
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx index 4d989158952b..fc854e63ecbb 100644 --- a/sc/source/ui/docshell/docsh.cxx +++ b/sc/source/ui/docshell/docsh.cxx @@ -499,74 +499,23 @@ sal_Bool __EXPORT ScDocShell::Load( SfxMedium& rMedium ) void __EXPORT ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint ) { - uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents = aDocument.GetVbaEventProcessor(); - if ( xVbaEvents.is() ) try + if (rHint.ISA(ScTablesHint) ) { - using namespace ::com::sun::star::script::vba::VBAEventId; - if (rHint.ISA(ScTablesHint) ) + const ScTablesHint& rScHint = static_cast< const ScTablesHint& >( rHint ); + if (rScHint.GetId() == SC_TAB_INSERTED) { - const ScTablesHint& rScHint = static_cast< const ScTablesHint& >( rHint ); - if (rScHint.GetId() == SC_TAB_INSERTED) + uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents = aDocument.GetVbaEventProcessor(); + if ( xVbaEvents.is() ) try { uno::Sequence< uno::Any > aArgs( 1 ); aArgs[0] <<= rScHint.GetTab1(); - xVbaEvents->processVbaEvent( WORKBOOK_NEWSHEET, aArgs ); + xVbaEvents->processVbaEvent( script::vba::VBAEventId::WORKBOOK_NEWSHEET, aArgs ); } - } - else if ( rHint.ISA( SfxEventHint ) ) - { - sal_uLong nEventId = static_cast< const SfxEventHint& >( rHint ).GetEventId(); - switch ( nEventId ) + catch( uno::Exception& ) { - case SFX_EVENT_ACTIVATEDOC: - { - uno::Sequence< uno::Any > aArgs; - xVbaEvents->processVbaEvent( WORKBOOK_ACTIVATE, aArgs ); - } - break; - case SFX_EVENT_DEACTIVATEDOC: - { - uno::Sequence< uno::Any > aArgs; - xVbaEvents->processVbaEvent( WORKBOOK_DEACTIVATE, aArgs ); - } - break; - case SFX_EVENT_OPENDOC: - { - uno::Sequence< uno::Any > aArgs; - xVbaEvents->processVbaEvent( WORKBOOK_OPEN, aArgs ); - } - break; - case SFX_EVENT_SAVEDOCDONE: - case SFX_EVENT_SAVEASDOCDONE: - case SFX_EVENT_SAVETODOCDONE: - { - uno::Sequence< uno::Any > aArgs( 1 ); - aArgs[ 0 ] <<= true; - xVbaEvents->processVbaEvent( WORKBOOK_AFTERSAVE, aArgs ); - } - break; - case SFX_EVENT_SAVEASDOCFAILED: - case SFX_EVENT_SAVEDOCFAILED: - case SFX_EVENT_SAVETODOCFAILED: - { - uno::Sequence< uno::Any > aArgs( 1 ); - aArgs[ 0 ] <<= false; - xVbaEvents->processVbaEvent( WORKBOOK_AFTERSAVE, aArgs ); - } - break; - case SFX_EVENT_CLOSEDOC: - { - // #163655# prevent event processing after model is disposed - aDocument.SetVbaEventProcessor( uno::Reference< script::vba::XVBAEventProcessor >() ); - uno::Reference< lang::XEventListener >( xVbaEvents, uno::UNO_QUERY_THROW )->disposing( lang::EventObject() ); - } - break; } } } - catch( uno::Exception& ) - { - } if (rHint.ISA(SfxSimpleHint)) // ohne Parameter { |