Kaydet (Commit) 4f5b22b9 authored tarafından Noel Grandin's avatar Noel Grandin

use rtl::Reference in OCommonEmbeddedObject

instead of manual acquire/release

Change-Id: Ie641f72687a05e1cd3cf697d551f9c6d21ac4487
üst db0f4ecd
...@@ -83,7 +83,7 @@ sal_Int32 OCommonEmbeddedObject::ConvertVerbToState_Impl( sal_Int32 nVerb ) ...@@ -83,7 +83,7 @@ sal_Int32 OCommonEmbeddedObject::ConvertVerbToState_Impl( sal_Int32 nVerb )
void OCommonEmbeddedObject::Deactivate() void OCommonEmbeddedObject::Deactivate()
{ {
uno::Reference< util::XModifiable > xModif( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference< util::XModifiable > xModif( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
// no need to lock for the initialization // no need to lock for the initialization
uno::Reference< embed::XEmbeddedClient > xClientSite = m_xClientSite; uno::Reference< embed::XEmbeddedClient > xClientSite = m_xClientSite;
...@@ -108,7 +108,7 @@ void OCommonEmbeddedObject::Deactivate() ...@@ -108,7 +108,7 @@ void OCommonEmbeddedObject::Deactivate()
} }
} }
m_pDocHolder->CloseFrame(); m_xDocHolder->CloseFrame();
xClientSite->visibilityChanged( false ); xClientSite->visibilityChanged( false );
} }
...@@ -166,7 +166,7 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState ) ...@@ -166,7 +166,7 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
if ( m_bIsLink ) if ( m_bIsLink )
{ {
m_pDocHolder->SetComponent( LoadLink_Impl(), m_bReadOnly ); m_xDocHolder->SetComponent( LoadLink_Impl(), m_bReadOnly );
} }
else else
{ {
...@@ -179,7 +179,7 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState ) ...@@ -179,7 +179,7 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
if ( !m_xObjectStorage.is() ) if ( !m_xObjectStorage.is() )
throw io::IOException(); //TODO: access denied throw io::IOException(); //TODO: access denied
m_pDocHolder->SetComponent( LoadDocumentFromStorage_Impl(), m_bReadOnly ); m_xDocHolder->SetComponent( LoadDocumentFromStorage_Impl(), m_bReadOnly );
} }
else else
{ {
...@@ -194,11 +194,11 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState ) ...@@ -194,11 +194,11 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
if ( xChild.is() ) if ( xChild.is() )
xChild->setParent( m_xParent ); xChild->setParent( m_xParent );
m_pDocHolder->SetComponent( xDocument, m_bReadOnly ); m_xDocHolder->SetComponent( xDocument, m_bReadOnly );
} }
} }
if ( !m_pDocHolder->GetComponent().is() ) if ( !m_xDocHolder->GetComponent().is() )
throw embed::UnreachableStateException(); //TODO: can't open document throw embed::UnreachableStateException(); //TODO: can't open document
m_nObjectState = nNextState; m_nObjectState = nNextState;
...@@ -213,11 +213,11 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState ) ...@@ -213,11 +213,11 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
{ {
if ( nNextState == embed::EmbedStates::LOADED ) if ( nNextState == embed::EmbedStates::LOADED )
{ {
m_nClonedMapUnit = m_pDocHolder->GetMapUnit( embed::Aspects::MSOLE_CONTENT ); m_nClonedMapUnit = m_xDocHolder->GetMapUnit( embed::Aspects::MSOLE_CONTENT );
m_bHasClonedSize = m_pDocHolder->GetExtent( embed::Aspects::MSOLE_CONTENT, &m_aClonedSize ); m_bHasClonedSize = m_xDocHolder->GetExtent( embed::Aspects::MSOLE_CONTENT, &m_aClonedSize );
// actually frame should not exist at this point // actually frame should not exist at this point
m_pDocHolder->CloseDocument( false, false ); m_xDocHolder->CloseDocument( false, false );
m_nObjectState = nNextState; m_nObjectState = nNextState;
} }
...@@ -250,7 +250,7 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState ) ...@@ -250,7 +250,7 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
// dispatch provider may not be provided // dispatch provider may not be provided
uno::Reference< frame::XDispatchProvider > xContainerDP = xInplaceClient->getInplaceDispatchProvider(); uno::Reference< frame::XDispatchProvider > xContainerDP = xInplaceClient->getInplaceDispatchProvider();
bool bOk = m_pDocHolder->ShowInplace( xClientWindowPeer, aRectangleToShow, xContainerDP ); bool bOk = m_xDocHolder->ShowInplace( xClientWindowPeer, aRectangleToShow, xContainerDP );
m_nObjectState = nNextState; m_nObjectState = nNextState;
if ( !bOk ) if ( !bOk )
{ {
...@@ -267,7 +267,7 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState ) ...@@ -267,7 +267,7 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
throw embed::WrongStateException(); //TODO: client site is not set! throw embed::WrongStateException(); //TODO: client site is not set!
// create frame and load document in the frame // create frame and load document in the frame
m_pDocHolder->Show(); m_xDocHolder->Show();
m_xClientSite->visibilityChanged( true ); m_xClientSite->visibilityChanged( true );
m_nObjectState = nNextState; m_nObjectState = nNextState;
...@@ -324,13 +324,13 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState ) ...@@ -324,13 +324,13 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
// the container. Locking the LM will prevent flicker. // the container. Locking the LM will prevent flicker.
xContainerLM->lock(); xContainerLM->lock();
xInplaceClient->activatingUI(); xInplaceClient->activatingUI();
bool bOk = m_pDocHolder->ShowUI( xContainerLM, xContainerDP, aModuleName ); bool bOk = m_xDocHolder->ShowUI( xContainerLM, xContainerDP, aModuleName );
xContainerLM->unlock(); xContainerLM->unlock();
if ( bOk ) if ( bOk )
{ {
m_nObjectState = nNextState; m_nObjectState = nNextState;
m_pDocHolder->ResizeHatchWindow(); m_xDocHolder->ResizeHatchWindow();
} }
else else
{ {
...@@ -371,12 +371,12 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState ) ...@@ -371,12 +371,12 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
bool bOk = false; bool bOk = false;
if ( xContainerLM.is() ) if ( xContainerLM.is() )
bOk = m_pDocHolder->HideUI( xContainerLM ); bOk = m_xDocHolder->HideUI( xContainerLM );
if ( bOk ) if ( bOk )
{ {
m_nObjectState = nNextState; m_nObjectState = nNextState;
m_pDocHolder->ResizeHatchWindow(); m_xDocHolder->ResizeHatchWindow();
xInplaceClient->deactivatedUI(); xInplaceClient->deactivatedUI();
} }
else else
...@@ -449,7 +449,7 @@ void SAL_CALL OCommonEmbeddedObject::changeState( sal_Int32 nNewState ) ...@@ -449,7 +449,7 @@ void SAL_CALL OCommonEmbeddedObject::changeState( sal_Int32 nNewState )
{ {
// if active object is activated again, bring its window to top // if active object is activated again, bring its window to top
if ( m_nObjectState == embed::EmbedStates::ACTIVE ) if ( m_nObjectState == embed::EmbedStates::ACTIVE )
m_pDocHolder->Show(); m_xDocHolder->Show();
return; return;
} }
...@@ -681,7 +681,7 @@ void SAL_CALL OCommonEmbeddedObject::setParent( const css::uno::Reference< css:: ...@@ -681,7 +681,7 @@ void SAL_CALL OCommonEmbeddedObject::setParent( const css::uno::Reference< css::
m_xParent = xParent; m_xParent = xParent;
if ( m_nObjectState != -1 && m_nObjectState != embed::EmbedStates::LOADED ) if ( m_nObjectState != -1 && m_nObjectState != embed::EmbedStates::LOADED )
{ {
uno::Reference < container::XChild > xChild( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference < container::XChild > xChild( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if ( xChild.is() ) if ( xChild.is() )
xChild->setParent( xParent ); xChild->setParent( xParent );
} }
......
...@@ -55,7 +55,7 @@ void SAL_CALL OCommonEmbeddedObject::setObjectRectangles( const awt::Rectangle& ...@@ -55,7 +55,7 @@ void SAL_CALL OCommonEmbeddedObject::setObjectRectangles( const awt::Rectangle&
// the clip rectangle changes view only in case interception is also changed // the clip rectangle changes view only in case interception is also changed
if ( !RectanglesEqual( m_aOwnRectangle, aPosRect ) if ( !RectanglesEqual( m_aOwnRectangle, aPosRect )
|| ( !RectanglesEqual( m_aClipRectangle, aPosRect ) && !RectanglesEqual( aOldRectToShow, aNewRectToShow ) ) ) || ( !RectanglesEqual( m_aClipRectangle, aPosRect ) && !RectanglesEqual( aOldRectToShow, aNewRectToShow ) ) )
m_pDocHolder->PlaceFrame( aNewRectToShow ); m_xDocHolder->PlaceFrame( aNewRectToShow );
m_aOwnRectangle = aPosRect; m_aOwnRectangle = aPosRect;
m_aClipRectangle = aClipRect; m_aClipRectangle = aClipRect;
......
...@@ -43,8 +43,7 @@ using namespace ::com::sun::star; ...@@ -43,8 +43,7 @@ using namespace ::com::sun::star;
OCommonEmbeddedObject::OCommonEmbeddedObject( const uno::Reference< uno::XComponentContext >& rxContext, OCommonEmbeddedObject::OCommonEmbeddedObject( const uno::Reference< uno::XComponentContext >& rxContext,
const uno::Sequence< beans::NamedValue >& aObjProps ) const uno::Sequence< beans::NamedValue >& aObjProps )
: m_pDocHolder( nullptr ) : m_pInterfaceContainer( nullptr )
, m_pInterfaceContainer( nullptr )
, m_bReadOnly( false ) , m_bReadOnly( false )
, m_bDisposed( false ) , m_bDisposed( false )
, m_bClosed( false ) , m_bClosed( false )
...@@ -70,8 +69,7 @@ OCommonEmbeddedObject::OCommonEmbeddedObject( ...@@ -70,8 +69,7 @@ OCommonEmbeddedObject::OCommonEmbeddedObject(
const uno::Sequence< beans::NamedValue >& aObjProps, const uno::Sequence< beans::NamedValue >& aObjProps,
const uno::Sequence< beans::PropertyValue >& aMediaDescr, const uno::Sequence< beans::PropertyValue >& aMediaDescr,
const uno::Sequence< beans::PropertyValue >& aObjectDescr ) const uno::Sequence< beans::PropertyValue >& aObjectDescr )
: m_pDocHolder( nullptr ) : m_pInterfaceContainer( nullptr )
, m_pInterfaceContainer( nullptr )
, m_bReadOnly( false ) , m_bReadOnly( false )
, m_bDisposed( false ) , m_bDisposed( false )
, m_bClosed( false ) , m_bClosed( false )
...@@ -99,8 +97,7 @@ void OCommonEmbeddedObject::CommonInit_Impl( const uno::Sequence< beans::NamedVa ...@@ -99,8 +97,7 @@ void OCommonEmbeddedObject::CommonInit_Impl( const uno::Sequence< beans::NamedVa
if ( !m_xContext.is() ) if ( !m_xContext.is() )
throw uno::RuntimeException(); throw uno::RuntimeException();
m_pDocHolder = new DocumentHolder( m_xContext, this ); m_xDocHolder = new DocumentHolder( m_xContext, this );
m_pDocHolder->acquire();
// parse configuration entries // parse configuration entries
// TODO/LATER: in future UI names can be also provided here // TODO/LATER: in future UI names can be also provided here
...@@ -256,13 +253,13 @@ void OCommonEmbeddedObject::LinkInit_Impl( ...@@ -256,13 +253,13 @@ void OCommonEmbeddedObject::LinkInit_Impl(
CommonInit_Impl( aObjectProps ); CommonInit_Impl( aObjectProps );
if ( xDispatchInterceptor.is() ) if ( xDispatchInterceptor.is() )
m_pDocHolder->SetOutplaceDispatchInterceptor( xDispatchInterceptor ); m_xDocHolder->SetOutplaceDispatchInterceptor( xDispatchInterceptor );
} }
OCommonEmbeddedObject::~OCommonEmbeddedObject() OCommonEmbeddedObject::~OCommonEmbeddedObject()
{ {
if ( m_pInterfaceContainer || m_pDocHolder ) if ( m_pInterfaceContainer || m_xDocHolder.is() )
{ {
m_refCount++; m_refCount++;
try { try {
...@@ -278,16 +275,15 @@ OCommonEmbeddedObject::~OCommonEmbeddedObject() ...@@ -278,16 +275,15 @@ OCommonEmbeddedObject::~OCommonEmbeddedObject()
} catch( const uno::Exception& ) {} } catch( const uno::Exception& ) {}
try { try {
if ( m_pDocHolder ) if ( m_xDocHolder.is() )
{ {
m_pDocHolder->CloseFrame(); m_xDocHolder->CloseFrame();
try { try {
m_pDocHolder->CloseDocument( true, true ); m_xDocHolder->CloseDocument( true, true );
} catch ( const uno::Exception& ) {} } catch ( const uno::Exception& ) {}
m_pDocHolder->FreeOffice(); m_xDocHolder->FreeOffice();
m_pDocHolder->release(); m_xDocHolder.clear();
m_pDocHolder = nullptr;
} }
} catch( const uno::Exception& ) {} } catch( const uno::Exception& ) {}
} }
...@@ -449,7 +445,7 @@ uno::Reference< util::XCloseable > SAL_CALL OCommonEmbeddedObject::getComponent( ...@@ -449,7 +445,7 @@ uno::Reference< util::XCloseable > SAL_CALL OCommonEmbeddedObject::getComponent(
static_cast< ::cppu::OWeakObject* >(this) ); static_cast< ::cppu::OWeakObject* >(this) );
} }
return uno::Reference< util::XCloseable >( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); return uno::Reference< util::XCloseable >( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
} }
...@@ -537,29 +533,27 @@ void SAL_CALL OCommonEmbeddedObject::close( sal_Bool bDeliverOwnership ) ...@@ -537,29 +533,27 @@ void SAL_CALL OCommonEmbeddedObject::close( sal_Bool bDeliverOwnership )
// the exception will be thrown otherwise in addition to exception the object must register itself // the exception will be thrown otherwise in addition to exception the object must register itself
// as termination listener and listen for document events // as termination listener and listen for document events
if ( m_pDocHolder ) if ( m_xDocHolder.is() )
{ {
m_pDocHolder->CloseFrame(); m_xDocHolder->CloseFrame();
try { try {
m_pDocHolder->CloseDocument( bDeliverOwnership, bDeliverOwnership ); m_xDocHolder->CloseDocument( bDeliverOwnership, bDeliverOwnership );
} }
catch( const uno::Exception& ) catch( const uno::Exception& )
{ {
if ( bDeliverOwnership ) if ( bDeliverOwnership )
{ {
m_pDocHolder->release(); m_xDocHolder.clear();
m_pDocHolder = nullptr;
m_bClosed = true; m_bClosed = true;
} }
throw; throw;
} }
m_pDocHolder->FreeOffice(); m_xDocHolder->FreeOffice();
m_pDocHolder->release(); m_xDocHolder.clear();
m_pDocHolder = nullptr;
} }
// TODO: for now the storage will be disposed by the object, but after the document // TODO: for now the storage will be disposed by the object, but after the document
......
...@@ -259,7 +259,7 @@ void OCommonEmbeddedObject::SwitchOwnPersistence( const uno::Reference< embed::X ...@@ -259,7 +259,7 @@ void OCommonEmbeddedObject::SwitchOwnPersistence( const uno::Reference< embed::X
// the linked document should not be switched // the linked document should not be switched
if ( !m_bIsLink ) if ( !m_bIsLink )
{ {
uno::Reference< document::XStorageBasedDocument > xDoc( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference< document::XStorageBasedDocument > xDoc( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if ( xDoc.is() ) if ( xDoc.is() )
SwitchDocToStorage_Impl( xDoc, m_xObjectStorage ); SwitchDocToStorage_Impl( xDoc, m_xObjectStorage );
} }
...@@ -580,8 +580,8 @@ uno::Reference< io::XInputStream > OCommonEmbeddedObject::StoreDocumentToTempStr ...@@ -580,8 +580,8 @@ uno::Reference< io::XInputStream > OCommonEmbeddedObject::StoreDocumentToTempStr
uno::Reference< frame::XStorable > xStorable; uno::Reference< frame::XStorable > xStorable;
{ {
osl::MutexGuard aGuard( m_aMutex ); osl::MutexGuard aGuard( m_aMutex );
if ( m_pDocHolder ) if ( m_xDocHolder.is() )
xStorable.set( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); xStorable.set( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
} }
if( !xStorable.is() ) if( !xStorable.is() )
...@@ -625,7 +625,7 @@ void OCommonEmbeddedObject::SaveObject_Impl() ...@@ -625,7 +625,7 @@ void OCommonEmbeddedObject::SaveObject_Impl()
{ {
// check whether the component is modified, // check whether the component is modified,
// if not there is no need for storing // if not there is no need for storing
uno::Reference< util::XModifiable > xModifiable( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference< util::XModifiable > xModifiable( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if ( xModifiable.is() && !xModifiable->isModified() ) if ( xModifiable.is() && !xModifiable->isModified() )
return; return;
} }
...@@ -760,8 +760,8 @@ void OCommonEmbeddedObject::StoreDocToStorage_Impl( ...@@ -760,8 +760,8 @@ void OCommonEmbeddedObject::StoreDocToStorage_Impl(
uno::Reference< document::XStorageBasedDocument > xDoc; uno::Reference< document::XStorageBasedDocument > xDoc;
{ {
osl::MutexGuard aGuard( m_aMutex ); osl::MutexGuard aGuard( m_aMutex );
if ( m_pDocHolder ) if ( m_xDocHolder.is() )
xDoc.set( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); xDoc.set( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
} }
OUString aBaseURL = GetBaseURLFrom_Impl(rMediaArgs, rObjArgs); OUString aBaseURL = GetBaseURLFrom_Impl(rMediaArgs, rObjArgs);
...@@ -876,7 +876,7 @@ uno::Reference< util::XCloseable > OCommonEmbeddedObject::CreateTempDocFromLink_ ...@@ -876,7 +876,7 @@ uno::Reference< util::XCloseable > OCommonEmbeddedObject::CreateTempDocFromLink_
SAL_WARN( "embeddedobj.common", "Can not retrieve storage media type!" ); SAL_WARN( "embeddedobj.common", "Can not retrieve storage media type!" );
} }
if ( m_pDocHolder->GetComponent().is() ) if ( m_xDocHolder->GetComponent().is() )
{ {
aTempMediaDescr.realloc( 4 ); aTempMediaDescr.realloc( 4 );
...@@ -1020,7 +1020,7 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry( ...@@ -1020,7 +1020,7 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
{ {
uno::Reference< frame::XDispatchProviderInterceptor > xDispatchInterceptor; uno::Reference< frame::XDispatchProviderInterceptor > xDispatchInterceptor;
if ( lObjArgs[nObjInd].Value >>= xDispatchInterceptor ) if ( lObjArgs[nObjInd].Value >>= xDispatchInterceptor )
m_pDocHolder->SetOutplaceDispatchInterceptor( xDispatchInterceptor ); m_xDocHolder->SetOutplaceDispatchInterceptor( xDispatchInterceptor );
} }
else if ( lObjArgs[nObjInd].Name == "DefaultParentBaseURL" ) else if ( lObjArgs[nObjInd].Name == "DefaultParentBaseURL" )
{ {
...@@ -1053,7 +1053,7 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry( ...@@ -1053,7 +1053,7 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
uno::Sequence< beans::NamedValue > aOutFramePropsTyped; uno::Sequence< beans::NamedValue > aOutFramePropsTyped;
if ( lObjArgs[nObjInd].Value >>= aOutFrameProps ) if ( lObjArgs[nObjInd].Value >>= aOutFrameProps )
{ {
m_pDocHolder->SetOutplaceFrameProperties( aOutFrameProps ); m_xDocHolder->SetOutplaceFrameProperties( aOutFrameProps );
} }
else if ( lObjArgs[nObjInd].Value >>= aOutFramePropsTyped ) else if ( lObjArgs[nObjInd].Value >>= aOutFramePropsTyped )
{ {
...@@ -1066,7 +1066,7 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry( ...@@ -1066,7 +1066,7 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
{ {
*pProp <<= *pTypedProp; *pProp <<= *pTypedProp;
} }
m_pDocHolder->SetOutplaceFrameProperties( aOutFrameProps ); m_xDocHolder->SetOutplaceFrameProperties( aOutFrameProps );
} }
else else
SAL_WARN( "embeddedobj.common", "OCommonEmbeddedObject::setPersistentEntry: illegal type for argument 'OutplaceFrameProperties'!" ); SAL_WARN( "embeddedobj.common", "OCommonEmbeddedObject::setPersistentEntry: illegal type for argument 'OutplaceFrameProperties'!" );
...@@ -1102,8 +1102,8 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry( ...@@ -1102,8 +1102,8 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
} }
else else
{ {
m_pDocHolder->SetComponent( InitNewDocument_Impl(), m_bReadOnly ); m_xDocHolder->SetComponent( InitNewDocument_Impl(), m_bReadOnly );
if ( !m_pDocHolder->GetComponent().is() ) if ( !m_xDocHolder->GetComponent().is() )
throw io::IOException(); // TODO: can not create document throw io::IOException(); // TODO: can not create document
m_nObjectState = embed::EmbedStates::RUNNING; m_nObjectState = embed::EmbedStates::RUNNING;
...@@ -1126,16 +1126,16 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry( ...@@ -1126,16 +1126,16 @@ void SAL_CALL OCommonEmbeddedObject::setPersistentEntry(
TransferMediaType( m_xRecoveryStorage, m_xObjectStorage ); TransferMediaType( m_xRecoveryStorage, m_xObjectStorage );
// TODO: // TODO:
m_pDocHolder->SetComponent( InitNewDocument_Impl(), m_bReadOnly ); m_xDocHolder->SetComponent( InitNewDocument_Impl(), m_bReadOnly );
if ( !m_pDocHolder->GetComponent().is() ) if ( !m_xDocHolder->GetComponent().is() )
throw io::IOException(); // TODO: can not create document throw io::IOException(); // TODO: can not create document
m_nObjectState = embed::EmbedStates::RUNNING; m_nObjectState = embed::EmbedStates::RUNNING;
} }
else if ( nEntryConnectionMode == embed::EntryInitModes::MEDIA_DESCRIPTOR_INIT ) else if ( nEntryConnectionMode == embed::EntryInitModes::MEDIA_DESCRIPTOR_INIT )
{ {
m_pDocHolder->SetComponent( CreateDocFromMediaDescr_Impl( lArguments ), m_bReadOnly ); m_xDocHolder->SetComponent( CreateDocFromMediaDescr_Impl( lArguments ), m_bReadOnly );
m_nObjectState = embed::EmbedStates::RUNNING; m_nObjectState = embed::EmbedStates::RUNNING;
} }
//else if ( nEntryConnectionMode == embed::EntryInitModes::TRANSFERABLE_INIT ) //else if ( nEntryConnectionMode == embed::EntryInitModes::TRANSFERABLE_INIT )
...@@ -1472,7 +1472,7 @@ void SAL_CALL OCommonEmbeddedObject::saveCompleted( sal_Bool bUseNew ) ...@@ -1472,7 +1472,7 @@ void SAL_CALL OCommonEmbeddedObject::saveCompleted( sal_Bool bUseNew )
SwitchOwnPersistence( m_xNewParentStorage, m_xNewObjectStorage, m_aNewEntryName ); SwitchOwnPersistence( m_xNewParentStorage, m_xNewObjectStorage, m_aNewEntryName );
m_aDocMediaDescriptor = m_aNewDocMediaDescriptor; m_aDocMediaDescriptor = m_aNewDocMediaDescriptor;
uno::Reference< util::XModifiable > xModif( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference< util::XModifiable > xModif( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if ( xModif.is() ) if ( xModif.is() )
xModif->setModified( false ); xModif->setModified( false );
...@@ -1588,14 +1588,14 @@ void SAL_CALL OCommonEmbeddedObject::storeOwn() ...@@ -1588,14 +1588,14 @@ void SAL_CALL OCommonEmbeddedObject::storeOwn()
PostEvent_Impl( "OnSave" ); PostEvent_Impl( "OnSave" );
SAL_WARN_IF( !m_pDocHolder->GetComponent().is(), "embeddedobj.common", "If an object is activated or in running state it must have a document!" ); SAL_WARN_IF( !m_xDocHolder->GetComponent().is(), "embeddedobj.common", "If an object is activated or in running state it must have a document!" );
if ( !m_pDocHolder->GetComponent().is() ) if ( !m_xDocHolder->GetComponent().is() )
throw uno::RuntimeException(); throw uno::RuntimeException();
if ( m_bIsLink ) if ( m_bIsLink )
{ {
// TODO: just store the document to its location // TODO: just store the document to its location
uno::Reference< frame::XStorable > xStorable( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference< frame::XStorable > xStorable( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if ( !xStorable.is() ) if ( !xStorable.is() )
throw uno::RuntimeException(); // TODO throw uno::RuntimeException(); // TODO
...@@ -1641,7 +1641,7 @@ void SAL_CALL OCommonEmbeddedObject::storeOwn() ...@@ -1641,7 +1641,7 @@ void SAL_CALL OCommonEmbeddedObject::storeOwn()
aGuard.reset(); aGuard.reset();
} }
uno::Reference< util::XModifiable > xModif( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference< util::XModifiable > xModif( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if ( xModif.is() ) if ( xModif.is() )
xModif->setModified( false ); xModif->setModified( false );
...@@ -1749,8 +1749,7 @@ void SAL_CALL OCommonEmbeddedObject::reload( ...@@ -1749,8 +1749,7 @@ void SAL_CALL OCommonEmbeddedObject::reload(
uno::Sequence< beans::NamedValue > aObject = aHelper.GetObjectPropsByFilter( m_aLinkFilterName ); uno::Sequence< beans::NamedValue > aObject = aHelper.GetObjectPropsByFilter( m_aLinkFilterName );
// TODO/LATER: probably the document holder could be cleaned explicitly as in the destructor // TODO/LATER: probably the document holder could be cleaned explicitly as in the destructor
m_pDocHolder->release(); m_xDocHolder.clear();
m_pDocHolder = nullptr;
LinkInit_Impl( aObject, lArguments, lObjArgs ); LinkInit_Impl( aObject, lArguments, lObjArgs );
} }
...@@ -1764,7 +1763,7 @@ void SAL_CALL OCommonEmbeddedObject::reload( ...@@ -1764,7 +1763,7 @@ void SAL_CALL OCommonEmbeddedObject::reload(
{ {
uno::Reference< frame::XDispatchProviderInterceptor > xDispatchInterceptor; uno::Reference< frame::XDispatchProviderInterceptor > xDispatchInterceptor;
if ( lObjArgs[nObjInd].Value >>= xDispatchInterceptor ) if ( lObjArgs[nObjInd].Value >>= xDispatchInterceptor )
m_pDocHolder->SetOutplaceDispatchInterceptor( xDispatchInterceptor ); m_xDocHolder->SetOutplaceDispatchInterceptor( xDispatchInterceptor );
break; break;
} }
...@@ -1870,7 +1869,7 @@ void SAL_CALL OCommonEmbeddedObject::breakLink( const uno::Reference< embed::XSt ...@@ -1870,7 +1869,7 @@ void SAL_CALL OCommonEmbeddedObject::breakLink( const uno::Reference< embed::XSt
// TODO/LATER: handle the case when temp doc can not be created // TODO/LATER: handle the case when temp doc can not be created
// the document is a new embedded object so it must be marked as modified // the document is a new embedded object so it must be marked as modified
uno::Reference< util::XCloseable > xDocument = CreateTempDocFromLink_Impl(); uno::Reference< util::XCloseable > xDocument = CreateTempDocFromLink_Impl();
uno::Reference< util::XModifiable > xModif( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference< util::XModifiable > xModif( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if ( !xModif.is() ) if ( !xModif.is() )
throw uno::RuntimeException(); throw uno::RuntimeException();
try try
...@@ -1880,8 +1879,8 @@ void SAL_CALL OCommonEmbeddedObject::breakLink( const uno::Reference< embed::XSt ...@@ -1880,8 +1879,8 @@ void SAL_CALL OCommonEmbeddedObject::breakLink( const uno::Reference< embed::XSt
catch( const uno::Exception& ) catch( const uno::Exception& )
{} {}
m_pDocHolder->SetComponent( xDocument, m_bReadOnly ); m_xDocHolder->SetComponent( xDocument, m_bReadOnly );
SAL_WARN_IF( !m_pDocHolder->GetComponent().is(), "embeddedobj.common", "If document can't be created, an exception must be thrown!" ); SAL_WARN_IF( !m_xDocHolder->GetComponent().is(), "embeddedobj.common", "If document can't be created, an exception must be thrown!" );
if ( m_nObjectState == embed::EmbedStates::LOADED ) if ( m_nObjectState == embed::EmbedStates::LOADED )
{ {
...@@ -1890,7 +1889,7 @@ void SAL_CALL OCommonEmbeddedObject::breakLink( const uno::Reference< embed::XSt ...@@ -1890,7 +1889,7 @@ void SAL_CALL OCommonEmbeddedObject::breakLink( const uno::Reference< embed::XSt
StateChangeNotification_Impl( false, embed::EmbedStates::LOADED, m_nObjectState, aGuard ); StateChangeNotification_Impl( false, embed::EmbedStates::LOADED, m_nObjectState, aGuard );
} }
else if ( m_nObjectState == embed::EmbedStates::ACTIVE ) else if ( m_nObjectState == embed::EmbedStates::ACTIVE )
m_pDocHolder->Show(); m_xDocHolder->Show();
m_bIsLink = false; m_bIsLink = false;
m_aLinkFilterName.clear(); m_aLinkFilterName.clear();
......
...@@ -187,7 +187,7 @@ void SAL_CALL OSpecialEmbeddedObject::doVerb( sal_Int32 nVerbID ) ...@@ -187,7 +187,7 @@ void SAL_CALL OSpecialEmbeddedObject::doVerb( sal_Int32 nVerbID )
if ( nVerbID == -7 ) if ( nVerbID == -7 )
{ {
uno::Reference < ui::dialogs::XExecutableDialog > xDlg( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference < ui::dialogs::XExecutableDialog > xDlg( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if ( xDlg.is() ) if ( xDlg.is() )
xDlg->execute(); xDlg->execute();
else else
......
...@@ -60,7 +60,7 @@ void SAL_CALL OCommonEmbeddedObject::setVisualAreaSize( sal_Int64 nAspect, const ...@@ -60,7 +60,7 @@ void SAL_CALL OCommonEmbeddedObject::setVisualAreaSize( sal_Int64 nAspect, const
bBackToLoaded = m_bIsLink; bBackToLoaded = m_bIsLink;
} }
bool bSuccess = m_pDocHolder->SetExtent( nAspect, aSize ); bool bSuccess = m_xDocHolder->SetExtent( nAspect, aSize );
if ( bBackToLoaded ) if ( bBackToLoaded )
changeState( embed::EmbedStates::LOADED ); changeState( embed::EmbedStates::LOADED );
...@@ -98,7 +98,7 @@ awt::Size SAL_CALL OCommonEmbeddedObject::getVisualAreaSize( sal_Int64 nAspect ) ...@@ -98,7 +98,7 @@ awt::Size SAL_CALL OCommonEmbeddedObject::getVisualAreaSize( sal_Int64 nAspect )
} }
awt::Size aResult; awt::Size aResult;
bool bSuccess = m_pDocHolder->GetExtent( nAspect, &aResult ); bool bSuccess = m_xDocHolder->GetExtent( nAspect, &aResult );
if ( bBackToLoaded ) if ( bBackToLoaded )
changeState( embed::EmbedStates::LOADED ); changeState( embed::EmbedStates::LOADED );
...@@ -139,7 +139,7 @@ sal_Int32 SAL_CALL OCommonEmbeddedObject::getMapUnit( sal_Int64 nAspect ) ...@@ -139,7 +139,7 @@ sal_Int32 SAL_CALL OCommonEmbeddedObject::getMapUnit( sal_Int64 nAspect )
bBackToLoaded = m_bIsLink; bBackToLoaded = m_bIsLink;
} }
sal_Int32 nResult = m_pDocHolder->GetMapUnit( nAspect ); sal_Int32 nResult = m_xDocHolder->GetMapUnit( nAspect );
if ( bBackToLoaded ) if ( bBackToLoaded )
changeState( embed::EmbedStates::LOADED ); changeState( embed::EmbedStates::LOADED );
...@@ -185,19 +185,19 @@ embed::VisualRepresentation SAL_CALL OCommonEmbeddedObject::getPreferredVisualRe ...@@ -185,19 +185,19 @@ embed::VisualRepresentation SAL_CALL OCommonEmbeddedObject::getPreferredVisualRe
bBackToLoaded = m_bIsLink; bBackToLoaded = m_bIsLink;
} }
SAL_WARN_IF( !m_pDocHolder->GetComponent().is(), "embeddedobj.common", "Running or Active object has no component!" ); SAL_WARN_IF( !m_xDocHolder->GetComponent().is(), "embeddedobj.common", "Running or Active object has no component!" );
// TODO: return for the aspect of the document // TODO: return for the aspect of the document
embed::VisualRepresentation aVisualRepresentation; embed::VisualRepresentation aVisualRepresentation;
uno::Reference< embed::XVisualObject > xVisualObject( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference< embed::XVisualObject > xVisualObject( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if( xVisualObject.is()) if( xVisualObject.is())
{ {
aVisualRepresentation = xVisualObject->getPreferredVisualRepresentation( nAspect ); aVisualRepresentation = xVisualObject->getPreferredVisualRepresentation( nAspect );
} }
else else
{ {
uno::Reference< datatransfer::XTransferable > xTransferable( m_pDocHolder->GetComponent(), uno::UNO_QUERY ); uno::Reference< datatransfer::XTransferable > xTransferable( m_xDocHolder->GetComponent(), uno::UNO_QUERY );
if (!xTransferable.is() ) if (!xTransferable.is() )
throw uno::RuntimeException(); throw uno::RuntimeException();
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#include <com/sun/star/util/XCloseable.hpp> #include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/chart2/XDefaultSizeTransmitter.hpp> #include <com/sun/star/chart2/XDefaultSizeTransmitter.hpp>
#include <cppuhelper/weak.hxx> #include <cppuhelper/weak.hxx>
#include <rtl/ref.hxx>
namespace com { namespace sun { namespace star { namespace com { namespace sun { namespace star {
namespace embed { namespace embed {
...@@ -82,7 +83,7 @@ class OCommonEmbeddedObject : public css::embed::XEmbeddedObject ...@@ -82,7 +83,7 @@ class OCommonEmbeddedObject : public css::embed::XEmbeddedObject
protected: protected:
::osl::Mutex m_aMutex; ::osl::Mutex m_aMutex;
DocumentHolder* m_pDocHolder; rtl::Reference<DocumentHolder> m_xDocHolder;
::cppu::OMultiTypeInterfaceContainerHelper* m_pInterfaceContainer; ::cppu::OMultiTypeInterfaceContainerHelper* m_pInterfaceContainer;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment