diff options
Diffstat (limited to 'starmath/source/ElementsDockingWindow.cxx')
-rw-r--r-- | starmath/source/ElementsDockingWindow.cxx | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx index 12eb670136a1..4a5118a5b789 100644 --- a/starmath/source/ElementsDockingWindow.cxx +++ b/starmath/source/ElementsDockingWindow.cxx @@ -224,7 +224,7 @@ SmElementsControl::SmElementsControl(vcl::Window *pParent) , maCurrentSetId(0) , mpCurrentElement(NULL) , mbVerticalMode(true) - , mxScroll(new ScrollBar(this, WB_VERT)) + , mxScroll(VclPtr<ScrollBar>::Create(this, WB_VERT)) { SetMapMode( MapMode(MAP_100TH_MM) ); SetDrawMode( DRAWMODE_DEFAULT ); @@ -239,7 +239,14 @@ SmElementsControl::SmElementsControl(vcl::Window *pParent) SmElementsControl::~SmElementsControl() { + disposeOnce(); +} + +void SmElementsControl::dispose() +{ mpDocShell->DoClose(); + mxScroll.disposeAndClear(); + Control::dispose(); } void SmElementsControl::setVerticalMode(bool bVerticalMode) @@ -646,7 +653,7 @@ SmElementsDockingWindow::SmElementsDockingWindow(SfxBindings* pInputBindings, Sf SfxDockingWindow(pInputBindings, pChildWindow, pParent, "DockingElements", "modules/smath/ui/dockingelements.ui") { - mpElementsControl = new SmElementsControl(get<vcl::Window>("box")); + mpElementsControl = VclPtr<SmElementsControl>::Create(get<vcl::Window>("box")); mpElementsControl->set_hexpand(true); mpElementsControl->set_vexpand(true); mpElementsControl->Show(); @@ -672,7 +679,14 @@ SmElementsDockingWindow::SmElementsDockingWindow(SfxBindings* pInputBindings, Sf SmElementsDockingWindow::~SmElementsDockingWindow () { - delete mpElementsControl; + disposeOnce(); +} + +void SmElementsDockingWindow::dispose() +{ + mpElementsControl.disposeAndClear(); + mpElementListBox.clear(); + SfxDockingWindow::dispose(); } void SmElementsDockingWindow::ToggleFloatingMode() @@ -755,8 +769,8 @@ SmElementsDockingWindowWrapper::SmElementsDockingWindowWrapper( SfxBindings *pBindings, SfxChildWinInfo *pInfo) : SfxChildWindow(pParentWindow, nId) { - SmElementsDockingWindow* pDialog = new SmElementsDockingWindow(pBindings, this, pParentWindow); - pWindow = pDialog; + VclPtrInstance<SmElementsDockingWindow> pDialog(pBindings, this, pParentWindow); + pWindow.reset(pDialog); pDialog->setDeferredProperties(); pDialog->SetPosSizePixel(Point(0, 0), Size(300, 0)); pDialog->Show(); |