summaryrefslogtreecommitdiff
path: root/sd/source/ui/app/sdmod1.cxx
diff options
context:
space:
mode:
authorThomas Lange [tl] <tl@openoffice.org>2010-04-14 10:26:31 +0200
committerThomas Lange [tl] <tl@openoffice.org>2010-04-14 10:26:31 +0200
commitab76732221aaf59cc9df43fa99b1883cb7888049 (patch)
tree6a04831c10ea5f40a25db75f97ec25a7833dcd59 /sd/source/ui/app/sdmod1.cxx
parent8a9c809426226f9c634d8b58392920fbcd917f7e (diff)
parente725e315399f527e63f919a9a6861066b1f41512 (diff)
cws tl74: merge with DEV300 m76
Diffstat (limited to 'sd/source/ui/app/sdmod1.cxx')
-rw-r--r--sd/source/ui/app/sdmod1.cxx75
1 files changed, 22 insertions, 53 deletions
diff --git a/sd/source/ui/app/sdmod1.cxx b/sd/source/ui/app/sdmod1.cxx
index fcc22b73f424..743b7a35610d 100644
--- a/sd/source/ui/app/sdmod1.cxx
+++ b/sd/source/ui/app/sdmod1.cxx
@@ -84,6 +84,8 @@
using ::sd::framework::FrameworkHelper;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::frame::XFrame;
namespace {
@@ -302,13 +304,7 @@ void SdModule::OutlineToImpress (SfxRequest& rRequest)
}
SFX_REQUEST_ARG( rRequest, pFrmItem, SfxFrameItem, SID_DOCFRAME, FALSE);
- if ( pFrmItem )
- {
- SfxFrame* pFrame = pFrmItem->GetFrame();
- pFrame->InsertDocument( pDocSh );
- }
- else
- SfxViewFrame::CreateViewFrame(*pDocSh, ::sd::OUTLINE_FACTORY_ID);
+ SfxViewFrame::LoadDocumentIntoFrame( *pDocSh, pFrmItem, ::sd::OUTLINE_FACTORY_ID );
::sd::ViewShell* pViewSh = pDocSh->GetViewShell();
@@ -533,7 +529,7 @@ void SdModule::AddSummaryPage (SfxViewFrame* pViewFrame, SdDrawDocument* pDocume
}
}
-SfxFrame* SdModule::CreateFromTemplate( const String& rTemplatePath, SfxFrame* pTargetFrame )
+SfxFrame* SdModule::CreateFromTemplate( const String& rTemplatePath, const Reference< XFrame >& i_rFrame )
{
SfxFrame* pFrame = 0;
@@ -552,17 +548,9 @@ SfxFrame* SdModule::CreateFromTemplate( const String& rTemplatePath, SfxFrame* p
}
else if( pDocShell )
{
- if ( pTargetFrame )
- {
- pFrame = pTargetFrame;
- pFrame->InsertDocument( pDocShell );
- }
- else
- {
- SfxViewFrame* pViewFrame = SfxViewFrame::CreateViewFrame( *pDocShell );
- if( pViewFrame )
- pFrame = pViewFrame->GetFrame();
- }
+ SfxViewFrame* pViewFrame = SfxViewFrame::LoadDocumentIntoFrame( *pDocShell, i_rFrame );
+ OSL_ENSURE( pViewFrame, "SdModule::CreateFromTemplate: no view frame - was the document really loaded?" );
+ pFrame = pViewFrame ? &pViewFrame->GetFrame() : NULL;
}
return pFrame;
@@ -574,10 +562,10 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
SfxFrame* pFrame = 0;
if ( SvtModuleOptions().IsImpress() )
{
- SfxFrame* pTargetFrame = 0;
- SFX_REQUEST_ARG( rReq, pFrmItem, SfxFrameItem, SID_DOCFRAME, FALSE);
+ Reference< XFrame > xTargetFrame;
+ SFX_REQUEST_ARG( rReq, pFrmItem, SfxUnoFrameItem, SID_FILLFRAME, FALSE);
if ( pFrmItem )
- pTargetFrame = pFrmItem->GetFrame();
+ xTargetFrame = pFrmItem->GetFrame();
bool bMakeLayoutVisible = false;
SfxViewFrame* pViewFrame = NULL;
@@ -597,12 +585,12 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
if( aStandardTemplate.Len() > 0 )
{
//load a template document
- pFrame = CreateFromTemplate( aStandardTemplate, pTargetFrame );
+ pFrame = CreateFromTemplate( aStandardTemplate, xTargetFrame );
}
else
{
//create an empty document
- pFrame = CreateEmptyDocument( DOCUMENT_TYPE_IMPRESS, pTargetFrame );
+ pFrame = CreateEmptyDocument( DOCUMENT_TYPE_IMPRESS, xTargetFrame );
bMakeLayoutVisible = true;
}
}
@@ -635,7 +623,7 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
SfxStringItem aReferer( SID_REFERER, UniString() );
SfxStringItem aPassword( SID_PASSWORD, aPasswrd );
- if ( pTargetFrame )
+ if ( xTargetFrame.is() )
{
SfxAllItemSet aSet( *rReq.GetArgs()->GetPool() );
aSet.Put( aFile );
@@ -645,10 +633,10 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
if (aPasswrd.Len() > 0)
aSet.Put( aPassword );
- const SfxPoolItem* pRet = pTargetFrame->LoadDocumentSynchron( aSet );
+ const SfxPoolItem* pRet = SfxFrame::OpenDocumentSynchron( aSet, xTargetFrame );
const SfxViewFrameItem* pFrameItem = PTR_CAST( SfxViewFrameItem, pRet );
if ( pFrameItem && pFrameItem->GetFrame() )
- pFrame = pFrameItem->GetFrame()->GetFrame();
+ pFrame = &pFrameItem->GetFrame()->GetFrame();
}
else
{
@@ -667,7 +655,7 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
const SfxPoolItem* pRet = SFX_APP()->ExecuteSlot (aRequest);
const SfxViewFrameItem* pFrameItem = PTR_CAST( SfxViewFrameItem, pRet );
if ( pFrameItem )
- pFrame = pFrameItem->GetFrame()->GetFrame();
+ pFrame = &pFrameItem->GetFrame()->GetFrame();
}
catch (::com::sun::star::uno::Exception e)
{
@@ -691,20 +679,9 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
SfxObjectShell* pShell = xShell;
if( pShell )
{
- if ( pTargetFrame )
- {
- pFrame = pTargetFrame;
- pFrame->InsertDocument( pShell );
- pViewFrame = pFrame->GetCurrentViewFrame();
- }
- else
- {
- pViewFrame = SfxViewFrame::CreateViewFrame( *pShell );
- if( pViewFrame )
- pFrame = pViewFrame->GetFrame();
- }
-
+ pViewFrame = SfxViewFrame::LoadDocumentIntoFrame( *pShell, xTargetFrame );
DBG_ASSERT( pViewFrame, "no ViewFrame!!" );
+ pFrame = pViewFrame ? &pViewFrame->GetFrame() : NULL;
if(bNewDocDirect && !bStartWithTemplate)
{
@@ -790,7 +767,7 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
return pFrame;
}
-SfxFrame* SdModule::CreateEmptyDocument( DocumentType eDocType, SfxFrame* pTargetFrame )
+SfxFrame* SdModule::CreateEmptyDocument( DocumentType eDocType, const Reference< XFrame >& i_rFrame )
{
SfxFrame* pFrame = 0;
@@ -807,17 +784,9 @@ SfxFrame* SdModule::CreateEmptyDocument( DocumentType eDocType, SfxFrame* pTarge
pDoc->StopWorkStartupDelay();
}
- if ( pTargetFrame )
- {
- pFrame = pTargetFrame;
- pFrame->InsertDocument( pNewDocSh );
- }
- else
- {
- SfxViewFrame* pViewFrame = SfxViewFrame::CreateViewFrame( *pNewDocSh );
- if( pViewFrame )
- pFrame = pViewFrame->GetFrame();
- }
+ SfxViewFrame* pViewFrame = SfxViewFrame::LoadDocumentIntoFrame( *pNewDocSh, i_rFrame );
+ OSL_ENSURE( pViewFrame, "SdModule::CreateEmptyDocument: no view frame - was the document really loaded?" );
+ pFrame = pViewFrame ? &pViewFrame->GetFrame() : NULL;
}
return pFrame;