diff options
Diffstat (limited to 'chart2/source/controller/dialogs/dlg_View3D.cxx')
-rw-r--r-- | chart2/source/controller/dialogs/dlg_View3D.cxx | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/chart2/source/controller/dialogs/dlg_View3D.cxx b/chart2/source/controller/dialogs/dlg_View3D.cxx index 0ff8d1b10a35..ec67eb829f59 100644 --- a/chart2/source/controller/dialogs/dlg_View3D.cxx +++ b/chart2/source/controller/dialogs/dlg_View3D.cxx @@ -49,9 +49,9 @@ View3DDialog::View3DDialog(vcl::Window* pParent, const uno::Reference< frame::XM get(m_pTabControl, "tabcontrol"); uno::Reference< beans::XPropertySet > xSceneProperties( ChartModelHelper::findDiagram( xChartModel ), uno::UNO_QUERY ); - m_pGeometry = new ThreeD_SceneGeometry_TabPage(m_pTabControl,xSceneProperties,m_aControllerLocker); - m_pAppearance = new ThreeD_SceneAppearance_TabPage(m_pTabControl,xChartModel,m_aControllerLocker); - m_pIllumination = new ThreeD_SceneIllumination_TabPage(m_pTabControl,xSceneProperties,xChartModel,pColorTable); + m_pGeometry = VclPtr<ThreeD_SceneGeometry_TabPage>::Create(m_pTabControl,xSceneProperties,m_aControllerLocker); + m_pAppearance = VclPtr<ThreeD_SceneAppearance_TabPage>::Create(m_pTabControl,xChartModel,m_aControllerLocker); + m_pIllumination = VclPtr<ThreeD_SceneIllumination_TabPage>::Create(m_pTabControl,xSceneProperties,xChartModel,pColorTable); m_pTabControl->InsertPage( TP_3D_SCENEGEOMETRY, SCH_RESSTR(STR_PAGE_PERSPECTIVE) ); m_pTabControl->InsertPage( TP_3D_SCENEAPPEARANCE, SCH_RESSTR(STR_PAGE_APPEARANCE) ); @@ -66,11 +66,18 @@ View3DDialog::View3DDialog(vcl::Window* pParent, const uno::Reference< frame::XM View3DDialog::~View3DDialog() { - delete m_pGeometry; - delete m_pAppearance; - delete m_pIllumination; + disposeOnce(); +} - m_nLastPageId = m_pTabControl->GetCurPageId(); +void View3DDialog::dispose() +{ + m_pGeometry.disposeAndClear(); + m_pAppearance.disposeAndClear(); + m_pIllumination.disposeAndClear(); + if (m_pTabControl) + m_nLastPageId = m_pTabControl->GetCurPageId(); + m_pTabControl.clear(); + TabDialog::dispose(); } short View3DDialog::Execute() |