diff options
Diffstat (limited to 'sfx2/source/view')
-rw-r--r-- | sfx2/source/view/frame.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/view/frame2.cxx | 9 | ||||
-rw-r--r-- | sfx2/source/view/impframe.hxx | 14 | ||||
-rw-r--r-- | sfx2/source/view/impviewframe.hxx | 4 | ||||
-rw-r--r-- | sfx2/source/view/printer.cxx | 27 | ||||
-rw-r--r-- | sfx2/source/view/sfxbasecontroller.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/view/viewfrm.cxx | 20 | ||||
-rw-r--r-- | sfx2/source/view/viewprn.cxx | 57 | ||||
-rw-r--r-- | sfx2/source/view/viewsh.cxx | 12 |
9 files changed, 76 insertions, 71 deletions
diff --git a/sfx2/source/view/frame.cxx b/sfx2/source/view/frame.cxx index 82c03818579b..c830ff577a17 100644 --- a/sfx2/source/view/frame.cxx +++ b/sfx2/source/view/frame.cxx @@ -93,7 +93,7 @@ void SfxFrame::Construct_Impl() SfxFrame::~SfxFrame() { RemoveTopFrame_Impl( this ); - DELETEZ( pWindow ); + pWindow.disposeAndClear(); SfxFrameArr_Impl::iterator it = std::find( pFramesArr_Impl->begin(), pFramesArr_Impl->end(), this ); if ( it != pFramesArr_Impl->end() ) diff --git a/sfx2/source/view/frame2.cxx b/sfx2/source/view/frame2.cxx index 037d7ea525ae..390a9c52d241 100644 --- a/sfx2/source/view/frame2.cxx +++ b/sfx2/source/view/frame2.cxx @@ -69,7 +69,6 @@ public: SfxFrame* pFrame; SfxFrameWindow_Impl( SfxFrame* pF, vcl::Window& i_rContainerWindow ); - virtual ~SfxFrameWindow_Impl( ); virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE; virtual void StateChanged( StateChangedType nStateChange ) SAL_OVERRIDE; @@ -86,10 +85,6 @@ SfxFrameWindow_Impl::SfxFrameWindow_Impl( SfxFrame* pF, vcl::Window& i_rContaine { } -SfxFrameWindow_Impl::~SfxFrameWindow_Impl( ) -{ -} - void SfxFrameWindow_Impl::DataChanged( const DataChangedEvent& rDCEvt ) { Window::DataChanged( rDCEvt ); @@ -309,7 +304,7 @@ SfxFrame::SfxFrame( vcl::Window& i_rContainerWindow, bool i_bHidden ) InsertTopFrame_Impl( this ); pImp->pExternalContainerWindow = &i_rContainerWindow; - pWindow = new SfxFrameWindow_Impl( this, i_rContainerWindow ); + pWindow = VclPtr<SfxFrameWindow_Impl>::Create( this, i_rContainerWindow ); // always show pWindow, which is the ComponentWindow of the XFrame we live in // nowadays, since SfxFrames can be created with an XFrame only, hiding or showing the complete XFrame @@ -350,7 +345,7 @@ SystemWindow* SfxFrame::GetSystemWindow() const SystemWindow* SfxFrame::GetTopWindow_Impl() const { if ( pImp->pExternalContainerWindow->IsSystemWindow() ) - return static_cast<SystemWindow*>( pImp->pExternalContainerWindow ); + return static_cast<SystemWindow*>( pImp->pExternalContainerWindow.get() ); else return NULL; } diff --git a/sfx2/source/view/impframe.hxx b/sfx2/source/view/impframe.hxx index 5f1aaae8e4fc..271ef70c1d45 100644 --- a/sfx2/source/view/impframe.hxx +++ b/sfx2/source/view/impframe.hxx @@ -41,17 +41,17 @@ public: SfxViewFrame* pCurrentViewFrame; SfxFrameDescriptor* pDescr; sal_uInt16 nLocks; - bool bClosing : 1; - bool bPrepClosing : 1; - bool bInCancelTransfers : 1; - bool bOwnsBindings : 1; - bool bReleasingComponent : 1; - bool bInPlace : 1; + bool bClosing : 1; + bool bPrepClosing : 1; + bool bInCancelTransfers : 1; + bool bOwnsBindings : 1; + bool bReleasingComponent : 1; + bool bInPlace : 1; SfxFrame* pFrame; SfxWorkWindow* pWorkWin; SvBorder aBorder; // formerly SfxTopFrame - vcl::Window* pExternalContainerWindow; + VclPtr<vcl::Window> pExternalContainerWindow; bool bHidden; bool bLockResize; bool bMenuBarOn; diff --git a/sfx2/source/view/impviewframe.hxx b/sfx2/source/view/impviewframe.hxx index 129d03c5e8ce..0f8bfdc47f85 100644 --- a/sfx2/source/view/impviewframe.hxx +++ b/sfx2/source/view/impviewframe.hxx @@ -35,9 +35,9 @@ struct SfxViewFrame_Impl OUString aActualURL; SfxFrame& rFrame; svtools::AsynchronLink* pReloader; - vcl::Window* pWindow; + VclPtr<vcl::Window> pWindow; SfxViewFrame* pActiveChild; - vcl::Window* pFocusWin; + VclPtr<vcl::Window> pFocusWin; sal_uInt16 nDocViewNo; sal_uInt16 nCurViewId; bool bResizeInToOut:1; diff --git a/sfx2/source/view/printer.cxx b/sfx2/source/view/printer.cxx index e5de62ccd922..ee07c7850f21 100644 --- a/sfx2/source/view/printer.cxx +++ b/sfx2/source/view/printer.cxx @@ -60,7 +60,7 @@ struct SfxPrintOptDlg_Impl // class SfxPrinter ------------------------------------------------------ -SfxPrinter* SfxPrinter::Create( SvStream& rStream, SfxItemSet* pOptions ) +VclPtr<SfxPrinter> SfxPrinter::Create( SvStream& rStream, SfxItemSet* pOptions ) /* [Description] @@ -79,7 +79,7 @@ SfxPrinter* SfxPrinter::Create( SvStream& rStream, SfxItemSet* pOptions ) ReadJobSetup( rStream, aFileJobSetup ); // Get printers - SfxPrinter *pPrinter = new SfxPrinter( pOptions, aFileJobSetup ); + VclPtr<SfxPrinter> pPrinter = VclPtr<SfxPrinter>::Create( pOptions, aFileJobSetup ); return pPrinter; } @@ -166,12 +166,11 @@ SfxPrinter::SfxPrinter( const SfxPrinter& rPrinter ) : -SfxPrinter* SfxPrinter::Clone() const +VclPtr<SfxPrinter> SfxPrinter::Clone() const { if ( IsDefPrinter() ) { - SfxPrinter *pNewPrinter; - pNewPrinter = new SfxPrinter( GetOptions().Clone() ); + VclPtr<SfxPrinter> pNewPrinter = VclPtr<SfxPrinter>::Create( GetOptions().Clone() ); pNewPrinter->SetJobSetup( GetJobSetup() ); pNewPrinter->SetPrinterProps( this ); pNewPrinter->SetMapMode( GetMapMode() ); @@ -182,15 +181,21 @@ SfxPrinter* SfxPrinter::Clone() const return pNewPrinter; } else - return new SfxPrinter( *this ); + return VclPtr<SfxPrinter>::Create( *this ); } SfxPrinter::~SfxPrinter() { + disposeOnce(); +} + +void SfxPrinter::dispose() +{ delete pOptions; delete pImpl; + Printer::dispose(); } @@ -215,7 +220,7 @@ SfxPrintOptionsDialog::SfxPrintOptionsDialog(vcl::Window *pParent, VclContainer *pVBox = get_content_area(); // Insert TabPage - pPage = pViewSh->CreatePrintOptionsPage(pVBox, *pOptions); + pPage.reset(pViewSh->CreatePrintOptionsPage(pVBox, *pOptions)); DBG_ASSERT( pPage, "CreatePrintOptions != SFX_VIEW_HAS_PRINTOPTIONS" ); if( pPage ) { @@ -229,9 +234,15 @@ SfxPrintOptionsDialog::SfxPrintOptionsDialog(vcl::Window *pParent, SfxPrintOptionsDialog::~SfxPrintOptionsDialog() { + disposeOnce(); +} + +void SfxPrintOptionsDialog::dispose() +{ delete pDlgImpl; - delete pPage; + pPage.disposeAndClear(); delete pOptions; + ModalDialog::dispose(); } diff --git a/sfx2/source/view/sfxbasecontroller.cxx b/sfx2/source/view/sfxbasecontroller.cxx index e56ac06d7abd..22d283b9553c 100644 --- a/sfx2/source/view/sfxbasecontroller.cxx +++ b/sfx2/source/view/sfxbasecontroller.cxx @@ -1451,7 +1451,7 @@ void SfxBaseController::ShowInfoBars( ) SfxInfoBarWindow* pInfoBar = pViewFrame->AppendInfoBar( "checkout", SfxResId( STR_NONCHECKEDOUT_DOCUMENT ) ); if (pInfoBar) { - PushButton* pBtn = new PushButton( &pViewFrame->GetWindow(), SfxResId( BT_CHECKOUT ) ); + VclPtrInstance<PushButton> pBtn( &pViewFrame->GetWindow(), SfxResId( BT_CHECKOUT ) ); pBtn->SetClickHdl( LINK( this, SfxBaseController, CheckOutHandler ) ); pInfoBar->addButton(pBtn); } diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx index 8bccea79f647..cfae5c1232e2 100644 --- a/sfx2/source/view/viewfrm.cxx +++ b/sfx2/source/view/viewfrm.cxx @@ -495,9 +495,9 @@ void SfxViewFrame::ExecReload_Impl( SfxRequest& rReq ) if ( nOpenMode == SFX_STREAM_READWRITE && !rReq.IsAPI() ) { // ::com::sun::star::sdbcx::User offering to open it as a template - MessageDialog aBox(&GetWindow(), SfxResId(STR_QUERY_OPENASTEMPLATE), + ScopedVclPtrInstance<MessageDialog> aBox(&GetWindow(), SfxResId(STR_QUERY_OPENASTEMPLATE), VCL_MESSAGE_QUESTION, VCL_BUTTONS_YES_NO); - if ( RET_YES == aBox.Execute() ) + if ( RET_YES == aBox->Execute() ) { SfxApplication* pApp = SfxGetpApp(); SfxAllItemSet aSet( pApp->GetPool() ); @@ -579,9 +579,9 @@ void SfxViewFrame::ExecReload_Impl( SfxRequest& rReq ) if ( bDo && GetFrame().DocIsModified_Impl() && !rReq.IsAPI() && ( !pSilentItem || !pSilentItem->GetValue() ) ) { - MessageDialog aBox(&GetWindow(), SfxResId(STR_QUERY_LASTVERSION), + ScopedVclPtrInstance<MessageDialog> aBox(&GetWindow(), SfxResId(STR_QUERY_LASTVERSION), VCL_MESSAGE_QUESTION, VCL_BUTTONS_YES_NO); - bDo = ( RET_YES == aBox.Execute() ); + bDo = ( RET_YES == aBox->Execute() ); } if ( bDo ) @@ -756,9 +756,9 @@ void SfxViewFrame::ExecReload_Impl( SfxRequest& rReq ) if ( bForEdit && SID_EDITDOC == rReq.GetSlot() ) { // ask user for opening as template - MessageDialog aBox(&GetWindow(), SfxResId(STR_QUERY_OPENASTEMPLATE), + ScopedVclPtrInstance<MessageDialog> aBox(&GetWindow(), SfxResId(STR_QUERY_OPENASTEMPLATE), VCL_MESSAGE_QUESTION, VCL_BUTTONS_YES_NO); - if ( RET_YES == aBox.Execute() ) + if ( RET_YES == aBox->Execute() ) { SfxAllItemSet aSet( pApp->GetPool() ); aSet.Put( SfxStringItem( SID_FILE_NAME, pMedium->GetName() ) ); @@ -1369,7 +1369,7 @@ void SfxViewFrame::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) SfxInfoBarWindow* pInfoBar = AppendInfoBar("readonly", SfxResId(STR_READONLY_DOCUMENT)); if (pInfoBar) { - PushButton* pBtn = new PushButton( &GetWindow(), SfxResId(BT_READONLY_EDIT)); + VclPtrInstance<PushButton> pBtn( &GetWindow(), SfxResId(BT_READONLY_EDIT)); pBtn->SetClickHdl(LINK(this, SfxViewFrame, SwitchReadOnlyHandler)); pInfoBar->addButton(pBtn); } @@ -1468,7 +1468,7 @@ SfxViewFrame::SfxViewFrame rFrame.SetFrameType_Impl( GetFrameType() | SFXFRAME_HASTITLE ); Construct_Impl( pObjShell ); - pImp->pWindow = new SfxFrameViewWindow_Impl( this, rFrame.GetWindow() ); + pImp->pWindow = VclPtr<SfxFrameViewWindow_Impl>::Create( this, rFrame.GetWindow() ); pImp->pWindow->SetSizePixel( rFrame.GetWindow().GetOutputSizePixel() ); rFrame.SetOwnsBindings_Impl( true ); rFrame.CreateWorkWindow_Impl(); @@ -1477,7 +1477,6 @@ SfxViewFrame::SfxViewFrame SfxViewFrame::~SfxViewFrame() { - SetDowning_Impl(); if ( SfxViewFrame::Current() == this ) @@ -1489,7 +1488,8 @@ SfxViewFrame::~SfxViewFrame() // The Bindings delete the Frame! KillDispatcher_Impl(); - delete pImp->pWindow; + pImp->pWindow.disposeAndClear(); + pImp->pFocusWin.clear(); if ( GetFrame().GetCurrentViewFrame() == this ) GetFrame().SetCurrentViewFrame_Impl( NULL ); diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 5d46afde66f3..d478a4a847d2 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -59,7 +59,7 @@ class SfxPrinterController : public vcl::PrinterController, public SfxListener Any maCompleteSelection; Any maSelection; Reference< view::XRenderable > mxRenderable; - mutable Printer* mpLastPrinter; + mutable VclPtr<Printer> mpLastPrinter; mutable Reference<awt::XDevice> mxDevice; SfxViewShell* mpViewShell; SfxObjectShell* mpObjectShell; @@ -74,7 +74,7 @@ class SfxPrinterController : public vcl::PrinterController, public SfxListener const Any& getSelectionObject() const; public: - SfxPrinterController( const std::shared_ptr<Printer>& i_rPrinter, + SfxPrinterController( const VclPtr<Printer>& i_rPrinter, const Any& i_rComplete, const Any& i_rSelection, const Any& i_rViewProp, @@ -94,7 +94,7 @@ public: virtual void jobFinished( com::sun::star::view::PrintableState ) SAL_OVERRIDE; }; -SfxPrinterController::SfxPrinterController( const std::shared_ptr<Printer>& i_rPrinter, +SfxPrinterController::SfxPrinterController( const VclPtr<Printer>& i_rPrinter, const Any& i_rComplete, const Any& i_rSelection, const Any& i_rViewProp, @@ -204,8 +204,8 @@ const Any& SfxPrinterController::getSelectionObject() const Sequence< beans::PropertyValue > SfxPrinterController::getMergedOptions() const { - std::shared_ptr<Printer> xPrinter(getPrinter()); - if (xPrinter.get() != mpLastPrinter) + VclPtr<Printer> xPrinter( getPrinter() ); + if( xPrinter.get() != mpLastPrinter ) { mpLastPrinter = xPrinter.get(); VCLXDevice* pXDevice = new VCLXDevice(); @@ -224,8 +224,8 @@ Sequence< beans::PropertyValue > SfxPrinterController::getMergedOptions() const int SfxPrinterController::getPageCount() const { int nPages = 0; - std::shared_ptr<Printer> xPrinter(getPrinter()); - if (mxRenderable.is() && xPrinter) + VclPtr<Printer> xPrinter( getPrinter() ); + if( mxRenderable.is() && xPrinter ) { Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); try @@ -244,7 +244,7 @@ int SfxPrinterController::getPageCount() const Sequence< beans::PropertyValue > SfxPrinterController::getPageParameters( int i_nPage ) const { - std::shared_ptr<Printer> xPrinter(getPrinter()); + VclPtr<Printer> xPrinter( getPrinter() ); Sequence< beans::PropertyValue > aResult; if (mxRenderable.is() && xPrinter) @@ -269,8 +269,8 @@ Sequence< beans::PropertyValue > SfxPrinterController::getPageParameters( int i_ void SfxPrinterController::printPage( int i_nPage ) const { - std::shared_ptr<Printer> xPrinter(getPrinter()); - if (mxRenderable.is() && xPrinter) + VclPtr<Printer> xPrinter( getPrinter() ); + if( mxRenderable.is() && xPrinter ) { Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() ); try @@ -384,7 +384,7 @@ void SfxPrinterController::jobFinished( com::sun::star::view::PrintableState nSt pDocPrt->SetJobSetup( getPrinter()->GetJobSetup() ); else { - SfxPrinter* pNewPrt = new SfxPrinter( pDocPrt->GetOptions().Clone(), getPrinter()->GetName() ); + VclPtr<SfxPrinter> pNewPrt = VclPtr<SfxPrinter>::Create( pDocPrt->GetOptions().Clone(), getPrinter()->GetName() ); pNewPrt->SetJobSetup( getPrinter()->GetJobSetup() ); mpViewShell->SetPrinter( pNewPrt, SfxPrinterChangeFlags::PRINTER | SfxPrinterChangeFlags::JOBSETUP ); } @@ -411,9 +411,9 @@ class SfxDialogExecutor_Impl { private: SfxViewShell* _pViewSh; - PrinterSetupDialog* _pSetupParent; + VclPtr<PrinterSetupDialog> _pSetupParent; SfxItemSet* _pOptions; - bool _bHelpDisabled; + bool _bHelpDisabled; DECL_LINK( Execute, void * ); @@ -451,8 +451,8 @@ IMPL_LINK_NOARG(SfxDialogExecutor_Impl, Execute) return 0; // Create Dialog - boost::scoped_ptr<SfxPrintOptionsDialog> pDlg(new SfxPrintOptionsDialog( static_cast<vcl::Window*>(_pSetupParent), - _pViewSh, _pOptions )); + VclPtrInstance<SfxPrintOptionsDialog> pDlg( static_cast<vcl::Window*>(_pSetupParent), + _pViewSh, _pOptions ); if ( _bHelpDisabled ) pDlg->DisableHelp(); if ( pDlg->Execute() == RET_OK ) @@ -469,7 +469,7 @@ IMPL_LINK_NOARG(SfxDialogExecutor_Impl, Execute) Internal method for setting the differences between 'pNewPrinter' to the current printer. pNewPrinter is either taken over or deleted. */ -SfxPrinter* SfxViewShell::SetPrinter_Impl( SfxPrinter *pNewPrinter ) +SfxPrinter* SfxViewShell::SetPrinter_Impl( VclPtr<SfxPrinter>& pNewPrinter ) { // get current Printer SfxPrinter *pDocPrinter = GetPrinter(); @@ -558,7 +558,7 @@ SfxPrinter* SfxViewShell::SetPrinter_Impl( SfxPrinter *pNewPrinter ) // Keep old changed Printer. pDocPrinter->SetPrinterProps( pNewPrinter ); - delete pNewPrinter; + pNewPrinter.disposeAndClear(); } if ( SfxPrinterChangeFlags::NONE != nChangedFlags ) @@ -582,7 +582,7 @@ void SfxViewShell::StartPrint( const uno::Sequence < beans::PropertyValue >& rPr aSelection <<= GetObjectShell()->GetModel(); Any aComplete( makeAny( GetObjectShell()->GetModel() ) ); Any aViewProp( makeAny( xController ) ); - std::shared_ptr<Printer> aPrt; + VclPtr<Printer> aPrt; const beans::PropertyValue* pVal = rProps.getConstArray(); for( sal_Int32 i = 0; i < rProps.getLength(); i++ ) @@ -591,7 +591,7 @@ void SfxViewShell::StartPrint( const uno::Sequence < beans::PropertyValue >& rPr { OUString aPrinterName; pVal[i].Value >>= aPrinterName; - aPrt.reset( new Printer( aPrinterName ) ); + aPrt.reset( VclPtr<Printer>::Create( aPrinterName ) ); break; } } @@ -637,7 +637,7 @@ Printer* SfxViewShell::GetActivePrinter() const void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) { sal_uInt16 nDialogRet = RET_CANCEL; - SfxPrinter* pPrinter = 0; + VclPtr<SfxPrinter> pPrinter; bool bSilent = false; // does the function have been called by the user interface or by an API call @@ -770,11 +770,11 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) if ( pPrinterItem ) { // use PrinterName parameter to create a printer - pPrinter = new SfxPrinter( pDocPrinter->GetOptions().Clone(), ((const SfxStringItem*) pPrinterItem)->GetValue() ); + pPrinter = VclPtr<SfxPrinter>::Create( pDocPrinter->GetOptions().Clone(), ((const SfxStringItem*) pPrinterItem)->GetValue() ); // if printer is unknown, it can't be used - now printer from document will be used if ( !pPrinter->IsKnown() ) - DELETEZ(pPrinter); + pPrinter.disposeAndClear(); } if ( SID_PRINTER_NAME == nId ) @@ -816,11 +816,11 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) if ( !bIsAPI ) { // PrinterDialog needs a temporary printer - SfxPrinter* pDlgPrinter = pPrinter->Clone(); + VclPtr<SfxPrinter> pDlgPrinter = pPrinter->Clone(); nDialogRet = 0; // execute PrinterSetupDialog - PrinterSetupDialog* pPrintSetupDlg = new PrinterSetupDialog( GetWindow() ); + VclPtrInstance<PrinterSetupDialog> pPrintSetupDlg( GetWindow() ); SfxDialogExecutor_Impl* pExecutor = 0; if (pImp->m_bHasPrintOptions && HasPrintOptionsPage()) @@ -847,7 +847,7 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) } } - DELETEZ( pPrintSetupDlg ); + pPrintSetupDlg.disposeAndClear(); delete pExecutor; // no recording of PrinterSetup except printer name (is printer dependent) @@ -868,13 +868,12 @@ void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq ) // forget new printer, it was taken over (as pPrinter) or deleted pDlgPrinter = NULL; - } else { // PrinterDialog is used to transfer information on printing, // so it will only be deleted here if dialog was cancelled - DELETEZ( pDlgPrinter ); + pDlgPrinter.disposeAndClear(); rReq.Ignore(); } } @@ -892,13 +891,13 @@ sal_uInt16 SfxViewShell::SetPrinter( SfxPrinter* /*pNewPrinter*/, SfxPrinterChan return 0; } -SfxTabPage* SfxViewShell::CreatePrintOptionsPage +VclPtr<SfxTabPage> SfxViewShell::CreatePrintOptionsPage ( vcl::Window* /*pParent*/, const SfxItemSet& /*rOptions*/ ) { - return 0; + return VclPtr<SfxTabPage>(); } bool SfxViewShell::HasPrintOptionsPage() const diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index 111b09c60619..5cda42ef38dc 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -594,8 +594,8 @@ void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq ) if ( eResult == SfxMailModel::SEND_MAIL_ERROR ) { - MessageDialog aBox( SfxGetpApp()->GetTopWindow(), SfxResId( STR_ERROR_SEND_MAIL ), VCL_MESSAGE_INFO); - aBox.Execute(); + ScopedVclPtrInstance< MessageDialog > aBox(SfxGetpApp()->GetTopWindow(), SfxResId( STR_ERROR_SEND_MAIL ), VCL_MESSAGE_INFO); + aBox->Execute(); rReq.Ignore(); } else @@ -614,8 +614,8 @@ void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq ) SfxMailModel::SendMailResult eResult = aModel.SaveAndSend( xFrame, OUString() ); if( eResult == SfxMailModel::SEND_MAIL_ERROR ) { - MessageDialog aBox( SfxGetpApp()->GetTopWindow(), SfxResId( STR_ERROR_SEND_MAIL ), VCL_MESSAGE_INFO); - aBox.Execute(); + ScopedVclPtrInstance< MessageDialog > aBox(SfxGetpApp()->GetTopWindow(), SfxResId( STR_ERROR_SEND_MAIL ), VCL_MESSAGE_INFO); + aBox->Execute(); rReq.Ignore(); } else @@ -1310,8 +1310,8 @@ bool SfxViewShell::PrepareClose { if ( bUI ) { - MessageDialog aInfoBox( &GetViewFrame()->GetWindow(), SfxResId( STR_CANT_CLOSE ), VCL_MESSAGE_INFO ); - aInfoBox.Execute(); + ScopedVclPtrInstance< MessageDialog > aInfoBox(&GetViewFrame()->GetWindow(), SfxResId( STR_CANT_CLOSE ), VCL_MESSAGE_INFO ); + aInfoBox->Execute(); } return false; |