diff options
author | Oliver Bolte <obo@openoffice.org> | 2007-01-25 10:40:04 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2007-01-25 10:40:04 +0000 |
commit | b618458f34613fcf0e5df7c52b4576e0747a0de3 (patch) | |
tree | 612da13b28537d355f4590910a1e1eb38855c5a8 /embedserv/source | |
parent | df442d05ffc9c0d1b355bac663b1a5a9ceb5634c (diff) |
INTEGRATION: CWS mbafixesfor22 (1.26.8); FILE MERGED
2007/01/18 13:06:01 mav 1.26.8.1: #i73611# handle the error cases correctly
Diffstat (limited to 'embedserv/source')
-rw-r--r-- | embedserv/source/embed/docholder.cxx | 55 |
1 files changed, 25 insertions, 30 deletions
diff --git a/embedserv/source/embed/docholder.cxx b/embedserv/source/embed/docholder.cxx index 7415f1e4959b..ec012c434218 100644 --- a/embedserv/source/embed/docholder.cxx +++ b/embedserv/source/embed/docholder.cxx @@ -4,9 +4,9 @@ * * $RCSfile: docholder.cxx,v $ * - * $Revision: 1.27 $ + * $Revision: 1.28 $ * - * last change: $Author: obo $ $Date: 2007-01-23 07:34:08 $ + * last change: $Author: obo $ $Date: 2007-01-25 11:40:04 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -710,32 +710,19 @@ void DocumentHolder::DisconnectFrameDocument() void DocumentHolder::CloseDocument() { - try - { - uno::Reference< util::XModifyBroadcaster > xModifiable( m_xDocument, uno::UNO_QUERY_THROW ); - xModifiable->removeModifyListener( (util::XModifyListener*)this ); - } - catch( uno::Exception& ) - {} - - uno::Reference< util::XCloseBroadcaster > xBroadcaster( - m_xDocument, uno::UNO_QUERY ); - if ( xBroadcaster.is() ) - { - xBroadcaster->removeCloseListener( (util::XCloseListener*)this ); + DisconnectFrameDocument(); - uno::Reference< util::XCloseable > xCloseable( - xBroadcaster, uno::UNO_QUERY ); + uno::Reference< util::XCloseable > xCloseable( + m_xDocument, uno::UNO_QUERY ); - if ( xCloseable.is() ) + if ( xCloseable.is() ) + { + try { - try - { - xCloseable->close( sal_True ); - } - catch( uno::Exception& ) - {} + xCloseable->close( sal_True ); } + catch( uno::Exception& ) + {} } m_pIDispatch = NULL; @@ -745,10 +732,14 @@ void DocumentHolder::CloseDocument() void DocumentHolder::CloseFrame() { - uno::Reference< util::XCloseBroadcaster > xBroadcaster( - m_xFrame, uno::UNO_QUERY ); - if ( xBroadcaster.is() ) + try + { + uno::Reference< util::XCloseBroadcaster > xBroadcaster( + m_xFrame, uno::UNO_QUERY_THROW ); xBroadcaster->removeCloseListener( (util::XCloseListener*)this ); + } + catch( uno::Exception& ) + {} uno::Reference<util::XCloseable> xCloseable( m_xFrame,uno::UNO_QUERY); @@ -1561,10 +1552,14 @@ void SAL_CALL DocumentHolder::notifyClosing( const lang::EventObject& aSource ) { - uno::Reference< util::XCloseBroadcaster > xEventBroadcaster( - aSource.Source, uno::UNO_QUERY ); - if ( xEventBroadcaster.is() ) + try + { + uno::Reference< util::XCloseBroadcaster > xEventBroadcaster( + aSource.Source, uno::UNO_QUERY_THROW ); xEventBroadcaster->removeCloseListener( (util::XCloseListener*)this ); + } + catch( uno::Exception& ) + {} if ( m_xDocument.is() && m_xDocument == aSource.Source ) { |