diff options
-rw-r--r-- | include/sfx2/objsh.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/docshell/docsh.cxx | 4 | ||||
-rw-r--r-- | sc/source/ui/inc/docsh.hxx | 2 | ||||
-rw-r--r-- | sfx2/source/doc/objstor.cxx | 5 | ||||
-rw-r--r-- | sw/source/uibase/dbui/dbmgr.cxx | 11 |
5 files changed, 13 insertions, 11 deletions
diff --git a/include/sfx2/objsh.hxx b/include/sfx2/objsh.hxx index 9f2f71a4529f..ccc72134f2d7 100644 --- a/include/sfx2/objsh.hxx +++ b/include/sfx2/objsh.hxx @@ -327,7 +327,7 @@ public: bool DoSaveObjectAs( SfxMedium &rNewStor, bool bCommit ); // TODO/LATER: currently only overridden in Calc, should be made non-virtual - virtual bool DoSaveCompleted( SfxMedium* pNewStor=nullptr ); + virtual bool DoSaveCompleted( SfxMedium* pNewStor=nullptr, bool bRegisterRecent=true ); bool LoadOwnFormat( SfxMedium& pMedium ); virtual bool SaveAsOwnFormat( SfxMedium& pMedium ); diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx index 22f3af51e2d1..10d054008d2f 100644 --- a/sc/source/ui/docshell/docsh.cxx +++ b/sc/source/ui/docshell/docsh.cxx @@ -2449,9 +2449,9 @@ bool ScDocShell::SaveCompleted( const uno::Reference < embed::XStorage >& xStor return SfxObjectShell::SaveCompleted( xStor ); } -bool ScDocShell::DoSaveCompleted( SfxMedium * pNewStor ) +bool ScDocShell::DoSaveCompleted( SfxMedium * pNewStor, bool bRegisterRecent ) { - bool bRet = SfxObjectShell::DoSaveCompleted( pNewStor ); + bool bRet = SfxObjectShell::DoSaveCompleted( pNewStor, bRegisterRecent ); // SC_HINT_DOC_SAVED for change ReadOnly -> Read/Write Broadcast( SfxSimpleHint( SC_HINT_DOC_SAVED ) ); diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx index 69421be79811..079b542e68dc 100644 --- a/sc/source/ui/inc/docsh.hxx +++ b/sc/source/ui/inc/docsh.hxx @@ -203,7 +203,7 @@ public: virtual void LoadStyles( SfxObjectShell &rSource ) override; virtual bool SaveCompleted( const css::uno::Reference< css::embed::XStorage >& ) override; // SfxInPlaceObject - virtual bool DoSaveCompleted( SfxMedium * pNewStor) override; // SfxObjectShell + virtual bool DoSaveCompleted( SfxMedium * pNewStor, bool bRegisterRecent ) override; // SfxObjectShell virtual bool QuerySlotExecutable( sal_uInt16 nSlotId ) override; virtual void Draw( OutputDevice *, const JobSetup & rSetup, diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx index b6de496cd083..62edc749a5de 100644 --- a/sfx2/source/doc/objstor.cxx +++ b/sfx2/source/doc/objstor.cxx @@ -1942,7 +1942,7 @@ bool SfxObjectShell::DoSaveAs( SfxMedium& rMedium ) } -bool SfxObjectShell::DoSaveCompleted( SfxMedium* pNewMed ) +bool SfxObjectShell::DoSaveCompleted( SfxMedium* pNewMed, bool bRegisterRecent ) { bool bOk = true; bool bMedChanged = pNewMed && pNewMed!=pMedium; @@ -2092,7 +2092,8 @@ bool SfxObjectShell::DoSaveCompleted( SfxMedium* pNewMed ) pMedium->ClearBackup_Impl(); pMedium->LockOrigFileOnDemand( true, false ); - AddToRecentlyUsedList(); + if (bRegisterRecent) + AddToRecentlyUsedList(); return bOk; } diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx index cd2d4f93ec6c..517051f05f9f 100644 --- a/sw/source/uibase/dbui/dbmgr.cxx +++ b/sw/source/uibase/dbui/dbmgr.cxx @@ -858,7 +858,10 @@ static void lcl_SaveDebugDoc( SfxObjectShell *xTargetDocShell, SfxMedium* pDstMed = new SfxMedium( aTempFileURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_STD_READWRITE ); - if( !xTargetDocShell->DoSaveAs( *pDstMed ) ) + bool bAnyError = !xTargetDocShell->DoSaveAs( *pDstMed ); + // xObjectShell->DoSaveCompleted crashes the mail merge unit tests, so skip it + bAnyError |= (0 != xTargetDocShell->GetError()); + if( bAnyError ) SAL_WARN( "sw.mailmerge", "Error saving: " << aTempFile.GetURL() ); else SAL_INFO( "sw.mailmerge", "Saved doc as: " << aTempFile.GetURL() ); @@ -898,12 +901,10 @@ static bool lcl_SaveDoc( rWorkShell.ConvertFieldsToText(); bool bAnyError = !xObjectShell->DoSaveAs(*pDstMed); - // Actually this should be a bool... so in case of email and individual // files, where this is set, we skip the the recently used handling - if( !decodedURL ) - xObjectShell->DoSaveCompleted( pDstMed ); - bAnyError = bAnyError || xObjectShell->GetError(); + bAnyError |= !xObjectShell->DoSaveCompleted( pDstMed, !decodedURL ); + bAnyError |= (0 != xObjectShell->GetError()); if( bAnyError ) { // error message ?? |