summaryrefslogtreecommitdiff
path: root/sfx2/source
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2/source')
-rw-r--r--sfx2/source/appl/childwin.cxx18
-rw-r--r--sfx2/source/appl/fileobj.hxx2
-rw-r--r--sfx2/source/appl/helpinterceptor.hxx3
-rw-r--r--sfx2/source/appl/impldde.cxx24
-rw-r--r--sfx2/source/appl/lnkbase2.cxx4
-rw-r--r--sfx2/source/appl/newhelp.cxx79
-rw-r--r--sfx2/source/appl/newhelp.hxx58
-rw-r--r--sfx2/source/appl/workwin.cxx16
-rw-r--r--sfx2/source/control/thumbnailview.cxx2
-rw-r--r--sfx2/source/control/thumbnailviewacc.cxx2
-rw-r--r--sfx2/source/control/thumbnailviewacc.hxx5
-rw-r--r--sfx2/source/control/thumbnailviewitem.cxx5
-rw-r--r--sfx2/source/dialog/alienwarn.cxx2
-rw-r--r--sfx2/source/dialog/backingwindow.cxx27
-rw-r--r--sfx2/source/dialog/backingwindow.hxx58
-rw-r--r--sfx2/source/dialog/basedlgs.cxx13
-rw-r--r--sfx2/source/dialog/checkin.cxx13
-rw-r--r--sfx2/source/dialog/dinfdlg.cxx102
-rw-r--r--sfx2/source/dialog/dockwin.cxx10
-rw-r--r--sfx2/source/dialog/documentfontsdialog.cxx11
-rw-r--r--sfx2/source/dialog/filedlgimpl.hxx2
-rw-r--r--sfx2/source/dialog/infobar.cxx31
-rw-r--r--sfx2/source/dialog/inputdlg.cxx14
-rw-r--r--sfx2/source/dialog/mgetempl.cxx12
-rw-r--r--sfx2/source/dialog/navigat.cxx2
-rw-r--r--sfx2/source/dialog/newstyle.cxx2
-rw-r--r--sfx2/source/dialog/partwnd.cxx8
-rw-r--r--sfx2/source/dialog/passwd.cxx22
-rw-r--r--sfx2/source/dialog/printopt.cxx30
-rw-r--r--sfx2/source/dialog/recfloat.cxx3
-rw-r--r--sfx2/source/dialog/securitypage.cxx8
-rw-r--r--sfx2/source/dialog/splitwin.cxx19
-rw-r--r--sfx2/source/dialog/srchdlg.cxx6
-rw-r--r--sfx2/source/dialog/tabdlg.cxx44
-rw-r--r--sfx2/source/dialog/templateinfodlg.cxx6
-rw-r--r--sfx2/source/dialog/templdlg.cxx9
-rw-r--r--sfx2/source/dialog/versdlg.cxx31
-rw-r--r--sfx2/source/doc/new.cxx22
-rw-r--r--sfx2/source/doc/templatedlg.cxx14
-rw-r--r--sfx2/source/inc/alienwarn.hxx4
-rw-r--r--sfx2/source/inc/documentfontsdialog.hxx4
-rw-r--r--sfx2/source/inc/inputdlg.hxx10
-rw-r--r--sfx2/source/inc/recfloat.hxx2
-rw-r--r--sfx2/source/inc/splitwin.hxx10
-rw-r--r--sfx2/source/inc/templdgi.hxx10
-rw-r--r--sfx2/source/inc/versdlg.hxx40
-rw-r--r--sfx2/source/inc/workwin.hxx12
-rw-r--r--sfx2/source/sidebar/FocusManager.cxx24
-rw-r--r--sfx2/source/sidebar/FocusManager.hxx10
-rw-r--r--sfx2/source/sidebar/PanelTitleBar.cxx19
-rw-r--r--sfx2/source/sidebar/PanelTitleBar.hxx4
-rw-r--r--sfx2/source/sidebar/SidebarChildWindow.cxx2
-rw-r--r--sfx2/source/sidebar/SidebarController.cxx18
-rw-r--r--sfx2/source/sidebar/SidebarController.hxx4
-rw-r--r--sfx2/source/sidebar/SidebarPanelBase.cxx16
-rw-r--r--sfx2/source/statbar/stbitem.cxx2
-rw-r--r--sfx2/source/toolbox/imgmgr.cxx2
-rw-r--r--sfx2/source/toolbox/tbxitem.cxx26
-rw-r--r--sfx2/source/view/frame.cxx2
-rw-r--r--sfx2/source/view/frame2.cxx2
-rw-r--r--sfx2/source/view/impframe.hxx14
-rw-r--r--sfx2/source/view/impviewframe.hxx4
-rw-r--r--sfx2/source/view/printer.cxx2
-rw-r--r--sfx2/source/view/sfxbasecontroller.cxx2
-rw-r--r--sfx2/source/view/viewfrm.cxx4
-rw-r--r--sfx2/source/view/viewprn.cxx4
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 * );