diff options
Diffstat (limited to 'sfx2/source')
66 files changed, 658 insertions, 334 deletions
diff --git a/sfx2/source/appl/childwin.cxx b/sfx2/source/appl/childwin.cxx index 2a904ca2421c..1ec9b03fcd02 100644 --- a/sfx2/source/appl/childwin.cxx +++ b/sfx2/source/appl/childwin.cxx @@ -199,7 +199,6 @@ void SfxChildWindow::Destroy() SfxChildWindow::~SfxChildWindow() { delete pContext; - delete pWindow; delete pImp; } @@ -336,16 +335,16 @@ SfxChildWinInfo SfxChildWindow::GetInfo() const sal_uIntPtr nMask = WINDOWSTATE_MASK_POS | WINDOWSTATE_MASK_STATE; if ( pWindow->GetStyle() & WB_SIZEABLE ) nMask |= ( WINDOWSTATE_MASK_WIDTH | WINDOWSTATE_MASK_HEIGHT ); - aInfo.aWinState = static_cast<SystemWindow*>(pWindow)->GetWindowState( nMask ); + aInfo.aWinState = static_cast<SystemWindow*>(pWindow.get())->GetWindowState( nMask ); } else if ( pWindow->GetType() == RSC_DOCKINGWINDOW ) { - if (static_cast<DockingWindow*>(pWindow)->GetFloatingWindow() ) - aInfo.aWinState = static_cast<DockingWindow*>(pWindow)->GetFloatingWindow()->GetWindowState(); + if (static_cast<DockingWindow*>(pWindow.get())->GetFloatingWindow() ) + aInfo.aWinState = static_cast<DockingWindow*>(pWindow.get())->GetFloatingWindow()->GetWindowState(); else { SfxChildWinInfo aTmpInfo; - static_cast<SfxDockingWindow*>(pWindow)->FillInfo( aTmpInfo ); + static_cast<SfxDockingWindow*>(pWindow.get())->FillInfo( aTmpInfo ); aInfo.aExtraString = aTmpInfo.aExtraString; } } @@ -518,7 +517,6 @@ SfxChildWindowContext::SfxChildWindowContext( sal_uInt16 nId ) SfxChildWindowContext::~SfxChildWindowContext() { - delete pWindow; } FloatingWindow* SfxChildWindowContext::GetFloatingWindow() const @@ -654,10 +652,10 @@ void SfxChildWindow::Hide() switch ( pWindow->GetType() ) { case RSC_DOCKINGWINDOW : - static_cast<DockingWindow*>(pWindow)->Hide(); + static_cast<DockingWindow*>(pWindow.get())->Hide(); break; case RSC_TOOLBOX : - static_cast<ToolBox*>(pWindow)->Hide(); + static_cast<ToolBox*>(pWindow.get())->Hide(); break; default: pWindow->Hide(); @@ -670,10 +668,10 @@ void SfxChildWindow::Show( sal_uInt16 nFlags ) switch ( pWindow->GetType() ) { case RSC_DOCKINGWINDOW : - static_cast<DockingWindow*>(pWindow)->Show( true, nFlags ); + static_cast<DockingWindow*>(pWindow.get())->Show( true, nFlags ); break; case RSC_TOOLBOX : - static_cast<ToolBox*>(pWindow)->Show( true, nFlags ); + static_cast<ToolBox*>(pWindow.get())->Show( true, nFlags ); break; default: pWindow->Show( true, nFlags ); diff --git a/sfx2/source/appl/fileobj.hxx b/sfx2/source/appl/fileobj.hxx index 78aa1fb4cef4..87ae93d9ef93 100644 --- a/sfx2/source/appl/fileobj.hxx +++ b/sfx2/source/appl/fileobj.hxx @@ -33,7 +33,7 @@ class SvFileObject : public sfx2::SvLinkSource OUString sReferer; Link aEndEditLink; SfxMediumRef xMed; - vcl::Window* pOldParent; + VclPtr<vcl::Window> pOldParent; sal_uInt8 nType; diff --git a/sfx2/source/appl/helpinterceptor.hxx b/sfx2/source/appl/helpinterceptor.hxx index e34686e7b40d..a990518bc7a4 100644 --- a/sfx2/source/appl/helpinterceptor.hxx +++ b/sfx2/source/appl/helpinterceptor.hxx @@ -28,6 +28,7 @@ #include <cppuhelper/implbase1.hxx> #include <com/sun/star/frame/XStatusListener.hpp> #include <tools/link.hxx> +#include <vcl/vclptr.hxx> #include <vector> struct HelpHistoryEntry_Impl @@ -63,7 +64,7 @@ friend class SfxHelpWindow_Impl; ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener > m_xListener; HelpHistoryList_Impl* m_pHistory; - SfxHelpWindow_Impl* m_pWindow; + VclPtr<SfxHelpWindow_Impl> m_pWindow; sal_uIntPtr m_nCurPos; OUString m_aCurrentURL; com::sun::star::uno::Any m_aViewData; diff --git a/sfx2/source/appl/impldde.cxx b/sfx2/source/appl/impldde.cxx index f66a2b0a3d6e..ecc5208f2fff 100644 --- a/sfx2/source/appl/impldde.cxx +++ b/sfx2/source/appl/impldde.cxx @@ -57,14 +57,16 @@ namespace sfx2 class SvDDELinkEditDialog : public ModalDialog { - Edit *m_pEdDdeApp; - Edit *m_pEdDdeTopic; - Edit *m_pEdDdeItem; - OKButton *m_pOKButton; + VclPtr<Edit> m_pEdDdeApp; + VclPtr<Edit> m_pEdDdeTopic; + VclPtr<Edit> m_pEdDdeItem; + VclPtr<OKButton> m_pOKButton; DECL_STATIC_LINK( SvDDELinkEditDialog, EditHdl_Impl, Edit* ); public: SvDDELinkEditDialog( vcl::Window* pParent, SvBaseLink* ); + virtual ~SvDDELinkEditDialog(); + virtual void dispose() SAL_OVERRIDE; OUString GetCmd() const; }; @@ -90,6 +92,20 @@ SvDDELinkEditDialog::SvDDELinkEditDialog( vcl::Window* pParent, SvBaseLink* pLin m_pOKButton->Enable( !sServer.isEmpty() && !sTopic.isEmpty() && !sItem.isEmpty() ); } +SvDDELinkEditDialog::~SvDDELinkEditDialog() +{ + dispose(); +} + +void SvDDELinkEditDialog::dispose() +{ + m_pEdDdeApp.clear(); + m_pEdDdeTopic.clear(); + m_pEdDdeItem.clear(); + m_pOKButton.clear(); + ModalDialog::dispose(); +} + OUString SvDDELinkEditDialog::GetCmd() const { OUString sCmd( m_pEdDdeApp->GetText() ), sRet; diff --git a/sfx2/source/appl/lnkbase2.cxx b/sfx2/source/appl/lnkbase2.cxx index 4f0aa7382a6b..2de98192935b 100644 --- a/sfx2/source/appl/lnkbase2.cxx +++ b/sfx2/source/appl/lnkbase2.cxx @@ -45,8 +45,8 @@ class ImplDdeItem; struct BaseLink_Impl { Link m_aEndEditLink; - LinkManager* m_pLinkMgr; - vcl::Window* m_pParentWin; + LinkManager* m_pLinkMgr; + VclPtr<vcl::Window> m_pParentWin; FileDialogHelper* m_pFileDlg; bool m_bIsConnect; diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx index 78c2df24484b..333e07bc9ad0 100644 --- a/sfx2/source/appl/newhelp.cxx +++ b/sfx2/source/appl/newhelp.cxx @@ -432,6 +432,17 @@ HelpTabPage_Impl::HelpTabPage_Impl(vcl::Window* pParent, SfxHelpIndexWindow_Impl { } +HelpTabPage_Impl::~HelpTabPage_Impl() +{ + dispose(); +} + +void HelpTabPage_Impl::dispose() +{ + m_pIdxWin.clear(); + TabPage::dispose(); +} + // class ContentTabPage_Impl --------------------------------------------- ContentTabPage_Impl::ContentTabPage_Impl(vcl::Window* pParent, SfxHelpIndexWindow_Impl* _pIdxWin) : HelpTabPage_Impl(pParent, _pIdxWin, "HelpContentPage", @@ -443,6 +454,17 @@ ContentTabPage_Impl::ContentTabPage_Impl(vcl::Window* pParent, SfxHelpIndexWindo m_pContentBox->set_height_request(aSize.Height()); } +ContentTabPage_Impl::~ContentTabPage_Impl() +{ + dispose(); +} + +void ContentTabPage_Impl::dispose() +{ + m_pContentBox.clear(); + HelpTabPage_Impl::dispose(); +} + void ContentTabPage_Impl::ActivatePage() { if ( !m_pIdxWin->WasCursorLeftOrRight() ) @@ -557,6 +579,8 @@ IndexTabPage_Impl::~IndexTabPage_Impl() void IndexTabPage_Impl::dispose() { ClearIndex(); + m_pIndexCB.clear(); + m_pOpenBtn.clear(); HelpTabPage_Impl::dispose(); } @@ -984,6 +1008,13 @@ void SearchTabPage_Impl::dispose() aUserData = comphelper::string::stripEnd(aUserData, ';'); Any aUserItem = makeAny( OUString( aUserData ) ); aViewOpt.SetUserItem( USERITEM_NAME, aUserItem ); + + m_pSearchED.clear(); + m_pSearchBtn.clear(); + m_pFullWordsCB.clear(); + m_pScopeCB.clear(); + m_pResultsLB.clear(); + m_pOpenBtn.clear(); HelpTabPage_Impl::dispose(); } @@ -1295,6 +1326,17 @@ BookmarksTabPage_Impl::BookmarksTabPage_Impl(vcl::Window* pParent, SfxHelpIndexW } } +BookmarksTabPage_Impl::~BookmarksTabPage_Impl() +{ + dispose(); +} + +void BookmarksTabPage_Impl::dispose() +{ + m_pBookmarksBox.clear(); + m_pBookmarksPB.clear(); + HelpTabPage_Impl::dispose(); +} IMPL_LINK_NOARG(BookmarksTabPage_Impl, OpenHdl) @@ -1447,10 +1489,10 @@ void SfxHelpIndexWindow_Impl::dispose() { sfx2::RemoveFromTaskPaneList( this ); - DELETEZ( pCPage ); - DELETEZ( pIPage ); - DELETEZ( pSPage ); - DELETEZ( pBPage ); + pCPage.clear(); + pIPage.clear(); + pSPage.clear(); + pBPage.clear(); for ( sal_uInt16 i = 0; i < m_pActiveLB->GetEntryCount(); ++i ) delete static_cast<OUString*>(m_pActiveLB->GetEntryData(i)); @@ -1459,7 +1501,9 @@ void SfxHelpIndexWindow_Impl::dispose() aViewOpt.SetPageID( (sal_Int32)m_pTabCtrl->GetCurPageId() ); disposeBuilder(); - + m_pActiveLB.clear(); + m_pTabCtrl.clear(); + pParentWin.clear(); vcl::Window::dispose(); } @@ -1933,9 +1977,11 @@ void SfxHelpTextWindow_Impl::dispose() bIsInClose = true; SvtMiscOptions().RemoveListenerLink( LINK( this, SfxHelpTextWindow_Impl, NotifyHdl ) ); - delete pSrchDlg; + pSrchDlg.clear(); aToolBox.disposeAndClear(); aOnStartupCB.disposeAndClear(); + pHelpWin.clear(); + pTextWin.clear(); vcl::Window::dispose(); } @@ -2308,11 +2354,9 @@ IMPL_LINK( SfxHelpTextWindow_Impl, FindHdl, sfx2::SearchDialog*, pDlg ) -IMPL_LINK( SfxHelpTextWindow_Impl, CloseHdl, sfx2::SearchDialog*, pDlg ) +IMPL_LINK( SfxHelpTextWindow_Impl, CloseHdl, sfx2::SearchDialog*, /*pDlg*/ ) { - if ( pDlg ) - delete pSrchDlg; - pSrchDlg = NULL; + pSrchDlg.clear(); return 0; } @@ -3036,12 +3080,10 @@ SfxHelpWindow_Impl::~SfxHelpWindow_Impl() void SfxHelpWindow_Impl::dispose() { SaveConfig(); - vcl::Window* pDel = pIndexWin; - pIndexWin = NULL; - delete pDel; + pIndexWin.clear(); pTextWin->CloseFrame(); - delete pTextWin; + pTextWin.clear(); SplitWindow::dispose(); } @@ -3249,7 +3291,16 @@ SfxAddHelpBookmarkDialog_Impl::SfxAddHelpBookmarkDialog_Impl(vcl::Window* pParen SetText(get<FixedText>("alttitle")->GetText()); } +SfxAddHelpBookmarkDialog_Impl::~SfxAddHelpBookmarkDialog_Impl() +{ + dispose(); +} +void SfxAddHelpBookmarkDialog_Impl::dispose() +{ + m_pTitleED.clear(); + ModalDialog::dispose(); +} void SfxAddHelpBookmarkDialog_Impl::SetTitle( const OUString& rTitle ) { diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx index 38d15e84e025..45ceb3007468 100644 --- a/sfx2/source/appl/newhelp.hxx +++ b/sfx2/source/appl/newhelp.hxx @@ -76,11 +76,13 @@ class SfxHelpIndexWindow_Impl; class HelpTabPage_Impl : public TabPage { protected: - SfxHelpIndexWindow_Impl* m_pIdxWin; + VclPtr<SfxHelpIndexWindow_Impl> m_pIdxWin; public: HelpTabPage_Impl(vcl::Window* pParent, SfxHelpIndexWindow_Impl* _pIdxWin, const OString& rID, const OUString& rUIXMLDescription); + virtual ~HelpTabPage_Impl(); + virtual void dispose() SAL_OVERRIDE; virtual Control* GetLastFocusControl() = 0; }; @@ -90,10 +92,12 @@ public: class ContentTabPage_Impl : public HelpTabPage_Impl { private: - ContentListBox_Impl* m_pContentBox; + VclPtr<ContentListBox_Impl> m_pContentBox; public: ContentTabPage_Impl(vcl::Window* pParent, SfxHelpIndexWindow_Impl* _pIdxWin); + virtual ~ContentTabPage_Impl(); + virtual void dispose() SAL_OVERRIDE; virtual void ActivatePage() SAL_OVERRIDE; virtual Control* GetLastFocusControl() SAL_OVERRIDE; @@ -119,8 +123,8 @@ public: class IndexTabPage_Impl : public HelpTabPage_Impl { private: - IndexBox_Impl* m_pIndexCB; - PushButton* m_pOpenBtn; + VclPtr<IndexBox_Impl> m_pIndexCB; + VclPtr<PushButton> m_pOpenBtn; Idle aFactoryIdle; Timer aKeywordTimer; @@ -196,12 +200,12 @@ public: class SearchTabPage_Impl : public HelpTabPage_Impl { private: - SearchBox_Impl* m_pSearchED; - PushButton* m_pSearchBtn; - CheckBox* m_pFullWordsCB; - CheckBox* m_pScopeCB; - SearchResultsBox_Impl* m_pResultsLB; - PushButton* m_pOpenBtn; + VclPtr<SearchBox_Impl> m_pSearchED; + VclPtr<PushButton> m_pSearchBtn; + VclPtr<CheckBox> m_pFullWordsCB; + VclPtr<CheckBox> m_pScopeCB; + VclPtr<SearchResultsBox_Impl> m_pResultsLB; + VclPtr<PushButton> m_pOpenBtn; OUString aFactory; @@ -252,13 +256,15 @@ public: class BookmarksTabPage_Impl : public HelpTabPage_Impl { private: - BookmarksBox_Impl* m_pBookmarksBox; - PushButton* m_pBookmarksPB; + VclPtr<BookmarksBox_Impl> m_pBookmarksBox; + VclPtr<PushButton> m_pBookmarksPB; DECL_LINK(OpenHdl, void *); public: BookmarksTabPage_Impl( vcl::Window* pParent, SfxHelpIndexWindow_Impl* _pIdxWin ); + virtual ~BookmarksTabPage_Impl(); + virtual void dispose() SAL_OVERRIDE; virtual void ActivatePage() SAL_OVERRIDE; virtual Control* GetLastFocusControl() SAL_OVERRIDE; @@ -276,8 +282,8 @@ class SfxHelpWindow_Impl; class SfxHelpIndexWindow_Impl : public vcl::Window, public VclBuilderContainer { private: - ListBox* m_pActiveLB; - TabControl* m_pTabCtrl; + VclPtr<ListBox> m_pActiveLB; + VclPtr<TabControl> m_pTabCtrl; Idle aIdle; @@ -286,12 +292,12 @@ private: Link aIndexKeywordLink; OUString sKeyword; - SfxHelpWindow_Impl* pParentWin; + VclPtr<SfxHelpWindow_Impl> pParentWin; - ContentTabPage_Impl* pCPage; - IndexTabPage_Impl* pIPage; - SearchTabPage_Impl* pSPage; - BookmarksTabPage_Impl* pBPage; + VclPtr<ContentTabPage_Impl> pCPage; + VclPtr<IndexTabPage_Impl> pIPage; + VclPtr<SearchTabPage_Impl> pSPage; + VclPtr<BookmarksTabPage_Impl> pBPage; long nMinWidth; bool bWasCursorLeftOrRight; @@ -419,9 +425,9 @@ private: OUString aOnStartupText; OUString sCurrentFactory; - SfxHelpWindow_Impl* pHelpWin; - vcl::Window* pTextWin; - sfx2::SearchDialog* pSrchDlg; + VclPtr<SfxHelpWindow_Impl> pHelpWin; + VclPtr<vcl::Window> pTextWin; + VclPtr<sfx2::SearchDialog> pSrchDlg; ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 > xFrame; ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator > @@ -489,8 +495,8 @@ friend class SfxHelpIndexWindow_Impl; ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 > xFrame; - SfxHelpIndexWindow_Impl* pIndexWin; - SfxHelpTextWindow_Impl* pTextWin; + VclPtr<SfxHelpIndexWindow_Impl> pIndexWin; + VclPtr<SfxHelpTextWindow_Impl> pTextWin; HelpInterceptor_Impl* pHelpInterceptor; HelpListener_Impl* pHelpListener; @@ -561,9 +567,11 @@ public: class SfxAddHelpBookmarkDialog_Impl : public ModalDialog { private: - Edit* m_pTitleED; + VclPtr<Edit> m_pTitleED; public: SfxAddHelpBookmarkDialog_Impl( vcl::Window* pParent, bool bRename = true ); + virtual ~SfxAddHelpBookmarkDialog_Impl(); + virtual void dispose() SAL_OVERRIDE; void SetTitle( const OUString& rTitle ); OUString GetTitle() const { return m_pTitleED->GetText(); } diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx index 7f3920dcc088..1591113ab7ee 100644 --- a/sfx2/source/appl/workwin.cxx +++ b/sfx2/source/appl/workwin.cxx @@ -853,7 +853,7 @@ SvBorder SfxWorkWindow::Arrange_Impl() case SfxChildAlignment::LOWESTTOP: aSize.Width() = aTmp.GetWidth(); if ( pCli->pWin->GetType() == WINDOW_SPLITWINDOW ) - aSize = static_cast<SplitWindow *>(pCli->pWin)->CalcLayoutSizePixel( aSize ); + aSize = static_cast<SplitWindow *>(pCli->pWin.get())->CalcLayoutSizePixel( aSize ); bAllowHiding = false; aBorder.Top() += aSize.Height(); aPos = aTmp.TopLeft(); @@ -868,7 +868,7 @@ SvBorder SfxWorkWindow::Arrange_Impl() case SfxChildAlignment::HIGHESTBOTTOM: aSize.Width() = aTmp.GetWidth(); if ( pCli->pWin->GetType() == WINDOW_SPLITWINDOW ) - aSize = static_cast<SplitWindow *>(pCli->pWin)->CalcLayoutSizePixel( aSize ); + aSize = static_cast<SplitWindow *>(pCli->pWin.get())->CalcLayoutSizePixel( aSize ); aBorder.Bottom() += aSize.Height(); aPos = aTmp.BottomLeft(); aPos.Y() -= (aSize.Height()-1); @@ -883,7 +883,7 @@ SvBorder SfxWorkWindow::Arrange_Impl() case SfxChildAlignment::TOOLBOXLEFT: aSize.Height() = aTmp.GetHeight(); if ( pCli->pWin->GetType() == WINDOW_SPLITWINDOW ) - aSize = static_cast<SplitWindow *>(pCli->pWin)->CalcLayoutSizePixel( aSize ); + aSize = static_cast<SplitWindow *>(pCli->pWin.get())->CalcLayoutSizePixel( aSize ); bAllowHiding = false; aBorder.Left() += aSize.Width(); aPos = aTmp.TopLeft(); @@ -898,7 +898,7 @@ SvBorder SfxWorkWindow::Arrange_Impl() case SfxChildAlignment::TOOLBOXRIGHT: aSize.Height() = aTmp.GetHeight(); if ( pCli->pWin->GetType() == WINDOW_SPLITWINDOW ) - aSize = static_cast<SplitWindow *>(pCli->pWin)->CalcLayoutSizePixel( aSize ); + aSize = static_cast<SplitWindow *>(pCli->pWin.get())->CalcLayoutSizePixel( aSize ); aBorder.Right() += aSize.Width(); aPos = aTmp.TopRight(); aPos.X() -= (aSize.Width()-1); @@ -1071,10 +1071,10 @@ void SfxWorkWindow::ShowChildren_Impl() switch ( pCli->pWin->GetType() ) { case RSC_DOCKINGWINDOW : - static_cast<DockingWindow*>(pCli->pWin)->Show( true, nFlags ); + static_cast<DockingWindow*>(pCli->pWin.get())->Show( true, nFlags ); break; case RSC_SPLITWINDOW : - static_cast<SplitWindow*>(pCli->pWin)->Show( true, nFlags ); + static_cast<SplitWindow*>(pCli->pWin.get())->Show( true, nFlags ); break; default: pCli->pWin->Show( true, nFlags ); @@ -1088,7 +1088,7 @@ void SfxWorkWindow::ShowChildren_Impl() switch ( pCli->pWin->GetType() ) { case RSC_DOCKINGWINDOW : - static_cast<DockingWindow*>(pCli->pWin)->Hide(); + static_cast<DockingWindow*>(pCli->pWin.get())->Hide(); break; default: pCli->pWin->Hide(); @@ -1111,7 +1111,7 @@ void SfxWorkWindow::HideChildren_Impl() switch ( pChild->pWin->GetType() ) { case RSC_DOCKINGWINDOW : - static_cast<DockingWindow*>(pChild->pWin)->Hide(); + static_cast<DockingWindow*>(pChild->pWin.get())->Hide(); break; default: pChild->pWin->Hide(); diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index c62eedabb69f..8dd755cba732 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -78,7 +78,7 @@ void ThumbnailView::dispose() if (xComponent.is()) xComponent->dispose (); - delete mpScrBar; + mpScrBar.clear(); delete mpItemAttrs; delete mpProcessor; diff --git a/sfx2/source/control/thumbnailviewacc.cxx b/sfx2/source/control/thumbnailviewacc.cxx index 4d0886e8de2f..3ba161b65c3a 100644 --- a/sfx2/source/control/thumbnailviewacc.cxx +++ b/sfx2/source/control/thumbnailviewacc.cxx @@ -593,7 +593,7 @@ void ThumbnailViewAcc::ThrowIfDisposed (void) } else { - DBG_ASSERT (mpParent!=NULL, "ValueSetAcc not disposed but mpParent == NULL"); + DBG_ASSERT (mpParent!=nullptr, "ValueSetAcc not disposed but mpParent == NULL"); } } diff --git a/sfx2/source/control/thumbnailviewacc.hxx b/sfx2/source/control/thumbnailviewacc.hxx index 3eae0c037e66..4efb7f96e1c8 100644 --- a/sfx2/source/control/thumbnailviewacc.hxx +++ b/sfx2/source/control/thumbnailviewacc.hxx @@ -33,6 +33,7 @@ #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp> #include <com/sun/star/lang/DisposedException.hpp> +#include <vcl/vclptr.hxx> #include <vector> class ThumbnailView; @@ -78,7 +79,7 @@ public: // XComponent virtual void SAL_CALL dispose()throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE - { WeakComponentImplHelperBase::dispose(); } + { mpParent.clear(); WeakComponentImplHelperBase::dispose(); } virtual void SAL_CALL addEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & xListener)throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE { WeakComponentImplHelperBase::addEventListener(xListener); } virtual void SAL_CALL removeEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > & xListener)throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE @@ -129,7 +130,7 @@ public: private: ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener > > mxEventListeners; - ThumbnailView* mpParent; + VclPtr<ThumbnailView> mpParent; bool mbIsTransientChildrenDisabled; /// The current FOCUSED state. bool mbIsFocused; diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx index c866a8f9513c..4d265d75d311 100644 --- a/sfx2/source/control/thumbnailviewitem.cxx +++ b/sfx2/source/control/thumbnailviewitem.cxx @@ -117,7 +117,6 @@ ThumbnailViewItem::ThumbnailViewItem(ThumbnailView &rView, sal_uInt16 nId) ThumbnailViewItem::~ThumbnailViewItem() { - delete mpTitleED; if( mpxAcc ) { static_cast< ThumbnailViewItemAcc* >( mpxAcc->get() )->ParentDestroyed(); @@ -178,9 +177,9 @@ void ThumbnailViewItem::setEditTitle (bool edit, bool bChangeFocus) { mpTitleED->SetText(maTitle); updateTitleEditSize(); - static_cast<ResizableMultiLineEdit*>(mpTitleED)->SetInGrabFocus(true); + static_cast<ResizableMultiLineEdit*>(mpTitleED.get())->SetInGrabFocus(true); mpTitleED->GrabFocus(); - static_cast<ResizableMultiLineEdit*>(mpTitleED)->SetInGrabFocus(false); + static_cast<ResizableMultiLineEdit*>(mpTitleED.get())->SetInGrabFocus(false); } else if (bChangeFocus) { diff --git a/sfx2/source/dialog/alienwarn.cxx b/sfx2/source/dialog/alienwarn.cxx index e157e6ebfd85..81032bdd11d0 100644 --- a/sfx2/source/dialog/alienwarn.cxx +++ b/sfx2/source/dialog/alienwarn.cxx @@ -61,6 +61,8 @@ void SfxAlienWarningDialog::dispose() bool bChecked = m_pWarningOnBox->IsChecked(); if ( aSaveOpt.IsWarnAlienFormat() != bChecked ) aSaveOpt.SetWarnAlienFormat( bChecked ); + m_pKeepCurrentBtn.clear(); + m_pWarningOnBox.clear(); MessageDialog::dispose(); } diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx index fcb9074ecfc2..39bee6d64b43 100644 --- a/sfx2/source/dialog/backingwindow.cxx +++ b/sfx2/source/dialog/backingwindow.cxx @@ -203,8 +203,7 @@ void BackingWindow::dispose() // deregister drag&drop helper if (mxDropTargetListener.is()) { - for (std::vector<vcl::Window*>::iterator aI = maDndWindows.begin(), - aEnd = maDndWindows.end(); aI != aEnd; ++aI) + for (auto aI = maDndWindows.begin(), aEnd = maDndWindows.end(); aI != aEnd; ++aI) { vcl::Window *pDndWin = *aI; css::uno::Reference< css::datatransfer::dnd::XDropTarget > xDropTarget = @@ -218,6 +217,27 @@ void BackingWindow::dispose() mxDropTargetListener = css::uno::Reference< css::datatransfer::dnd::XDropTargetListener >(); } disposeBuilder(); + mpOpenButton.clear(); + mpRecentButton.clear(); + mpTemplateButton.clear(); + mpCreateLabel.clear(); + mpWriterAllButton.clear(); + mpCalcAllButton.clear(); + mpImpressAllButton.clear(); + mpDrawAllButton.clear(); + mpDBAllButton.clear(); + mpMathAllButton.clear(); + mpHelpButton.clear(); + mpExtensionsButton.clear(); + mpAllButtonsBox.clear(); + mpButtonsBox.clear(); + mpSmallButtonsBox.clear(); + mpThinBox1.clear(); + mpThinBox2.clear(); + mpHelpBox.clear(); + mpExtensionsBox.clear(); + mpAllRecentThumbnails.clear(); + mpLocalView.clear(); vcl::Window::dispose(); } @@ -469,8 +489,7 @@ void BackingWindow::setOwningFrame( const com::sun::star::uno::Reference< com::s // establish drag&drop mode mxDropTargetListener.set(new OpenFileDropTargetListener(mxContext, mxFrame)); - for (std::vector<vcl::Window*>::iterator aI = maDndWindows.begin(), - aEnd = maDndWindows.end(); aI != aEnd; ++aI) + for (auto aI = maDndWindows.begin(), aEnd = maDndWindows.end(); aI != aEnd; ++aI) { vcl::Window *pDndWin = *aI; css::uno::Reference< css::datatransfer::dnd::XDropTarget > xDropTarget = diff --git a/sfx2/source/dialog/backingwindow.hxx b/sfx2/source/dialog/backingwindow.hxx index 023e1cb7e88b..a9a07f662e45 100644 --- a/sfx2/source/dialog/backingwindow.hxx +++ b/sfx2/source/dialog/backingwindow.hxx @@ -61,35 +61,35 @@ class BackingWindow /** helper for drag&drop. */ com::sun::star::uno::Reference< com::sun::star::datatransfer::dnd::XDropTargetListener > mxDropTargetListener; - PushButton* mpOpenButton; - PushButton* mpRecentButton; - MenuButton* mpTemplateButton; - - FixedText* mpCreateLabel; - - PushButton* mpWriterAllButton; - PushButton* mpCalcAllButton; - PushButton* mpImpressAllButton; - PushButton* mpDrawAllButton; - PushButton* mpDBAllButton; - PushButton* mpMathAllButton; - - PushButton* mpHelpButton; - PushButton* mpExtensionsButton; - - VclBox* mpAllButtonsBox; - VclBox* mpButtonsBox; - VclBox* mpSmallButtonsBox; - VclBox* mpThinBox1; - VclBox* mpThinBox2; - VclBox* mpHelpBox; - VclBox* mpExtensionsBox; - - RecentDocsView* mpAllRecentThumbnails; - TemplateDefaultView* mpLocalView; - bool mbLocalViewInitialized; - - std::vector<vcl::Window*> maDndWindows; + VclPtr<PushButton> mpOpenButton; + VclPtr<PushButton> mpRecentButton; + VclPtr<MenuButton> mpTemplateButton; + + VclPtr<FixedText> mpCreateLabel; + + VclPtr<PushButton> mpWriterAllButton; + VclPtr<PushButton> mpCalcAllButton; + VclPtr<PushButton> mpImpressAllButton; + VclPtr<PushButton> mpDrawAllButton; + VclPtr<PushButton> mpDBAllButton; + VclPtr<PushButton> mpMathAllButton; + + VclPtr<PushButton> mpHelpButton; + VclPtr<PushButton> mpExtensionsButton; + + VclPtr<VclBox> mpAllButtonsBox; + VclPtr<VclBox> mpButtonsBox; + VclPtr<VclBox> mpSmallButtonsBox; + VclPtr<VclBox> mpThinBox1; + VclPtr<VclBox> mpThinBox2; + VclPtr<VclBox> mpHelpBox; + VclPtr<VclBox> mpExtensionsBox; + + VclPtr<RecentDocsView> mpAllRecentThumbnails; + VclPtr<TemplateDefaultView> mpLocalView; + bool mbLocalViewInitialized; + + std::vector<VclPtr<vcl::Window> > maDndWindows; Rectangle maStartCentButtons; diff --git a/sfx2/source/dialog/basedlgs.cxx b/sfx2/source/dialog/basedlgs.cxx index e624ad6d8b13..3e2f0b0f2e44 100644 --- a/sfx2/source/dialog/basedlgs.cxx +++ b/sfx2/source/dialog/basedlgs.cxx @@ -45,6 +45,12 @@ using namespace ::com::sun::star::uno; #define USERITEM_NAME OUString("UserItem") +SingleTabDlgImpl::SingleTabDlgImpl() + : m_pSfxPage(NULL) + , m_pLine(NULL) + { + } + class SfxModelessDialog_Impl : public SfxListener { public: @@ -706,9 +712,10 @@ SfxSingleTabDialog::~SfxSingleTabDialog() void SfxSingleTabDialog::dispose() { - delete pImpl->m_pSfxPage; - delete pImpl->m_pLine; delete pImpl; + pOKBtn.clear(); + pCancelBtn.clear(); + pHelpBtn.clear(); SfxModalDialog::dispose(); } @@ -723,7 +730,7 @@ void SfxSingleTabDialog::SetTabPage(SfxTabPage* pTabPage, { SetUniqId(nSettingsId); - delete pImpl->m_pSfxPage; + pImpl->m_pSfxPage.clear(); pImpl->m_pSfxPage = pTabPage; fnGetRanges = pRangesFunc; diff --git a/sfx2/source/dialog/checkin.cxx b/sfx2/source/dialog/checkin.cxx index 61d963ef8a5e..b365adab07da 100644 --- a/sfx2/source/dialog/checkin.cxx +++ b/sfx2/source/dialog/checkin.cxx @@ -20,6 +20,19 @@ SfxCheckinDialog::SfxCheckinDialog( vcl::Window* pParent ) : m_pOKBtn->SetClickHdl( LINK( this, SfxCheckinDialog, OKHdl ) ); } +SfxCheckinDialog::~SfxCheckinDialog() +{ + dispose(); +} + +void SfxCheckinDialog::dispose() +{ + m_pCommentED.clear(); + m_pMajorCB.clear(); + m_pOKBtn.clear(); + ModalDialog::dispose(); +} + OUString SfxCheckinDialog::GetComment( ) { return m_pCommentED->GetText( ); diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx index 03b9028ea4ba..75581c9f63e7 100644 --- a/sfx2/source/dialog/dinfdlg.cxx +++ b/sfx2/source/dialog/dinfdlg.cxx @@ -626,6 +626,20 @@ SfxDocumentDescPage::SfxDocumentDescPage( vcl::Window * pParent, const SfxItemSe m_pCommentEd->set_height_request(m_pCommentEd->GetTextHeight() * 16); } +SfxDocumentDescPage::~SfxDocumentDescPage() +{ + dispose(); +} + +void SfxDocumentDescPage::dispose() +{ + m_pTitleEd.clear(); + m_pThemaEd.clear(); + m_pKeywordsEd.clear(); + m_pCommentEd.clear(); + SfxTabPage::dispose(); +} + SfxTabPage *SfxDocumentDescPage::Create(vcl::Window *pParent, const SfxItemSet *rItemSet) { return new SfxDocumentDescPage(pParent, *rItemSet); @@ -789,6 +803,33 @@ SfxDocumentPage::SfxDocumentPage(vcl::Window* pParent, const SfxItemSet& rItemSe m_pSignatureBtn->Disable(); } +SfxDocumentPage::~SfxDocumentPage() +{ + dispose(); +} + +void SfxDocumentPage::dispose() +{ + m_pBmp.clear(); + m_pNameED.clear(); + m_pChangePassBtn.clear(); + m_pShowTypeFT.clear(); + m_pReadOnlyCB.clear(); + m_pFileValFt.clear(); + m_pShowSizeFT.clear(); + m_pCreateValFt.clear(); + m_pChangeValFt.clear(); + m_pSignedValFt.clear(); + m_pSignatureBtn.clear(); + m_pPrintValFt.clear(); + m_pTimeLogValFt.clear(); + m_pDocNoValFt.clear(); + m_pUseUserDataCB.clear(); + m_pDeleteBtn.clear(); + m_pTemplFt.clear(); + m_pTemplValFt.clear(); + SfxTabPage::dispose(); +} IMPL_LINK_NOARG(SfxDocumentPage, DeleteHdl) @@ -1209,19 +1250,20 @@ void CustomPropertiesYesNoButton::dispose() class DurationDialog_Impl : public ModalDialog { - CheckBox* m_pNegativeCB; - NumericField* m_pYearNF; - NumericField* m_pMonthNF; - NumericField* m_pDayNF; - NumericField* m_pHourNF; - NumericField* m_pMinuteNF; - NumericField* m_pSecondNF; - NumericField* m_pMSecondNF; + VclPtr<CheckBox> m_pNegativeCB; + VclPtr<NumericField> m_pYearNF; + VclPtr<NumericField> m_pMonthNF; + VclPtr<NumericField> m_pDayNF; + VclPtr<NumericField> m_pHourNF; + VclPtr<NumericField> m_pMinuteNF; + VclPtr<NumericField> m_pSecondNF; + VclPtr<NumericField> m_pMSecondNF; public: DurationDialog_Impl( vcl::Window* pParent, const util::Duration& rDuration ); - + virtual ~DurationDialog_Impl(); + virtual void dispose() SAL_OVERRIDE; util::Duration GetDuration() const; }; @@ -1249,6 +1291,24 @@ DurationDialog_Impl::DurationDialog_Impl(vcl::Window* pParent, m_pMSecondNF->SetValue(rDuration.NanoSeconds); } +DurationDialog_Impl::~DurationDialog_Impl() +{ + dispose(); +} + +void DurationDialog_Impl::dispose() +{ + m_pNegativeCB.clear(); + m_pYearNF.clear(); + m_pMonthNF.clear(); + m_pDayNF.clear(); + m_pHourNF.clear(); + m_pMinuteNF.clear(); + m_pSecondNF.clear(); + m_pMSecondNF.clear(); + ModalDialog::dispose(); +} + util::Duration DurationDialog_Impl::GetDuration() const { util::Duration aRet; @@ -1448,6 +1508,9 @@ void CustomPropertiesWindow::dispose() m_aEditButton.disposeAndClear(); m_aYesNoButton.disposeAndClear(); m_aRemoveButton.disposeAndClear(); + m_pHeaderAccName.clear(); + m_pHeaderAccType.clear(); + m_pHeaderAccValue.clear(); vcl::Window::dispose(); } @@ -2080,11 +2143,11 @@ CustomPropertiesControl::~CustomPropertiesControl() void CustomPropertiesControl::dispose() { - delete m_pVertScroll; - delete m_pPropertiesWin; - delete m_pBody; - delete m_pHeaderBar; - delete m_pVBox; + m_pVertScroll.clear(); + m_pPropertiesWin.clear(); + m_pBody.clear(); + m_pHeaderBar.clear(); + m_pVBox.clear(); vcl::Window::dispose(); } @@ -2124,6 +2187,17 @@ SfxCustomPropertiesPage::SfxCustomPropertiesPage( vcl::Window* pParent, const Sf get<PushButton>("add")->SetClickHdl(LINK(this, SfxCustomPropertiesPage, AddHdl)); } +SfxCustomPropertiesPage::~SfxCustomPropertiesPage() +{ + dispose(); +} + +void SfxCustomPropertiesPage::dispose() +{ + m_pPropertiesCtrl.clear(); + SfxTabPage::dispose(); +} + IMPL_LINK_NOARG(SfxCustomPropertiesPage, AddHdl) { Any aAny; diff --git a/sfx2/source/dialog/dockwin.cxx b/sfx2/source/dialog/dockwin.cxx index e17c3b26782a..3daafd2a5cff 100644 --- a/sfx2/source/dialog/dockwin.cxx +++ b/sfx2/source/dialog/dockwin.cxx @@ -62,7 +62,7 @@ static const int NUM_OF_DOCKINGWINDOWS = 10; class SfxTitleDockingWindow : public SfxDockingWindow { - vcl::Window* m_pWrappedWindow; + VclPtr<vcl::Window> m_pWrappedWindow; public: SfxTitleDockingWindow( @@ -208,7 +208,7 @@ SfxDockingWrapper::SfxDockingWrapper( vcl::Window* pParentWnd , pWindow->SetOutputSizePixel( Size( 270, 240 ) ); - static_cast<SfxDockingWindow*>( pWindow )->Initialize( pInfo ); + static_cast<SfxDockingWindow*>( pWindow.get() )->Initialize( pInfo ); SetHideNotDelete( true ); } @@ -258,9 +258,7 @@ SfxTitleDockingWindow::~SfxTitleDockingWindow() void SfxTitleDockingWindow::dispose() { - delete m_pWrappedWindow; - m_pWrappedWindow = NULL; - + m_pWrappedWindow.clear(); SfxDockingWindow::dispose(); } @@ -411,7 +409,7 @@ friend class SfxDockingWindow; SfxChildAlignment eDockAlignment; bool bConstructed; Size aMinSize; - SfxSplitWindow* pSplitWin; + VclPtr<SfxSplitWindow> pSplitWin; bool bSplitable; Idle aMoveIdle; diff --git a/sfx2/source/dialog/documentfontsdialog.cxx b/sfx2/source/dialog/documentfontsdialog.cxx index c942fd25c059..6f0fab8bade5 100644 --- a/sfx2/source/dialog/documentfontsdialog.cxx +++ b/sfx2/source/dialog/documentfontsdialog.cxx @@ -34,6 +34,17 @@ SfxDocumentFontsPage::SfxDocumentFontsPage( vcl::Window* parent, const SfxItemSe get( embedFontsCheckbox, "embedFonts" ); } +SfxDocumentFontsPage::~SfxDocumentFontsPage() +{ + dispose(); +} + +void SfxDocumentFontsPage::dispose() +{ + embedFontsCheckbox.clear(); + SfxTabPage::dispose(); +} + void SfxDocumentFontsPage::Reset( const SfxItemSet* ) { bool bVal = false; diff --git a/sfx2/source/dialog/filedlgimpl.hxx b/sfx2/source/dialog/filedlgimpl.hxx index b947ca9adecd..cac4cb268b56 100644 --- a/sfx2/source/dialog/filedlgimpl.hxx +++ b/sfx2/source/dialog/filedlgimpl.hxx @@ -54,7 +54,7 @@ namespace sfx2 SfxFilterMatcher* mpMatcher; GraphicFilter* mpGraphicFilter; FileDialogHelper* mpAntiImpl; - vcl::Window* mpPreferredParentWindow; + VclPtr<vcl::Window> mpPreferredParentWindow; ::std::vector< OUString > mlLastURLs; diff --git a/sfx2/source/dialog/infobar.cxx b/sfx2/source/dialog/infobar.cxx index 777b3fec6cc8..639bd4baca93 100644 --- a/sfx2/source/dialog/infobar.cxx +++ b/sfx2/source/dialog/infobar.cxx @@ -150,14 +150,8 @@ SfxInfoBarWindow::~SfxInfoBarWindow() void SfxInfoBarWindow::dispose() { - delete m_pMessage; - delete m_pCloseBtn; - - for ( vector< PushButton* >::iterator it = m_aActionBtns.begin( ); - it != m_aActionBtns.end( ); ++it ) - { - delete *it; - } + m_pMessage.clear(); + m_pCloseBtn.clear(); m_aActionBtns.clear( ); vcl::Window::dispose(); } @@ -219,8 +213,7 @@ void SfxInfoBarWindow::Resize() long nX = m_pCloseBtn->GetPosPixel().getX() - 15 * nScaleFactor; long nButtonGap = 5 * nScaleFactor; - boost::ptr_vector<PushButton>::iterator it; - for (it = m_aActionBtns.begin(); it != m_aActionBtns.end(); ++it) + for (auto it = m_aActionBtns.begin(); it != m_aActionBtns.end(); ++it) { long nButtonWidth = it->GetSizePixel().getWidth(); nX -= nButtonWidth; @@ -254,11 +247,6 @@ SfxInfoBarContainerWindow::~SfxInfoBarContainerWindow() void SfxInfoBarContainerWindow::dispose() { - for ( vector< SfxInfoBarWindow* >::iterator it = m_pInfoBars.begin( ); - it != m_pInfoBars.end( ); ++it ) - { - delete *it; - } m_pInfoBars.clear( ); Window::dispose(); } @@ -267,7 +255,7 @@ SfxInfoBarWindow* SfxInfoBarContainerWindow::appendInfoBar(const OUString& sId, { Size aSize = GetSizePixel(); - SfxInfoBarWindow* pInfoBar = new SfxInfoBarWindow(this, sId, sMessage); + VclPtrInstance<SfxInfoBarWindow> pInfoBar(this, sId, sMessage); pInfoBar->SetPosPixel(Point(0, aSize.getHeight())); pInfoBar->Show(); m_pInfoBars.push_back(pInfoBar); @@ -280,8 +268,7 @@ SfxInfoBarWindow* SfxInfoBarContainerWindow::appendInfoBar(const OUString& sId, SfxInfoBarWindow* SfxInfoBarContainerWindow::getInfoBar(const OUString& sId) { - boost::ptr_vector<SfxInfoBarWindow>::iterator it; - for (it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) + for (auto it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) { if (it->getId() == sId) return &(*it); @@ -291,8 +278,7 @@ SfxInfoBarWindow* SfxInfoBarContainerWindow::getInfoBar(const OUString& sId) void SfxInfoBarContainerWindow::removeInfoBar(SfxInfoBarWindow* pInfoBar) { - boost::ptr_vector<SfxInfoBarWindow>::iterator it; - for (it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) + for (auto it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) { if (pInfoBar == &(*it)) { @@ -302,7 +288,7 @@ void SfxInfoBarContainerWindow::removeInfoBar(SfxInfoBarWindow* pInfoBar) } long nY = 0; - for (it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) + for (auto it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) { it->SetPosPixel(Point(0, nY)); nY += it->GetSizePixel().getHeight(); @@ -320,8 +306,7 @@ void SfxInfoBarContainerWindow::Resize() // Only need to change the width of the infobars long nWidth = GetSizePixel().getWidth(); - boost::ptr_vector<SfxInfoBarWindow>::iterator it; - for (it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) + for (auto it = m_pInfoBars.begin(); it != m_pInfoBars.end(); ++it) { Size aSize = it->GetSizePixel(); aSize.setWidth(nWidth); diff --git a/sfx2/source/dialog/inputdlg.cxx b/sfx2/source/dialog/inputdlg.cxx index 6f1ab9288205..a49a412be52a 100644 --- a/sfx2/source/dialog/inputdlg.cxx +++ b/sfx2/source/dialog/inputdlg.cxx @@ -26,6 +26,20 @@ InputDialog::InputDialog(const OUString &rLabelText, vcl::Window *pParent) m_pCancel->SetClickHdl(LINK(this,InputDialog,ClickHdl)); } +InputDialog::~InputDialog() +{ + dispose(); +} + +void InputDialog::dispose() +{ + m_pEntry.clear(); + m_pLabel.clear(); + m_pOK.clear(); + m_pCancel.clear(); + ModalDialog::dispose(); +} + OUString InputDialog::getEntryText() const { return m_pEntry->GetText(); diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx index c1a713d4f651..0a8a5b26210e 100644 --- a/sfx2/source/dialog/mgetempl.cxx +++ b/sfx2/source/dialog/mgetempl.cxx @@ -260,6 +260,18 @@ void SfxManageStyleSheetPage::dispose() delete pFamilies; pItem = 0; pStyle = 0; + m_pNameRo.clear(); + m_pNameRw.clear(); + m_pAutoCB.clear(); + m_pFollowFt.clear(); + m_pFollowLb.clear(); + m_pEditStyleBtn.clear(); + m_pBaseFt.clear(); + m_pBaseLb.clear(); + m_pEditLinkStyleBtn.clear(); + m_pFilterFt.clear(); + m_pFilterLb.clear(); + m_pDescFt.clear(); SfxTabPage::dispose(); } diff --git a/sfx2/source/dialog/navigat.cxx b/sfx2/source/dialog/navigat.cxx index 415c347d4970..48a30206b94c 100644 --- a/sfx2/source/dialog/navigat.cxx +++ b/sfx2/source/dialog/navigat.cxx @@ -41,7 +41,7 @@ SfxNavigatorWrapper::SfxNavigatorWrapper( vcl::Window* pParentWnd , pWindow->SetHelpId ( HID_NAVIGATOR_WINDOW ); pWindow->SetOutputSizePixel( Size( 270, 240 ) ); - static_cast<SfxDockingWindow*>( pWindow )->Initialize( pInfo ); + static_cast<SfxDockingWindow*>( pWindow.get() )->Initialize( pInfo ); SetHideNotDelete( true ); } diff --git a/sfx2/source/dialog/newstyle.cxx b/sfx2/source/dialog/newstyle.cxx index b8ec5b1a83e5..8fe73b084c61 100644 --- a/sfx2/source/dialog/newstyle.cxx +++ b/sfx2/source/dialog/newstyle.cxx @@ -88,6 +88,8 @@ SfxNewStyleDlg::~SfxNewStyleDlg() void SfxNewStyleDlg::dispose() { aQueryOverwriteBox.disposeAndClear(); + m_pColBox.clear(); + m_pOKBtn.clear(); ModalDialog::dispose(); } diff --git a/sfx2/source/dialog/partwnd.cxx b/sfx2/source/dialog/partwnd.cxx index 40fabdb1f624..0292b83640f9 100644 --- a/sfx2/source/dialog/partwnd.cxx +++ b/sfx2/source/dialog/partwnd.cxx @@ -65,10 +65,10 @@ SfxPartChildWnd_Impl::SfxPartChildWnd_Impl assert(pInfo); pInfo->nFlags |= SfxChildWindowFlags::FORCEDOCK; - static_cast<SfxDockingWindow*>(pWindow)->SetFloatingSize( Size( 175, 175 ) ); + static_cast<SfxDockingWindow*>(pWindow.get())->SetFloatingSize( Size( 175, 175 ) ); pWindow->SetSizePixel( Size( 175, 175 ) ); - static_cast<SfxDockingWindow*>(pWindow)->Initialize( pInfo ); + static_cast<SfxDockingWindow*>(pWindow.get())->Initialize( pInfo ); SetHideNotDelete( true ); } @@ -82,7 +82,7 @@ SfxPartChildWnd_Impl::~SfxPartChildWnd_Impl() // But don't do it, if xFrame already exist. Then dispose() must come from inside ... // and we need a valid pMgr for further operations ... - SfxPartDockWnd_Impl* pWin = static_cast<SfxPartDockWnd_Impl*>(pWindow); + SfxPartDockWnd_Impl* pWin = static_cast<SfxPartDockWnd_Impl*>(pWindow.get()); if ( pWin && xFrame == pWin->GetBindings().GetActiveFrame() ) pWin->GetBindings().SetActiveFrame( NULL ); @@ -90,7 +90,7 @@ SfxPartChildWnd_Impl::~SfxPartChildWnd_Impl() bool SfxPartChildWnd_Impl::QueryClose() { - return static_cast<SfxPartDockWnd_Impl*>(pWindow)->QueryClose(); + return static_cast<SfxPartDockWnd_Impl*>(pWindow.get())->QueryClose(); } diff --git a/sfx2/source/dialog/passwd.cxx b/sfx2/source/dialog/passwd.cxx index 56ba1282f617..1db877fbc258 100644 --- a/sfx2/source/dialog/passwd.cxx +++ b/sfx2/source/dialog/passwd.cxx @@ -125,7 +125,29 @@ SfxPasswordDialog::SfxPasswordDialog(vcl::Window* pParent, const OUString* pGrou SetPasswdText(); } +SfxPasswordDialog::~SfxPasswordDialog() +{ + dispose(); +} +void SfxPasswordDialog::dispose() +{ + mpPassword1Box.clear(); + mpUserFT.clear(); + mpUserED.clear(); + mpPassword1FT.clear(); + mpPassword1ED.clear(); + mpConfirm1FT.clear(); + mpConfirm1ED.clear(); + mpPassword2Box.clear(); + mpPassword2FT.clear(); + mpPassword2ED.clear(); + mpConfirm2FT.clear(); + mpConfirm2ED.clear(); + mpMinLengthFT.clear(); + mpOKBtn.clear(); + ModalDialog::dispose(); +} void SfxPasswordDialog::SetPasswdText( ) { diff --git a/sfx2/source/dialog/printopt.cxx b/sfx2/source/dialog/printopt.cxx index 0daebad48a52..b5e5d49ee7c9 100644 --- a/sfx2/source/dialog/printopt.cxx +++ b/sfx2/source/dialog/printopt.cxx @@ -85,6 +85,36 @@ SfxCommonPrintOptionsTabPage::SfxCommonPrintOptionsTabPage( vcl::Window* pParent m_pReduceBitmapsResolutionRB->SetToggleHdl( LINK( this, SfxCommonPrintOptionsTabPage, ToggleReduceBitmapsResolutionRBHdl ) ); } +SfxCommonPrintOptionsTabPage::~SfxCommonPrintOptionsTabPage() +{ + dispose(); +} + +void SfxCommonPrintOptionsTabPage::dispose() +{ + m_pPrinterOutputRB.clear(); + m_pPrintFileOutputRB.clear(); + m_pReduceTransparencyCB.clear(); + m_pReduceTransparencyAutoRB.clear(); + m_pReduceTransparencyNoneRB.clear(); + m_pReduceGradientsCB.clear(); + m_pReduceGradientsStripesRB.clear(); + m_pReduceGradientsColorRB.clear(); + m_pReduceGradientsStepCountNF.clear(); + m_pReduceBitmapsCB.clear(); + m_pReduceBitmapsOptimalRB.clear(); + m_pReduceBitmapsNormalRB.clear(); + m_pReduceBitmapsResolutionRB.clear(); + m_pReduceBitmapsResolutionLB.clear(); + m_pReduceBitmapsTransparencyCB.clear(); + m_pConvertToGreyscalesCB.clear(); + m_pPDFCB.clear(); + m_pPaperSizeCB.clear(); + m_pPaperOrientationCB.clear(); + m_pTransparencyCB.clear(); + SfxTabPage::dispose(); +} + SfxTabPage* SfxCommonPrintOptionsTabPage::Create( vcl::Window* pParent, const SfxItemSet* rAttrSet ) { return( new SfxCommonPrintOptionsTabPage( pParent, *rAttrSet ) ); diff --git a/sfx2/source/dialog/recfloat.cxx b/sfx2/source/dialog/recfloat.cxx index d63d1df4eff4..c674d9823ac1 100644 --- a/sfx2/source/dialog/recfloat.cxx +++ b/sfx2/source/dialog/recfloat.cxx @@ -134,7 +134,7 @@ SfxRecordingFloatWrapper_Impl::SfxRecordingFloatWrapper_Impl( vcl::Window* pPare pWindow = new SfxRecordingFloat_Impl( pBindings, this, pParentWnd ); SetWantsFocus( false ); eChildAlignment = SfxChildAlignment::NOALIGNMENT; - static_cast<SfxFloatingWindow*>(pWindow)->Initialize( pInfo ); + static_cast<SfxFloatingWindow*>(pWindow.get())->Initialize( pInfo ); } SfxRecordingFloatWrapper_Impl::~SfxRecordingFloatWrapper_Impl() @@ -216,6 +216,7 @@ void SfxRecordingFloat_Impl::dispose() catch ( uno::Exception& ) { } + m_pTbx.clear(); SfxFloatingWindow::dispose(); } diff --git a/sfx2/source/dialog/securitypage.cxx b/sfx2/source/dialog/securitypage.cxx index b70ca3c4fab2..81e54371aa19 100644 --- a/sfx2/source/dialog/securitypage.cxx +++ b/sfx2/source/dialog/securitypage.cxx @@ -136,10 +136,10 @@ struct SfxSecurityPage_Impl { SfxSecurityPage & m_rMyTabPage; - CheckBox* m_pOpenReadonlyCB; - CheckBox* m_pRecordChangesCB; // for record changes - PushButton* m_pProtectPB; // for record changes - PushButton* m_pUnProtectPB; // for record changes + VclPtr<CheckBox> m_pOpenReadonlyCB; + VclPtr<CheckBox> m_pRecordChangesCB; // for record changes + VclPtr<PushButton> m_pProtectPB; // for record changes + VclPtr<PushButton> m_pUnProtectPB; // for record changes RedliningMode m_eRedlingMode; // for record changes bool m_bOrigPasswordIsConfirmed; diff --git a/sfx2/source/dialog/splitwin.cxx b/sfx2/source/dialog/splitwin.cxx index 036a578c166d..4a7d42377a39 100644 --- a/sfx2/source/dialog/splitwin.cxx +++ b/sfx2/source/dialog/splitwin.cxx @@ -87,15 +87,16 @@ class SfxEmptySplitWin_Impl : public SplitWindow */ friend class SfxSplitWindow; - SfxSplitWindow* pOwner; - bool bFadeIn; - bool bAutoHide; - bool bSplit; - bool bEndAutoHide; - Timer aTimer; - Point aLastPos; + VclPtr<SfxSplitWindow> pOwner; + bool bFadeIn; + bool bAutoHide; + bool bSplit; + bool bEndAutoHide; + Timer aTimer; + Point aLastPos; sal_uInt16 nState; +public: SfxEmptySplitWin_Impl( SfxSplitWindow *pParent ) : SplitWindow( pParent->GetParent(), WinBits( WB_BORDER | WB_3DLOOK ) ) , pOwner( pParent ) @@ -119,6 +120,7 @@ friend class SfxSplitWindow; virtual void dispose() SAL_OVERRIDE { aTimer.Stop(); + pOwner.clear(); SplitWindow::dispose(); } @@ -315,10 +317,11 @@ void SfxSplitWindow::dispose() // Set pOwner to NULL, otherwise try to delete pEmptyWin once more. The // window that is just being docked is always deleted from the outside. pEmptyWin->pOwner = NULL; - delete pEmptyWin; } + pEmptyWin.clear(); delete pDockArr; + pActive.clear(); SplitWindow::dispose(); } diff --git a/sfx2/source/dialog/srchdlg.cxx b/sfx2/source/dialog/srchdlg.cxx index d933c0224f26..7fd8ec70aff2 100644 --- a/sfx2/source/dialog/srchdlg.cxx +++ b/sfx2/source/dialog/srchdlg.cxx @@ -69,6 +69,12 @@ void SearchDialog::dispose() { SaveConfig(); m_aCloseHdl.Call( NULL ); + m_pSearchEdit.clear(); + m_pWholeWordsBox.clear(); + m_pMatchCaseBox.clear(); + m_pWrapAroundBox.clear(); + m_pBackwardsBox.clear(); + m_pFindBtn.clear(); ModelessDialog::dispose(); } diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx index 1af64784fe14..b8f63d54c85e 100644 --- a/sfx2/source/dialog/tabdlg.cxx +++ b/sfx2/source/dialog/tabdlg.cxx @@ -60,7 +60,7 @@ struct Data_Impl sal_uInt16 nId; // The ID CreateTabPage fnCreatePage; // Pointer to Factory GetTabPageRanges fnGetRanges; // Pointer to Ranges-Function - SfxTabPage* pTabPage; // The TabPage itself + VclPtr<SfxTabPage> pTabPage; // The TabPage itself bool bOnDemand; // Flag: ItemSet onDemand bool bRefresh; // Flag: Page must be re-initialized @@ -398,7 +398,7 @@ void SfxTabDialog::dispose() if ( pDataObject->bOnDemand ) delete &pDataObject->pTabPage->GetItemSet(); - delete pDataObject->pTabPage; + pDataObject->pTabPage.disposeAndClear(); } delete pDataObject; } @@ -409,16 +409,16 @@ void SfxTabDialog::dispose() delete pExampleSet; delete [] pRanges; - if (m_bOwnsBaseFmtBtn) - delete m_pBaseFmtBtn; - if (m_bOwnsResetBtn) - delete m_pResetBtn; - if (m_bOwnsHelpBtn) - delete m_pHelpBtn; - if (m_bOwnsCancelBtn) - delete m_pCancelBtn; - if (m_bOwnsOKBtn) - delete m_pOKBtn; + m_pBox.clear(); + m_pTabCtrl.clear(); + m_pOKBtn.clear(); + m_pApplyBtn.clear(); + m_pUserBtn.clear(); + m_pCancelBtn.clear(); + m_pHelpBtn.clear(); + m_pResetBtn.clear(); + m_pBaseFmtBtn.clear(); + m_pActionArea.clear(); TabDialog::dispose(); } @@ -438,33 +438,33 @@ void SfxTabDialog::Init_Impl(bool bFmtFlag) assert(m_pActionArea); m_pOKBtn = m_pUIBuilder->get<PushButton>("ok"); - m_bOwnsOKBtn = m_pOKBtn == NULL; + m_bOwnsOKBtn = m_pOKBtn == nullptr; if (m_bOwnsOKBtn) m_pOKBtn = new OKButton(m_pActionArea); m_pApplyBtn = m_pUIBuilder->get<PushButton>("apply"); m_pUserBtn = m_pUIBuilder->get<PushButton>("user"); m_pCancelBtn = m_pUIBuilder->get<CancelButton>("cancel"); - m_bOwnsCancelBtn = m_pCancelBtn == NULL; + m_bOwnsCancelBtn = m_pCancelBtn == nullptr; if (m_bOwnsCancelBtn) m_pCancelBtn = new CancelButton(m_pActionArea); m_pHelpBtn = m_pUIBuilder->get<HelpButton>("help"); - m_bOwnsHelpBtn = m_pHelpBtn == NULL; + m_bOwnsHelpBtn = m_pHelpBtn == nullptr; if (m_bOwnsHelpBtn) m_pHelpBtn = new HelpButton(m_pActionArea); m_pResetBtn = m_pUIBuilder->get<PushButton>("reset"); - m_bOwnsResetBtn = m_pResetBtn == NULL; + m_bOwnsResetBtn = m_pResetBtn == nullptr; if (m_bOwnsResetBtn) - m_pResetBtn = new PushButton(m_pActionArea); + m_pResetBtn = new PushButton(m_pActionArea.get()); else pImpl->bHideResetBtn = !m_pResetBtn->IsVisible(); m_pBaseFmtBtn = m_pUIBuilder->get<PushButton>("standard"); - m_bOwnsBaseFmtBtn = m_pBaseFmtBtn == NULL; + m_bOwnsBaseFmtBtn = m_pBaseFmtBtn == nullptr; if (m_bOwnsBaseFmtBtn) - m_pBaseFmtBtn = new PushButton(m_pActionArea); + m_pBaseFmtBtn = new PushButton(m_pActionArea.get()); m_pOKBtn->SetClickHdl( LINK( this, SfxTabDialog, OkHdl ) ); m_pCancelBtn->SetClickHdl( LINK( this, SfxTabDialog, CancelHdl ) ); @@ -698,7 +698,7 @@ void SfxTabDialog::RemoveTabPage( sal_uInt16 nId ) if ( pDataObject->bOnDemand ) delete &pDataObject->pTabPage->GetItemSet(); - delete pDataObject->pTabPage; + pDataObject->pTabPage.disposeAndClear(); } delete pDataObject; @@ -1135,7 +1135,7 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl ) else pTabPage = (pDataObject->fnCreatePage) ( pTabCtrl, CreateInputItemSet( nId ) ); - DBG_ASSERT( NULL == pDataObject->pTabPage, "create TabPage more than once" ); + DBG_ASSERT( nullptr == pDataObject->pTabPage, "create TabPage more than once" ); pDataObject->pTabPage = pTabPage; OUString sConfigId = OStringToOUString(pTabPage->GetConfigId(), RTL_TEXTENCODING_UTF8); @@ -1255,7 +1255,7 @@ IMPL_LINK( SfxTabDialog, DeactivatePageHdl, TabControl *, pTabCtrl ) { Data_Impl* pObj = *it; - if ( pObj->pTabPage != pPage ) // Do not refresh own Page anymore + if ( pObj->pTabPage.get() != pPage ) // Do not refresh own Page anymore pObj->bRefresh = true; else pObj->bRefresh = false; diff --git a/sfx2/source/dialog/templateinfodlg.cxx b/sfx2/source/dialog/templateinfodlg.cxx index a1779d6fefc9..e16db6db0f95 100644 --- a/sfx2/source/dialog/templateinfodlg.cxx +++ b/sfx2/source/dialog/templateinfodlg.cxx @@ -38,7 +38,7 @@ SfxTemplateInfoDlg::SfxTemplateInfoDlg (vcl::Window *pParent) get(mpBtnClose, "close"); get(mpBox, "box"); get(mpInfoView, "infoDrawingArea"); - mpPreviewView = new vcl::Window(mpBox); + mpPreviewView = new vcl::Window(mpBox.get()); Size aSize(LogicToPixel(Size(250, 160), MAP_APPFONT)); mpBox->set_width_request(aSize.Width()); @@ -60,6 +60,10 @@ SfxTemplateInfoDlg::~SfxTemplateInfoDlg() void SfxTemplateInfoDlg::dispose() { m_xFrame->dispose(); + mpBtnClose.clear(); + mpBox.clear(); + mpPreviewView.clear(); + mpInfoView.clear(); ModalDialog::dispose(); } diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index 34097725d091..72fde222b23c 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -765,7 +765,6 @@ SfxCommonTemplateDialog_Impl::~SfxCommonTemplateDialog_Impl() if ( pStyleSheetPool ) EndListening(*pStyleSheetPool); pStyleSheetPool = NULL; - delete pTreeBox; delete pIdle; if ( m_pDeletionWatcher ) m_pDeletionWatcher->signal(); @@ -1532,7 +1531,7 @@ void SfxCommonTemplateDialog_Impl::EnableHierarchical(bool const bEnable) } else { - DELETEZ(pTreeBox); + pTreeBox.clear(); aFmtLb->Show(); // If bHierarchical, then the family can have changed // minus one since hierarchical is inserted at the start @@ -2173,7 +2172,7 @@ void SfxTemplateDialog_Impl::LoadedFamilies() // The size of the Listboxen is adjusted void SfxTemplateDialog_Impl::Resize() { - SfxDockingWindow* pDockingWindow = dynamic_cast<SfxDockingWindow*>(m_pFloat); + SfxDockingWindow* pDockingWindow = dynamic_cast<SfxDockingWindow*>(m_pFloat.get()); FloatingWindow *pF = pDockingWindow!=NULL ? pDockingWindow->GetFloatingWindow() : NULL; if ( pF ) { @@ -2182,7 +2181,7 @@ void SfxTemplateDialog_Impl::Resize() return; } - if (m_pFloat == NULL) + if (m_pFloat == nullptr) return; Size aDlgSize=m_pFloat->PixelToLogic(m_pFloat->GetOutputSizePixel()); Size aSizeATL=m_pFloat->PixelToLogic(m_aActionTbL->CalcWindowSizePixel()); @@ -2242,7 +2241,7 @@ void SfxTemplateDialog_Impl::Resize() Size SfxTemplateDialog_Impl::GetMinOutputSizePixel() { - if (m_pFloat != NULL) + if (m_pFloat != nullptr) { Size aSizeATL=m_pFloat->PixelToLogic(m_aActionTbL->CalcWindowSizePixel()); Size aSizeATR=m_pFloat->PixelToLogic(m_aActionTbR->CalcWindowSizePixel()); diff --git a/sfx2/source/dialog/versdlg.cxx b/sfx2/source/dialog/versdlg.cxx index 797c89342f28..f74654602fdc 100644 --- a/sfx2/source/dialog/versdlg.cxx +++ b/sfx2/source/dialog/versdlg.cxx @@ -335,7 +335,14 @@ SfxVersionDialog::~SfxVersionDialog() void SfxVersionDialog::dispose() { delete m_pTable; - delete m_pVersionBox; + m_pVersionBox.clear(); + m_pSaveButton.clear(); + m_pSaveCheckBox.clear(); + m_pOpenButton.clear(); + m_pViewButton.clear(); + m_pDeleteButton.clear(); + m_pCompareButton.clear(); + m_pCmisButton.clear(); SfxModalDialog::dispose(); } @@ -499,6 +506,22 @@ SfxViewVersionDialog_Impl::SfxViewVersionDialog_Impl(vcl::Window *pParent, SfxVe } } +SfxViewVersionDialog_Impl::~SfxViewVersionDialog_Impl() +{ + dispose(); +} + +void SfxViewVersionDialog_Impl::dispose() +{ + m_pDateTimeText.clear(); + m_pSavedByText.clear(); + m_pEdit.clear(); + m_pOKButton.clear(); + m_pCancelButton.clear(); + m_pCloseButton.clear(); + SfxModalDialog::dispose(); +} + IMPL_LINK(SfxViewVersionDialog_Impl, ButtonHdl, Button*, pButton) { assert(pButton == m_pOKButton); @@ -569,7 +592,11 @@ SfxCmisVersionsDialog::~SfxCmisVersionsDialog() void SfxCmisVersionsDialog::dispose() { delete m_pTable; - delete m_pVersionBox; + m_pVersionBox.clear(); + m_pOpenButton.clear(); + m_pViewButton.clear(); + m_pDeleteButton.clear(); + m_pCompareButton.clear(); SfxModalDialog::dispose(); } diff --git a/sfx2/source/doc/new.cxx b/sfx2/source/doc/new.cxx index e120cf23dc56..3ad16cf0901e 100644 --- a/sfx2/source/doc/new.cxx +++ b/sfx2/source/doc/new.cxx @@ -123,19 +123,19 @@ extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL makeSfxPreviewWin(vcl::Win class SfxNewFileDialog_Impl { - ListBox* m_pRegionLb; - ListBox* m_pTemplateLb; + VclPtr<ListBox> m_pRegionLb; + VclPtr<ListBox> m_pTemplateLb; - SfxPreviewWin_Impl* m_pPreviewWin; + VclPtr<SfxPreviewWin_Impl> m_pPreviewWin; - CheckBox* m_pTextStyleCB; - CheckBox* m_pFrameStyleCB; - CheckBox* m_pPageStyleCB; - CheckBox* m_pNumStyleCB; - CheckBox* m_pMergeStyleCB; - PushButton* m_pLoadFilePB; + VclPtr<CheckBox> m_pTextStyleCB; + VclPtr<CheckBox> m_pFrameStyleCB; + VclPtr<CheckBox> m_pPageStyleCB; + VclPtr<CheckBox> m_pNumStyleCB; + VclPtr<CheckBox> m_pMergeStyleCB; + VclPtr<PushButton> m_pLoadFilePB; - VclExpander* m_pMoreBt; + VclPtr<VclExpander> m_pMoreBt; Idle aPrevIdle; OUString aNone; OUString sLoadTemplate; @@ -143,7 +143,7 @@ class SfxNewFileDialog_Impl sal_uInt16 nFlags; SfxDocumentTemplates aTemplates; SfxObjectShellLock xDocShell; - SfxNewFileDialog* pAntiImpl; + VclPtr<SfxNewFileDialog> pAntiImpl; DECL_LINK( Update, void * ); diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index b1c416c2a507..3ace50cbec6e 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -321,6 +321,16 @@ void SfxTemplateManagerDlg::dispose() mpSearchView->setItemStateHdl(Link()); mpSearchView->setOpenTemplateHdl(Link()); + + mpTabControl.clear(); + mpSearchEdit.clear(); + mpViewBar.clear(); + mpActionBar.clear(); + mpTemplateBar.clear(); + mpSearchView.clear(); + mpCurView.clear(); + mpLocalView.clear(); + mpRemoteView.clear(); ModalDialog::dispose(); } @@ -1409,7 +1419,7 @@ void SfxTemplateManagerDlg::switchMainView(bool bDisplayLocal) { if (bDisplayLocal) { - mpCurView = mpLocalView; + mpCurView = mpLocalView.get(); mpViewBar->HideItem(VIEWBAR_DELETE); @@ -1422,7 +1432,7 @@ void SfxTemplateManagerDlg::switchMainView(bool bDisplayLocal) } else { - mpCurView = mpRemoteView; + mpCurView = mpRemoteView.get(); mpViewBar->ShowItem(VIEWBAR_DELETE); diff --git a/sfx2/source/inc/alienwarn.hxx b/sfx2/source/inc/alienwarn.hxx index a21473dc6a88..bd234104b53a 100644 --- a/sfx2/source/inc/alienwarn.hxx +++ b/sfx2/source/inc/alienwarn.hxx @@ -25,8 +25,8 @@ class SfxAlienWarningDialog : public MessageDialog { private: - PushButton* m_pKeepCurrentBtn; - CheckBox* m_pWarningOnBox; + VclPtr<PushButton> m_pKeepCurrentBtn; + VclPtr<CheckBox> m_pWarningOnBox; public: SfxAlienWarningDialog(vcl::Window* pParent, const OUString& _rFormatName); diff --git a/sfx2/source/inc/documentfontsdialog.hxx b/sfx2/source/inc/documentfontsdialog.hxx index 360f88713010..5b64db66b00b 100644 --- a/sfx2/source/inc/documentfontsdialog.hxx +++ b/sfx2/source/inc/documentfontsdialog.hxx @@ -31,12 +31,14 @@ class SfxDocumentFontsPage: public SfxTabPage { public: SfxDocumentFontsPage( vcl::Window* parent, const SfxItemSet& set ); + virtual ~SfxDocumentFontsPage(); + virtual void dispose() SAL_OVERRIDE; static SfxTabPage* Create( vcl::Window* parent, const SfxItemSet* set ); protected: virtual bool FillItemSet( SfxItemSet* set ) SAL_OVERRIDE; virtual void Reset( const SfxItemSet* set ) SAL_OVERRIDE; private: - CheckBox* embedFontsCheckbox; + VclPtr<CheckBox> embedFontsCheckbox; }; #endif diff --git a/sfx2/source/inc/inputdlg.hxx b/sfx2/source/inc/inputdlg.hxx index 29b5c45b9453..41888d44d3c9 100644 --- a/sfx2/source/inc/inputdlg.hxx +++ b/sfx2/source/inc/inputdlg.hxx @@ -21,6 +21,8 @@ class InputDialog : public ModalDialog public: InputDialog (const OUString &labelText, vcl::Window *pParent = NULL); OUString getEntryText () const; + virtual ~InputDialog(); + virtual void dispose() SAL_OVERRIDE; private: @@ -28,10 +30,10 @@ private: private: - Edit *m_pEntry; - FixedText *m_pLabel; - PushButton *m_pOK; - PushButton *m_pCancel; + VclPtr<Edit> m_pEntry; + VclPtr<FixedText> m_pLabel; + VclPtr<PushButton> m_pOK; + VclPtr<PushButton> m_pCancel; }; #endif // INCLUDED_SFX2_SOURCE_INC_INPUTDLG_HXX diff --git a/sfx2/source/inc/recfloat.hxx b/sfx2/source/inc/recfloat.hxx index df32b12b25c7..50dd7f6dc9fd 100644 --- a/sfx2/source/inc/recfloat.hxx +++ b/sfx2/source/inc/recfloat.hxx @@ -39,7 +39,7 @@ public: class SfxRecordingFloat_Impl : public SfxFloatingWindow { - ToolBox* m_pTbx; + VclPtr<ToolBox> m_pTbx; ::com::sun::star::uno::Reference< ::com::sun::star::frame::XToolbarController > xStopRecTbxCtrl; public: SfxRecordingFloat_Impl( SfxBindings* pBindings , diff --git a/sfx2/source/inc/splitwin.hxx b/sfx2/source/inc/splitwin.hxx index 9dfa27dd8f4c..177bd769c70c 100644 --- a/sfx2/source/inc/splitwin.hxx +++ b/sfx2/source/inc/splitwin.hxx @@ -31,9 +31,9 @@ class SfxEmptySplitWin_Impl; struct SfxDock_Impl { sal_uInt16 nType; - SfxDockingWindow* pWin; // SplitWindow has this window - bool bNewLine; - bool bHide; // SplitWindow had this window + VclPtr<SfxDockingWindow> pWin; // SplitWindow has this window + bool bNewLine; + bool bHide; // SplitWindow had this window long nSize; }; @@ -49,8 +49,8 @@ private: SfxDockArr_Impl* pDockArr; bool bLocked; bool bPinned; - SfxEmptySplitWin_Impl* pEmptyWin; - SfxDockingWindow* pActive; + VclPtr<SfxEmptySplitWin_Impl> pEmptyWin; + VclPtr<SfxDockingWindow> pActive; void InsertWindow_Impl( SfxDock_Impl* pDockWin, const Size& rSize, diff --git a/sfx2/source/inc/templdgi.hxx b/sfx2/source/inc/templdgi.hxx index f50de2e057e7..c72f3056aa88 100644 --- a/sfx2/source/inc/templdgi.hxx +++ b/sfx2/source/inc/templdgi.hxx @@ -169,7 +169,7 @@ protected: SfxBindings* pBindings; SfxTemplateControllerItem* pBoundItems[COUNT_BOUND_FUNC]; - vcl::Window* pWindow; + VclPtr<vcl::Window> pWindow; SfxModule* pModule; Idle* pIdle; @@ -177,7 +177,7 @@ protected: SfxStyleFamilies* pStyleFamilies; SfxTemplateItem* pFamilyState[MAX_FAMILIES]; SfxStyleSheetBasePool* pStyleSheetPool; - StyleTreeListBox_Impl* pTreeBox; + VclPtr<StyleTreeListBox_Impl> pTreeBox; SfxObjectShell* pCurObjShell; css::uno::Reference<css::frame::XModuleManager2> xModuleManager; DeletionWatcher* m_pDeletionWatcher; @@ -369,10 +369,10 @@ private: friend class DropToolBox_Impl; friend class SfxTemplatePanelControl; - vcl::Window* m_pFloat; - bool m_bZoomIn; + VclPtr<vcl::Window> m_pFloat; + bool m_bZoomIn; VclPtr<DropToolBox_Impl> m_aActionTbL; - VclPtr<ToolBox> m_aActionTbR; + VclPtr<ToolBox> m_aActionTbR; DECL_LINK( ToolBoxLSelect, ToolBox* ); DECL_LINK( ToolBoxRSelect, ToolBox* ); diff --git a/sfx2/source/inc/versdlg.hxx b/sfx2/source/inc/versdlg.hxx index 0079e0f1f26f..67453efa3a51 100644 --- a/sfx2/source/inc/versdlg.hxx +++ b/sfx2/source/inc/versdlg.hxx @@ -45,14 +45,14 @@ public: class SfxVersionTableDtor; class SfxVersionDialog : public SfxModalDialog { - PushButton* m_pSaveButton; - CheckBox* m_pSaveCheckBox; - SfxVersionsTabListBox_Impl* m_pVersionBox; - PushButton* m_pOpenButton; - PushButton* m_pViewButton; - PushButton* m_pDeleteButton; - PushButton* m_pCompareButton; - PushButton* m_pCmisButton; + VclPtr<PushButton> m_pSaveButton; + VclPtr<CheckBox> m_pSaveCheckBox; + VclPtr<SfxVersionsTabListBox_Impl> m_pVersionBox; + VclPtr<PushButton> m_pOpenButton; + VclPtr<PushButton> m_pViewButton; + VclPtr<PushButton> m_pDeleteButton; + VclPtr<PushButton> m_pCompareButton; + VclPtr<PushButton> m_pCmisButton; SfxViewFrame* pViewFrame; SfxVersionTableDtor* m_pTable; bool m_bIsSaveVersionOnClose; @@ -72,27 +72,29 @@ public: class SfxViewVersionDialog_Impl : public SfxModalDialog { - FixedText* m_pDateTimeText; - FixedText* m_pSavedByText; - VclMultiLineEdit* m_pEdit; - OKButton* m_pOKButton; - CancelButton* m_pCancelButton; - CloseButton* m_pCloseButton; + VclPtr<FixedText> m_pDateTimeText; + VclPtr<FixedText> m_pSavedByText; + VclPtr<VclMultiLineEdit> m_pEdit; + VclPtr<OKButton> m_pOKButton; + VclPtr<CancelButton> m_pCancelButton; + VclPtr<CloseButton> m_pCloseButton; SfxVersionInfo& m_rInfo; DECL_LINK(ButtonHdl, Button*); public: SfxViewVersionDialog_Impl(vcl::Window *pParent, SfxVersionInfo& rInfo, bool bEdit); + virtual ~SfxViewVersionDialog_Impl(); + virtual void dispose() SAL_OVERRIDE; }; class SfxCmisVersionsDialog : public SfxModalDialog { - SfxVersionsTabListBox_Impl* m_pVersionBox; - PushButton* m_pOpenButton; - PushButton* m_pViewButton; - PushButton* m_pDeleteButton; - PushButton* m_pCompareButton; + VclPtr<SfxVersionsTabListBox_Impl> m_pVersionBox; + VclPtr<PushButton> m_pOpenButton; + VclPtr<PushButton> m_pViewButton; + VclPtr<PushButton> m_pDeleteButton; + VclPtr<PushButton> m_pCompareButton; SfxViewFrame* pViewFrame; SfxVersionTableDtor* m_pTable; bool m_bIsSaveVersionOnClose; diff --git a/sfx2/source/inc/workwin.hxx b/sfx2/source/inc/workwin.hxx index 1d5281746f2c..911fd8570a7e 100644 --- a/sfx2/source/inc/workwin.hxx +++ b/sfx2/source/inc/workwin.hxx @@ -96,7 +96,7 @@ namespace o3tl struct SfxChild_Impl { - vcl::Window* pWin; + VclPtr<vcl::Window> pWin; Size aSize; SfxChildAlignment eAlign; SfxChildVisibility nVisible; @@ -226,12 +226,12 @@ protected: SfxChildList_Impl aChildren; SfxChildWindows_Impl aChildWins; SfxBindings* pBindings; - vcl::Window* pWorkWin; + VclPtr<vcl::Window> pWorkWin; SfxShell* pConfigShell; - vcl::Window* pActiveChild; - sal_uInt16 nUpdateMode; - sal_uInt16 nChildren; - sal_uInt16 nOrigMode; + VclPtr<vcl::Window> pActiveChild; + sal_uInt16 nUpdateMode; + sal_uInt16 nChildren; + sal_uInt16 nOrigMode; bool bSorted : 1; bool bDockingAllowed : 1; bool bInternalDockingAllowed : 1; diff --git a/sfx2/source/sidebar/FocusManager.cxx b/sfx2/source/sidebar/FocusManager.cxx index af116e67c605..3e41a3ab5418 100644 --- a/sfx2/source/sidebar/FocusManager.cxx +++ b/sfx2/source/sidebar/FocusManager.cxx @@ -65,9 +65,9 @@ void FocusManager::Clear (void) void FocusManager::ClearPanels (void) { - ::std::vector<Panel*> aPanels; + ::std::vector<VclPtr<Panel> > aPanels; aPanels.swap(maPanels); - for (::std::vector<Panel*>::iterator iPanel(aPanels.begin()),iEnd(aPanels.end()); + for (auto iPanel(aPanels.begin()),iEnd(aPanels.end()); iPanel!=iEnd; ++iPanel) { @@ -84,9 +84,9 @@ void FocusManager::ClearPanels (void) void FocusManager::ClearButtons (void) { - ::std::vector<Button*> aButtons; + ::std::vector<VclPtr<Button> > aButtons; aButtons.swap(maButtons); - for (::std::vector<Button*>::iterator iButton(aButtons.begin()),iEnd(aButtons.end()); + for (auto iButton(aButtons.begin()),iEnd(aButtons.end()); iButton!=iEnd; ++iButton) { @@ -96,14 +96,14 @@ void FocusManager::ClearButtons (void) void FocusManager::SetDeckTitle (DeckTitleBar* pDeckTitleBar) { - if (mpDeckTitleBar != NULL) + if (mpDeckTitleBar != nullptr) { UnregisterWindow(*mpDeckTitleBar); UnregisterWindow(mpDeckTitleBar->GetToolBox()); } mpDeckTitleBar = pDeckTitleBar; - if (mpDeckTitleBar != NULL) + if (mpDeckTitleBar != nullptr) { RegisterWindow(*mpDeckTitleBar); RegisterWindow(mpDeckTitleBar->GetToolBox()); @@ -156,7 +156,7 @@ void FocusManager::UnregisterWindow (vcl::Window& rWindow) FocusManager::FocusLocation FocusManager::GetFocusLocation (const vcl::Window& rWindow) const { // Check the deck title. - if (mpDeckTitleBar != NULL) + if (mpDeckTitleBar != nullptr) { if (mpDeckTitleBar == &rWindow) return FocusLocation(PC_DeckTitle, -1); @@ -186,7 +186,7 @@ FocusManager::FocusLocation FocusManager::GetFocusLocation (const vcl::Window& r void FocusManager::FocusDeckTitle (void) { - if (mpDeckTitleBar != NULL) + if (mpDeckTitleBar != nullptr) { if (IsDeckTitleVisible()) { @@ -207,7 +207,7 @@ void FocusManager::FocusDeckTitle (void) bool FocusManager::IsDeckTitleVisible (void) const { - return mpDeckTitleBar != NULL && mpDeckTitleBar->IsVisible(); + return mpDeckTitleBar != nullptr && mpDeckTitleBar->IsVisible(); } bool FocusManager::IsPanelTitleVisible (const sal_Int32 nPanelIndex) const @@ -286,7 +286,7 @@ void FocusManager::ClickButton (const sal_Int32 nButtonIndex) void FocusManager::RemoveWindow (vcl::Window& rWindow) { - ::std::vector<Panel*>::iterator iPanel (::std::find(maPanels.begin(), maPanels.end(), &rWindow)); + auto iPanel (::std::find(maPanels.begin(), maPanels.end(), &rWindow)); if (iPanel != maPanels.end()) { UnregisterWindow(rWindow); @@ -299,7 +299,7 @@ void FocusManager::RemoveWindow (vcl::Window& rWindow) return; } - ::std::vector<Button*>::iterator iButton (::std::find(maButtons.begin(), maButtons.end(), &rWindow)); + auto iButton (::std::find(maButtons.begin(), maButtons.end(), &rWindow)); if (iButton != maButtons.end()) { UnregisterWindow(rWindow); @@ -596,7 +596,7 @@ IMPL_LINK(FocusManager, ChildEventListener, VclSimpleEvent*, pEvent) break; case KEY_TAB: - if (mpFirstFocusedContentControl!=NULL + if (mpFirstFocusedContentControl!=nullptr && mpLastFocusedWindow == mpFirstFocusedContentControl) { // Move focus back to panel (or deck) diff --git a/sfx2/source/sidebar/FocusManager.hxx b/sfx2/source/sidebar/FocusManager.hxx index 0577c8cd88e7..4662517c12ed 100644 --- a/sfx2/source/sidebar/FocusManager.hxx +++ b/sfx2/source/sidebar/FocusManager.hxx @@ -68,13 +68,13 @@ public: void SetButtons (const ::std::vector<Button*>& rButtons); private: - DeckTitleBar* mpDeckTitleBar; - ::std::vector<Panel*> maPanels; - ::std::vector<Button*> maButtons; + VclPtr<DeckTitleBar> mpDeckTitleBar; + ::std::vector<VclPtr<Panel> > maPanels; + ::std::vector<VclPtr<Button> > maButtons; const ::boost::function<void(const Panel&)> maShowPanelFunctor; bool mbObservingContentControlFocus; - vcl::Window* mpFirstFocusedContentControl; - vcl::Window* mpLastFocusedWindow; + VclPtr<vcl::Window> mpFirstFocusedContentControl; + VclPtr<vcl::Window> mpLastFocusedWindow; enum PanelComponent { diff --git a/sfx2/source/sidebar/PanelTitleBar.cxx b/sfx2/source/sidebar/PanelTitleBar.cxx index 0f840e3a77d3..30ad8476bba8 100644 --- a/sfx2/source/sidebar/PanelTitleBar.cxx +++ b/sfx2/source/sidebar/PanelTitleBar.cxx @@ -51,13 +51,24 @@ PanelTitleBar::PanelTitleBar ( msMoreOptionsCommand(), msAccessibleNamePrefix(SFX2_RESSTR(SFX_STR_SIDEBAR_ACCESSIBILITY_PANEL_PREFIX)) { - OSL_ASSERT(mpPanel != NULL); + OSL_ASSERT(mpPanel != nullptr); #ifdef DEBUG SetText(OUString("PanelTitleBar")); #endif } +PanelTitleBar::~PanelTitleBar() +{ + dispose(); +} + +void PanelTitleBar::dispose() +{ + mpPanel.clear(); + TitleBar::dispose(); +} + void PanelTitleBar::SetMoreOptionsCommand ( const ::rtl::OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame) @@ -94,7 +105,7 @@ void PanelTitleBar::SetMoreOptionsCommand ( Rectangle PanelTitleBar::GetTitleArea (const Rectangle& rTitleBarBox) { - if (mpPanel != NULL) + if (mpPanel != nullptr) { Image aImage (mpPanel->IsExpanded() ? Theme::GetImage(Theme::Image_Expand) @@ -113,7 +124,7 @@ void PanelTitleBar::PaintDecoration (const Rectangle& rTitleBarBox) { (void)rTitleBarBox; - if (mpPanel != NULL) + if (mpPanel != nullptr) { Image aImage (mpPanel->IsExpanded() ? Theme::GetImage(Theme::Image_Collapse) @@ -181,7 +192,7 @@ void PanelTitleBar::MouseButtonUp (const MouseEvent& rMouseEvent) { if (mbIsLeftButtonDown) { - if (mpPanel != NULL) + if (mpPanel != nullptr) { mpPanel->SetExpanded( ! mpPanel->IsExpanded()); Invalidate(); diff --git a/sfx2/source/sidebar/PanelTitleBar.hxx b/sfx2/source/sidebar/PanelTitleBar.hxx index 1fc3eb3ec82e..f1a23f83d1ca 100644 --- a/sfx2/source/sidebar/PanelTitleBar.hxx +++ b/sfx2/source/sidebar/PanelTitleBar.hxx @@ -36,6 +36,8 @@ public: const ::rtl::OUString& rsTitle, vcl::Window* pParentWindow, Panel* pPanel ); + virtual ~PanelTitleBar(); + virtual void dispose() SAL_OVERRIDE; void SetMoreOptionsCommand ( const ::rtl::OUString& rsCommandName, @@ -55,7 +57,7 @@ protected: private: bool mbIsLeftButtonDown; - Panel* mpPanel; + VclPtr<Panel> mpPanel; const sal_uInt16 mnMenuItemIndex; css::uno::Reference<css::frame::XFrame> mxFrame; ::rtl::OUString msMoreOptionsCommand; diff --git a/sfx2/source/sidebar/SidebarChildWindow.cxx b/sfx2/source/sidebar/SidebarChildWindow.cxx index 22d71d3ca95a..05fad1caacf8 100644 --- a/sfx2/source/sidebar/SidebarChildWindow.cxx +++ b/sfx2/source/sidebar/SidebarChildWindow.cxx @@ -47,7 +47,7 @@ SidebarChildWindow::SidebarChildWindow ( pWindow->SetHelpId(HID_SIDEBAR_WINDOW); pWindow->SetOutputSizePixel(Size(GetDefaultWidth(pWindow), 450)); - SfxDockingWindow* pDockingParent = dynamic_cast<SfxDockingWindow*>(pWindow); + SfxDockingWindow* pDockingParent = dynamic_cast<SfxDockingWindow*>(pWindow.get()); if (pDockingParent != NULL) { if (pInfo && pInfo->aExtraString.isEmpty() && pInfo->aModule != "simpress") diff --git a/sfx2/source/sidebar/SidebarController.cxx b/sfx2/source/sidebar/SidebarController.cxx index eb2554df744d..807403248053 100644 --- a/sfx2/source/sidebar/SidebarController.cxx +++ b/sfx2/source/sidebar/SidebarController.cxx @@ -188,13 +188,13 @@ void SAL_CALL SidebarController::disposing (void) if (mxReadOnlyModeDispatch.is()) mxReadOnlyModeDispatch->removeStatusListener(this, Tools::GetURL(gsReadOnlyCommandName)); - if (mpSplitWindow != NULL) + if (mpSplitWindow != nullptr) { mpSplitWindow->RemoveEventListener(LINK(this, SidebarController, WindowEventHandler)); mpSplitWindow = NULL; } - if (mpParentWindow != NULL) + if (mpParentWindow != nullptr) { mpParentWindow->RemoveEventListener(LINK(this, SidebarController, WindowEventHandler)); mpParentWindow = NULL; @@ -737,7 +737,7 @@ Reference<ui::XUIElement> SidebarController::CreateUIElement ( ::comphelper::NamedValueCollection aCreationArguments; aCreationArguments.put("Frame", makeAny(mxFrame)); aCreationArguments.put("ParentWindow", makeAny(rxWindow)); - SfxDockingWindow* pSfxDockingWindow = dynamic_cast<SfxDockingWindow*>(mpParentWindow); + SfxDockingWindow* pSfxDockingWindow = dynamic_cast<SfxDockingWindow*>(mpParentWindow.get()); if (pSfxDockingWindow != NULL) aCreationArguments.put("SfxBindings", makeAny(sal_uInt64(&pSfxDockingWindow->GetBindings()))); aCreationArguments.put("Theme", Theme::GetPropertySet()); @@ -802,7 +802,7 @@ IMPL_LINK(SidebarController, WindowEventHandler, VclWindowEvent*, pEvent) break; } } - else if (pEvent->GetWindow()==mpSplitWindow && mpSplitWindow!=NULL) + else if (pEvent->GetWindow()==mpSplitWindow && mpSplitWindow!=nullptr) { switch (pEvent->GetId()) { @@ -1060,7 +1060,7 @@ void SidebarController::RestrictWidth (sal_Int32 nWidth) SfxSplitWindow* pSplitWindow = GetSplitWindow(); if (pSplitWindow != NULL) { - const sal_uInt16 nId (pSplitWindow->GetItemId(mpParentWindow)); + const sal_uInt16 nId (pSplitWindow->GetItemId(mpParentWindow.get())); const sal_uInt16 nSetId (pSplitWindow->GetSet(nId)); pSplitWindow->SetItemSizeRange( nSetId, @@ -1071,17 +1071,17 @@ void SidebarController::RestrictWidth (sal_Int32 nWidth) SfxSplitWindow* SidebarController::GetSplitWindow (void) { - if (mpParentWindow != NULL) + if (mpParentWindow != nullptr) { SfxSplitWindow* pSplitWindow = dynamic_cast<SfxSplitWindow*>(mpParentWindow->GetParent()); if (pSplitWindow != mpSplitWindow) { - if (mpSplitWindow != NULL) + if (mpSplitWindow != nullptr) mpSplitWindow->RemoveEventListener(LINK(this, SidebarController, WindowEventHandler)); mpSplitWindow = pSplitWindow; - if (mpSplitWindow != NULL) + if (mpSplitWindow != nullptr) mpSplitWindow->AddEventListener(LINK(this, SidebarController, WindowEventHandler)); } return mpSplitWindow; @@ -1092,7 +1092,7 @@ SfxSplitWindow* SidebarController::GetSplitWindow (void) void SidebarController::UpdateCloseIndicator (const bool bCloseAfterDrag) { - if (mpParentWindow == NULL) + if (mpParentWindow == nullptr) return; if (bCloseAfterDrag) diff --git a/sfx2/source/sidebar/SidebarController.hxx b/sfx2/source/sidebar/SidebarController.hxx index 15c694d85fea..340aba5c32eb 100644 --- a/sfx2/source/sidebar/SidebarController.hxx +++ b/sfx2/source/sidebar/SidebarController.hxx @@ -145,7 +145,7 @@ private: static SidebarControllerContainer maSidebarControllerContainer; ::boost::scoped_ptr<Deck> mpCurrentDeck; - SidebarDockingWindow* mpParentWindow; + VclPtr<SidebarDockingWindow> mpParentWindow; ::boost::scoped_ptr<TabBar> mpTabBar; css::uno::Reference<css::frame::XFrame> mxFrame; Context maCurrentContext; @@ -177,7 +177,7 @@ private: FocusManager maFocusManager; css::uno::Reference<css::frame::XDispatch> mxReadOnlyModeDispatch; bool mbIsDocumentReadOnly; - SfxSplitWindow* mpSplitWindow; + VclPtr<SfxSplitWindow> mpSplitWindow; /** When the user moves the splitter then we remember the width at that time. */ diff --git a/sfx2/source/sidebar/SidebarPanelBase.cxx b/sfx2/source/sidebar/SidebarPanelBase.cxx index a1b54dba617e..fdaaeb4aae67 100644 --- a/sfx2/source/sidebar/SidebarPanelBase.cxx +++ b/sfx2/source/sidebar/SidebarPanelBase.cxx @@ -67,7 +67,7 @@ SidebarPanelBase::SidebarPanelBase ( if (xMultiplexer.is()) xMultiplexer->addContextChangeEventListener(this, mxFrame->getController()); } - if (mpControl != NULL) + if (mpControl != nullptr) { mpControl->SetBackground(Theme::GetWallpaper(Theme::Paint_PanelBackground)); mpControl->Show(); @@ -81,11 +81,7 @@ SidebarPanelBase::~SidebarPanelBase (void) void SAL_CALL SidebarPanelBase::disposing (void) throw (css::uno::RuntimeException) { - if (mpControl != NULL) - { - delete mpControl; - mpControl = NULL; - } + mpControl.clear(); if (mxFrame.is()) { @@ -104,7 +100,7 @@ void SAL_CALL SidebarPanelBase::notifyContextChangeEvent ( throw (css::uno::RuntimeException, std::exception) { IContextChangeReceiver* pContextChangeReceiver - = dynamic_cast<IContextChangeReceiver*>(mpControl); + = dynamic_cast<IContextChangeReceiver*>(mpControl.get()); if (pContextChangeReceiver != NULL) { const EnumContext aContext( @@ -161,7 +157,7 @@ Reference<accessibility::XAccessible> SAL_CALL SidebarPanelBase::createAccessibl Reference<awt::XWindow> SAL_CALL SidebarPanelBase::getWindow (void) throw(css::uno::RuntimeException, std::exception) { - if (mpControl != NULL) + if (mpControl != nullptr) return Reference<awt::XWindow>( mpControl->GetComponentInterface(), UNO_QUERY); @@ -176,7 +172,7 @@ ui::LayoutSize SAL_CALL SidebarPanelBase::getHeightForWidth (const sal_Int32 nWi return maLayoutSize; else { - ILayoutableWindow* pLayoutableWindow = dynamic_cast<ILayoutableWindow*>(mpControl); + ILayoutableWindow* pLayoutableWindow = dynamic_cast<ILayoutableWindow*>(mpControl.get()); if (isLayoutEnabled(mpControl)) { @@ -186,7 +182,7 @@ ui::LayoutSize SAL_CALL SidebarPanelBase::getHeightForWidth (const sal_Int32 nWi } else if (pLayoutableWindow != NULL) return pLayoutableWindow->GetHeightForWidth(nWidth); - else if (mpControl != NULL) + else if (mpControl != nullptr) { const sal_Int32 nHeight (mpControl->GetSizePixel().Height()); return ui::LayoutSize(nHeight,nHeight,nHeight); diff --git a/sfx2/source/statbar/stbitem.cxx b/sfx2/source/statbar/stbitem.cxx index da1f7e269818..3ebd81948203 100644 --- a/sfx2/source/statbar/stbitem.cxx +++ b/sfx2/source/statbar/stbitem.cxx @@ -442,7 +442,7 @@ void SfxStatusBarControl::StateChanged */ { - DBG_ASSERT( pBar != 0, "setting state to dangling StatusBar" ); + DBG_ASSERT( pBar != nullptr, "setting state to dangling StatusBar" ); const SfxStringItem* pStr = PTR_CAST( SfxStringItem, pState ); if ( eState == SfxItemState::DEFAULT && pStr ) diff --git a/sfx2/source/toolbox/imgmgr.cxx b/sfx2/source/toolbox/imgmgr.cxx index befb3c36d9aa..7b355d64b03c 100644 --- a/sfx2/source/toolbox/imgmgr.cxx +++ b/sfx2/source/toolbox/imgmgr.cxx @@ -45,7 +45,7 @@ const sal_uInt32 IMAGELIST_COUNT = 4; // small, small-hi, large, large-hi struct ToolBoxInf_Impl { - ToolBox* pToolBox; + VclPtr<ToolBox> pToolBox; sal_uInt16 nFlags; }; diff --git a/sfx2/source/toolbox/tbxitem.cxx b/sfx2/source/toolbox/tbxitem.cxx index ca0694d51d2c..6afaec6536eb 100644 --- a/sfx2/source/toolbox/tbxitem.cxx +++ b/sfx2/source/toolbox/tbxitem.cxx @@ -186,13 +186,13 @@ svt::ToolboxController* SAL_CALL SfxToolBoxControllerFactory( const Reference< X struct SfxToolBoxControl_Impl { - ToolBox* pBox; + VclPtr<ToolBox> pBox; bool bShowString; SfxTbxCtrlFactory* pFact; sal_uInt16 nTbxId; sal_uInt16 nSlotId; - SfxPopupWindow* mpFloatingWindow; - SfxPopupWindow* mpPopupWindow; + VclPtr<SfxPopupWindow> mpFloatingWindow; + VclPtr<SfxPopupWindow> mpPopupWindow; Reference< XUIElement > mxUIElement; DECL_LINK( WindowEventListener, VclSimpleEvent* ); @@ -207,10 +207,9 @@ IMPL_LINK( SfxToolBoxControl_Impl, WindowEventListener, VclSimpleEvent*, pEvent { vcl::Window* pWindow( static_cast<VclWindowEvent*>(pEvent)->GetWindow() ); if (( pWindow == mpFloatingWindow ) && - ( mpPopupWindow != 0 )) + ( mpPopupWindow != nullptr )) { - delete mpPopupWindow; - mpPopupWindow = 0; + mpPopupWindow.clear(); } } @@ -292,11 +291,8 @@ void SAL_CALL SfxToolBoxControl::dispose() throw (::com::sun::star::uno::Runtime pImpl->mxUIElement = 0; // Delete my popup windows - delete pImpl->mpFloatingWindow; - delete pImpl->mpPopupWindow; - - pImpl->mpFloatingWindow = 0; - pImpl->mpPopupWindow = 0; + pImpl->mpFloatingWindow.clear(); + pImpl->mpPopupWindow.clear(); } @@ -866,9 +862,9 @@ IMPL_LINK_NOARG(SfxToolBoxControl, PopupModeEndHdl) { // Replace floating window with popup window and destroy // floating window instance. - delete pImpl->mpFloatingWindow; + pImpl->mpFloatingWindow.clear(); pImpl->mpFloatingWindow = pImpl->mpPopupWindow; - pImpl->mpPopupWindow = 0; + pImpl->mpPopupWindow.clear(); // We also need to know when the user tries to use the // floating window. pImpl->mpFloatingWindow->AddEventListener( LINK( pImpl, SfxToolBoxControl_Impl, WindowEventListener )); @@ -877,7 +873,7 @@ IMPL_LINK_NOARG(SfxToolBoxControl, PopupModeEndHdl) { // Popup window has been closed by the user. No replacement, instance // will destroy itself. - pImpl->mpPopupWindow = 0; + pImpl->mpPopupWindow.clear(); } return 1; @@ -903,7 +899,7 @@ void SfxToolBoxControl::StateChanged const SfxPoolItem* pState ) { - DBG_ASSERT( pImpl->pBox != 0, "setting state to dangling ToolBox" ); + DBG_ASSERT( pImpl->pBox != nullptr, "setting state to dangling ToolBox" ); if ( GetId() >= SID_OBJECTMENU0 && GetId() <= SID_OBJECTMENU_LAST ) return; diff --git a/sfx2/source/view/frame.cxx b/sfx2/source/view/frame.cxx index 4b3696887b3e..c65bc7bc532b 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.clear(); 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 0c21681aeaf9..f03d12ed07a9 100644 --- a/sfx2/source/view/frame2.cxx +++ b/sfx2/source/view/frame2.cxx @@ -345,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 2f6867387afb..635ccf0bf89f 100644 --- a/sfx2/source/view/printer.cxx +++ b/sfx2/source/view/printer.cxx @@ -235,7 +235,7 @@ SfxPrintOptionsDialog::~SfxPrintOptionsDialog() void SfxPrintOptionsDialog::dispose() { delete pDlgImpl; - delete pPage; + pPage.clear(); delete pOptions; ModalDialog::dispose(); } diff --git a/sfx2/source/view/sfxbasecontroller.cxx b/sfx2/source/view/sfxbasecontroller.cxx index 9f160d7615e9..bf696c4b1949 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 5d7685af9fbb..f61969f753da 100644 --- a/sfx2/source/view/viewfrm.cxx +++ b/sfx2/source/view/viewfrm.cxx @@ -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); } @@ -1489,7 +1489,7 @@ SfxViewFrame::~SfxViewFrame() // The Bindings delete the Frame! KillDispatcher_Impl(); - delete pImp->pWindow; + pImp->pWindow.clear(); if ( GetFrame().GetCurrentViewFrame() == this ) GetFrame().SetCurrentViewFrame_Impl( NULL ); diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 34716d67aabe..71ff494c5ab0 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -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 * ); |