summaryrefslogtreecommitdiff
path: root/framework/source/uielement/edittoolbarcontroller.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'framework/source/uielement/edittoolbarcontroller.cxx')
-rw-r--r--framework/source/uielement/edittoolbarcontroller.cxx13
1 files changed, 9 insertions, 4 deletions
diff --git a/framework/source/uielement/edittoolbarcontroller.cxx b/framework/source/uielement/edittoolbarcontroller.cxx
index 67cdcb1e2e3d..41403fd9f7e7 100644
--- a/framework/source/uielement/edittoolbarcontroller.cxx
+++ b/framework/source/uielement/edittoolbarcontroller.cxx
@@ -53,6 +53,7 @@ class EditControl : public Edit
public:
EditControl( vcl::Window* pParent, WinBits nStyle, IEditListener* pEditListener );
virtual ~EditControl();
+ virtual void dispose() SAL_OVERRIDE;
virtual void Modify() SAL_OVERRIDE;
virtual void KeyInput( const ::KeyEvent& rKEvt ) SAL_OVERRIDE;
@@ -72,7 +73,13 @@ EditControl::EditControl( vcl::Window* pParent, WinBits nStyle, IEditListener* p
EditControl::~EditControl()
{
+ disposeOnce();
+}
+
+void EditControl::dispose()
+{
m_pEditListener = 0;
+ Edit::dispose();
}
void EditControl::Modify()
@@ -124,7 +131,7 @@ EditToolbarController::EditToolbarController(
ComplexToolbarController( rxContext, rFrame, pToolbar, nID, aCommand )
, m_pEditControl( 0 )
{
- m_pEditControl = new EditControl( m_pToolbar, WB_BORDER, this );
+ m_pEditControl = VclPtr<EditControl>::Create( m_pToolbar, WB_BORDER, this );
if ( nWidth == 0 )
nWidth = 100;
@@ -145,11 +152,9 @@ throw ( RuntimeException, std::exception )
SolarMutexGuard aSolarMutexGuard;
m_pToolbar->SetItemWindow( m_nID, 0 );
- delete m_pEditControl;
+ m_pEditControl.disposeAndClear();
ComplexToolbarController::dispose();
-
- m_pEditControl = 0;
}
Sequence<PropertyValue> EditToolbarController::getExecuteArgs(sal_Int16 KeyModifier) const