Kaydet (Commit) 86a547e3 authored tarafından Christoph Lutz's avatar Christoph Lutz Kaydeden (comit) Michael Stahl

Don't store temporary mail merge file if mail merge job was cancelled

If a mail merge "to single file" is canceled, the temporary file was still saved.
This needed a lot of time for large mail merge results (>20s) which is not needed,
wanted and inteded. We want mail merge to return asap.

Change-Id: I74e9048c7eb483766e7e677dd21167b7d844a518
Reviewed-on: https://gerrit.libreoffice.org/14811Reviewed-by: 's avatarMichael Stahl <mstahl@redhat.com>
Tested-by: 's avatarMichael Stahl <mstahl@redhat.com>
üst da8bbcbc
......@@ -1421,27 +1421,30 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell,
{
if( rMergeDescriptor.nMergeType != DBMGR_MERGE_PRINTER )
{
assert( aTempFile.get());
INetURLObject aTempFileURL( rMergeDescriptor.bSubjectIsFilename ? sSubject : aTempFile->GetURL());
SfxMedium* pDstMed = new SfxMedium(
aTempFileURL.GetMainURL( INetURLObject::NO_DECODE ),
STREAM_STD_READWRITE );
pDstMed->SetFilter( pStoreToFilter );
if(pDstMed->GetItemSet())
if( !bCancel )
{
if(pStoreToFilterOptions )
pDstMed->GetItemSet()->Put(SfxStringItem(SID_FILE_FILTEROPTIONS, *pStoreToFilterOptions));
if(rMergeDescriptor.aSaveToFilterData.getLength())
pDstMed->GetItemSet()->Put(SfxUsrAnyItem(SID_FILTER_DATA, makeAny(rMergeDescriptor.aSaveToFilterData)));
}
assert( aTempFile.get());
INetURLObject aTempFileURL( rMergeDescriptor.bSubjectIsFilename ? sSubject : aTempFile->GetURL());
SfxMedium* pDstMed = new SfxMedium(
aTempFileURL.GetMainURL( INetURLObject::NO_DECODE ),
STREAM_STD_READWRITE );
pDstMed->SetFilter( pStoreToFilter );
if(pDstMed->GetItemSet())
{
if(pStoreToFilterOptions )
pDstMed->GetItemSet()->Put(SfxStringItem(SID_FILE_FILTEROPTIONS, *pStoreToFilterOptions));
if(rMergeDescriptor.aSaveToFilterData.getLength())
pDstMed->GetItemSet()->Put(SfxUsrAnyItem(SID_FILTER_DATA, makeAny(rMergeDescriptor.aSaveToFilterData)));
}
xTargetDocShell->DoSaveAs(*pDstMed);
xTargetDocShell->DoSaveCompleted(pDstMed);
if( xTargetDocShell->GetError() )
{
// error message ??
ErrorHandler::HandleError( xTargetDocShell->GetError() );
bNoError = false;
xTargetDocShell->DoSaveAs(*pDstMed);
xTargetDocShell->DoSaveCompleted(pDstMed);
if( xTargetDocShell->GetError() )
{
// error message ??
ErrorHandler::HandleError( xTargetDocShell->GetError() );
bNoError = false;
}
}
}
else if( pTargetView ) // must be available!
......
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