diff options
Diffstat (limited to 'svx/source/form/filtnav.cxx')
-rw-r--r-- | svx/source/form/filtnav.cxx | 20 |
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 ); } |