summaryrefslogtreecommitdiff
path: root/svx/source/form/filtnav.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/form/filtnav.cxx')
-rw-r--r--svx/source/form/filtnav.cxx20
1 files changed, 16 insertions, 4 deletions
diff --git a/svx/source/form/filtnav.cxx b/svx/source/form/filtnav.cxx
index 2a39c1e54fba..3d76bfdcb10d 100644
--- a/svx/source/form/filtnav.cxx
+++ b/svx/source/form/filtnav.cxx
@@ -1149,8 +1149,14 @@ FmFilterNavigator::FmFilterNavigator( vcl::Window* pParent )
FmFilterNavigator::~FmFilterNavigator()
{
+ disposeOnce();
+}
+
+void FmFilterNavigator::dispose()
+{
EndListening( *m_pModel );
delete m_pModel;
+ SvTreeListBox::dispose();
}
@@ -1851,7 +1857,7 @@ FmFilterNavigatorWin::FmFilterNavigatorWin( SfxBindings* _pBindings, SfxChildWin
{
SetHelpId( HID_FILTER_NAVIGATOR_WIN );
- m_pNavigator = new FmFilterNavigator( this );
+ m_pNavigator = VclPtr<FmFilterNavigator>::Create( this );
m_pNavigator->Show();
SetText( SVX_RES(RID_STR_FILTER_NAVIGATOR) );
SfxDockingWindow::SetFloatingSize( Size(200,200) );
@@ -1860,7 +1866,13 @@ FmFilterNavigatorWin::FmFilterNavigatorWin( SfxBindings* _pBindings, SfxChildWin
FmFilterNavigatorWin::~FmFilterNavigatorWin()
{
- delete m_pNavigator;
+ disposeOnce();
+}
+
+void FmFilterNavigatorWin::dispose()
+{
+ m_pNavigator.disposeAndClear();
+ SfxDockingWindow::dispose();
}
@@ -1981,9 +1993,9 @@ FmFilterNavigatorWinMgr::FmFilterNavigatorWinMgr( vcl::Window *_pParent, sal_uIn
SfxBindings *_pBindings, SfxChildWinInfo* _pInfo )
:SfxChildWindow( _pParent, _nId )
{
- pWindow = new FmFilterNavigatorWin( _pBindings, this, _pParent );
+ pWindow = VclPtr<FmFilterNavigatorWin>::Create( _pBindings, this, _pParent );
eChildAlignment = SfxChildAlignment::NOALIGNMENT;
- static_cast<SfxDockingWindow*>(pWindow)->Initialize( _pInfo );
+ static_cast<SfxDockingWindow*>(pWindow.get())->Initialize( _pInfo );
}