diff options
Diffstat (limited to 'forms/source/solar/control/navtoolbar.cxx')
-rw-r--r-- | forms/source/solar/control/navtoolbar.cxx | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/forms/source/solar/control/navtoolbar.cxx b/forms/source/solar/control/navtoolbar.cxx index 3ccbf2eb8457..19bcd6937d5f 100644 --- a/forms/source/solar/control/navtoolbar.cxx +++ b/forms/source/solar/control/navtoolbar.cxx @@ -147,14 +147,16 @@ namespace frm NavigationToolBar::~NavigationToolBar( ) { - for ( ::std::vector< vcl::Window* >::iterator loopChildWins = m_aChildWins.begin(); - loopChildWins != m_aChildWins.end(); - ++loopChildWins - ) - { - delete *loopChildWins; - } - delete m_pToolbar; + disposeOnce(); + } + + void NavigationToolBar::dispose() + { + for (auto i = m_aChildWins.begin(); i != m_aChildWins.end(); ++i) + i->disposeAndClear(); + m_aChildWins.clear(); + m_pToolbar.disposeAndClear(); + vcl::Window::dispose(); } @@ -234,7 +236,7 @@ namespace frm void NavigationToolBar::implInit( ) { - m_pToolbar = new ImplNavToolBar( this ); + m_pToolbar = VclPtr<ImplNavToolBar>::Create( this ); m_pToolbar->SetOutStyle( TOOLBOX_STYLE_FLAT ); m_pToolbar->Show(); @@ -299,17 +301,17 @@ namespace frm vcl::Window* pItemWindow = NULL; if ( FormFeature::MoveAbsolute == pSupportedFeatures->nId ) { - pItemWindow = new RecordPositionInput( m_pToolbar ); + pItemWindow = VclPtr<RecordPositionInput>::Create( m_pToolbar ); static_cast< RecordPositionInput* >( pItemWindow )->setDispatcher( m_pDispatcher ); } else if ( LID_RECORD_FILLER == pSupportedFeatures->nId ) { - pItemWindow = new FixedText( m_pToolbar, WB_CENTER | WB_VCENTER ); + pItemWindow = VclPtr<FixedText>::Create( m_pToolbar, WB_CENTER | WB_VCENTER ); pItemWindow->SetBackground(Wallpaper(Color(COL_TRANSPARENT))); } else { - pItemWindow = new FixedText( m_pToolbar, WB_VCENTER ); + pItemWindow = VclPtr<FixedText>::Create( m_pToolbar, WB_VCENTER ); pItemWindow->SetBackground(); pItemWindow->SetPaintTransparent(true); } @@ -658,11 +660,6 @@ namespace frm } - RecordPositionInput::~RecordPositionInput() - { - } - - void RecordPositionInput::setDispatcher( const IFeatureDispatcher* _pDispatcher ) { m_pDispatcher = _pDispatcher; |