summaryrefslogtreecommitdiff
path: root/sfx2/source
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2001-10-12 12:15:48 +0000
committerMathias Bauer <mba@openoffice.org>2001-10-12 12:15:48 +0000
commit9afbe03397cd3d637f4ae628b144b888b0781204 (patch)
treed8dcd0942b8e35182e45d78ec49983123b15ded4 /sfx2/source
parent4af60d2eeb13391f68aed2d6865ef2ee7db9ae66 (diff)
#91147#: blank dispatching always uses loadComponentFromURL, never use findFrame, does not work in WebTop
Diffstat (limited to 'sfx2/source')
-rw-r--r--sfx2/source/appl/appopen.cxx36
1 files changed, 19 insertions, 17 deletions
diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx
index 17139c0dc871..340300b85017 100644
--- a/sfx2/source/appl/appopen.cxx
+++ b/sfx2/source/appl/appopen.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: appopen.cxx,v $
*
- * $Revision: 1.35 $
+ * $Revision: 1.36 $
*
- * last change: $Author: mba $ $Date: 2001-10-10 11:21:12 $
+ * last change: $Author: mba $ $Date: 2001-10-12 13:15:48 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1159,21 +1159,23 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
Sequence < PropertyValue > aArgs;
TransformItems( SID_OPENDOC, *rReq.GetArgs(), aArgs );
- Reference < XController > xController;
- if ( pFrame || pLinkItem || !rReq.IsSynchronCall() )
+ // extract target name
+ ::rtl::OUString aTarget;
+ SFX_REQUEST_ARG(rReq, pTargetItem, SfxStringItem, SID_TARGETNAME, FALSE);
+ if ( pTargetItem )
+ aTarget = pTargetItem->GetValue();
+ else
{
- // extract target name
- ::rtl::OUString aTarget;
- SFX_REQUEST_ARG(rReq, pTargetItem, SfxStringItem, SID_TARGETNAME, FALSE);
- if ( pTargetItem )
- aTarget = pTargetItem->GetValue();
- else
- {
- SFX_REQUEST_ARG( rReq, pNewViewItem, SfxBoolItem, SID_OPEN_NEW_VIEW, FALSE );
- if ( pNewViewItem && pNewViewItem->GetValue() )
- aTarget = String::CreateFromAscii("_blank" );
- }
+ SFX_REQUEST_ARG( rReq, pNewViewItem, SfxBoolItem, SID_OPEN_NEW_VIEW, FALSE );
+ if ( pNewViewItem && pNewViewItem->GetValue() )
+ aTarget = String::CreateFromAscii("_blank" );
+ }
+
+ BOOL bIsBlankTarget = ( aTarget.compareToAscii( "_blank" ) == COMPARE_EQUAL );
+ Reference < XController > xController;
+ if ( ( !bIsBlankTarget && pFrame ) || pLinkItem || !rReq.IsSynchronCall() )
+ {
if ( bHidden )
aTarget = String::CreateFromAscii("_blank");
@@ -1239,7 +1241,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
pListener->release();
}
- if ( !xController.is() && aTarget.compareToAscii( "_blank" ) == COMPARE_EQUAL )
+ if ( !xController.is() && bIsBlankTarget )
// a blank frame would have been created in findFrame; in this case I am the owner and I must delete it
xFrame->dispose();
}
@@ -1254,7 +1256,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
}
else
{
- // synchron loading without a given frame
+ // synchron loading without a given frame or as blank frame
SFX_REQUEST_ARG( rReq, pFileNameItem, SfxStringItem, SID_FILE_NAME, FALSE );
Reference < XComponentLoader > xDesktop( ::comphelper::getProcessServiceFactory()->createInstance(::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop")), UNO_QUERY );
Reference < XModel > xModel( xDesktop->loadComponentFromURL( pFileNameItem->GetValue(), ::rtl::OUString::createFromAscii("_blank"), 0, aArgs ), UNO_QUERY );