Kaydet (Commit) a00c4c5e authored tarafından Tsutomu Uchino's avatar Tsutomu Uchino Kaydeden (comit) Caolán McNamara

Resolves: #i113481# query script invocation from the current frame...

when the controller is not yet attached

(cherry picked from commit 03a41087)

Change-Id: I1da3b3da258445d5187dcc75c4d151d08f9017dc
üst fc974a40
......@@ -158,7 +158,28 @@ void SAL_CALL ScriptProtocolHandler::dispatchWithNotification(
OSL_ENSURE( xDocumentScripts.is(), "ScriptProtocolHandler::dispatchWithNotification: can't do the security check!" );
if ( !xDocumentScripts.is() || !xDocumentScripts->getAllowMacroExecution() )
{
if ( xListener.is() )
{
::com::sun::star::frame::DispatchResultEvent aEvent(
static_cast< ::cppu::OWeakObject* >( this ),
::com::sun::star::frame::DispatchResultState::FAILURE,
invokeResult );
try
{
xListener->dispatchFinished( aEvent ) ;
}
catch(RuntimeException & e)
{
OSL_TRACE(
"ScriptProtocolHandler::dispatchWithNotification: caught RuntimeException"
"while dispatchFinished with failture of the execution %s",
::rtl::OUStringToOString( e.Message,
RTL_TEXTENCODING_ASCII_US ).pData->buffer );
}
}
return;
}
}
// Creates a ScriptProvider ( if one is not created already )
......@@ -333,6 +354,25 @@ ScriptProtocolHandler::getScriptInvocation()
if ( !m_xScriptInvocation.set( xController->getModel(), UNO_QUERY ) )
m_xScriptInvocation.set( xController, UNO_QUERY );
}
else
{
Reference< XFrame > xFrame( m_xFrame.get(), UNO_QUERY );
if ( xFrame.is() )
{
SfxFrame* pFrame = NULL;
for ( pFrame = SfxFrame::GetFirst(); pFrame; pFrame = SfxFrame::GetNext( *pFrame ) )
{
if ( pFrame->GetFrameInterface() == xFrame )
break;
}
SfxObjectShell* pDocShell = pFrame ? pFrame->GetCurrentDocument() : SfxObjectShell::Current();
if ( pDocShell )
{
Reference< XModel > xModel( pDocShell->GetModel() );
m_xScriptInvocation.set( xModel, UNO_QUERY );
}
}
}
}
return m_xScriptInvocation.is();
}
......
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