diff options
Diffstat (limited to 'sd/source/ui/dlg/headerfooterdlg.cxx')
-rw-r--r-- | sd/source/ui/dlg/headerfooterdlg.cxx | 76 |
1 files changed, 55 insertions, 21 deletions
diff --git a/sd/source/ui/dlg/headerfooterdlg.cxx b/sd/source/ui/dlg/headerfooterdlg.cxx index e7590357f67e..84d0da17bd27 100644 --- a/sd/source/ui/dlg/headerfooterdlg.cxx +++ b/sd/source/ui/dlg/headerfooterdlg.cxx @@ -115,29 +115,29 @@ class HeaderFooterTabPage : public TabPage { private: - FixedText* mpFTIncludeOn; + VclPtr<FixedText> mpFTIncludeOn; - CheckBox* mpCBHeader; - VclContainer* mpHeaderBox; - Edit* mpTBHeader; + VclPtr<CheckBox> mpCBHeader; + VclPtr<VclContainer> mpHeaderBox; + VclPtr<Edit> mpTBHeader; - CheckBox* mpCBDateTime; - RadioButton* mpRBDateTimeFixed; - RadioButton* mpRBDateTimeAutomatic; - Edit* mpTBDateTimeFixed; - ListBox* mpCBDateTimeFormat; - FixedText* mpFTDateTimeLanguage; - SvxLanguageBox* mpCBDateTimeLanguage; + VclPtr<CheckBox> mpCBDateTime; + VclPtr<RadioButton> mpRBDateTimeFixed; + VclPtr<RadioButton> mpRBDateTimeAutomatic; + VclPtr<Edit> mpTBDateTimeFixed; + VclPtr<ListBox> mpCBDateTimeFormat; + VclPtr<FixedText> mpFTDateTimeLanguage; + VclPtr<SvxLanguageBox> mpCBDateTimeLanguage; - CheckBox* mpCBFooter; - VclContainer* mpFooterBox; - Edit* mpTBFooter; + VclPtr<CheckBox> mpCBFooter; + VclPtr<VclContainer> mpFooterBox; + VclPtr<Edit> mpTBFooter; - CheckBox* mpCBSlideNumber; + VclPtr<CheckBox> mpCBSlideNumber; - CheckBox* mpCBNotOnTitle; + VclPtr<CheckBox> mpCBNotOnTitle; - PresLayoutPreview* mpCTPreview; + VclPtr<PresLayoutPreview> mpCTPreview; SdDrawDocument* mpDoc; LanguageType meOldLanguage; @@ -155,6 +155,7 @@ private: public: HeaderFooterTabPage( vcl::Window* pParent, SdDrawDocument* pDoc, SdPage* pActualPage, bool bHandoutMode ); virtual ~HeaderFooterTabPage(); + virtual void dispose() SAL_OVERRIDE; void init( const HeaderFooterSettings& rSettings, bool bNotOnTitle ); void getData( HeaderFooterSettings& rSettings, bool& rNotOnTitle ); @@ -198,7 +199,7 @@ HeaderFooterDialog::HeaderFooterDialog( ViewShell* pViewShell, vcl::Window* pPar mpTabCtrl->Show(); mnSlidesId = mpTabCtrl->GetPageId("slides"); - mpSlideTabPage = new HeaderFooterTabPage( mpTabCtrl, pDoc, pSlide, false ); + mpSlideTabPage = VclPtr<HeaderFooterTabPage>::Create( mpTabCtrl, pDoc, pSlide, false ); mpTabCtrl->SetTabPage( mnSlidesId, mpSlideTabPage ); Size aSiz = mpSlideTabPage->GetSizePixel(); @@ -211,7 +212,7 @@ HeaderFooterDialog::HeaderFooterDialog( ViewShell* pViewShell, vcl::Window* pPar } mnNotesId = mpTabCtrl->GetPageId("notes"); - mpNotesHandoutsTabPage = new HeaderFooterTabPage( mpTabCtrl, pDoc, pNotes, true ); + mpNotesHandoutsTabPage = VclPtr<HeaderFooterTabPage>::Create( mpTabCtrl, pDoc, pNotes, true ); mpTabCtrl->SetTabPage( mnNotesId, mpNotesHandoutsTabPage ); get(maPBApplyToAll, "apply_all" ); @@ -240,8 +241,18 @@ HeaderFooterDialog::HeaderFooterDialog( ViewShell* pViewShell, vcl::Window* pPar HeaderFooterDialog::~HeaderFooterDialog() { - delete mpSlideTabPage; - delete mpNotesHandoutsTabPage; + disposeOnce(); +} + +void HeaderFooterDialog::dispose() +{ + mpSlideTabPage.disposeAndClear(); + mpNotesHandoutsTabPage.disposeAndClear(); + mpTabCtrl.clear(); + maPBApplyToAll.clear(); + maPBApply.clear(); + maPBCancel.clear(); + TabDialog::dispose(); } IMPL_LINK( HeaderFooterDialog, ActivatePageHdl, TabControl *, pTabCtrl ) @@ -451,6 +462,29 @@ HeaderFooterTabPage::HeaderFooterTabPage( vcl::Window* pWindow, SdDrawDocument* HeaderFooterTabPage::~HeaderFooterTabPage() { + disposeOnce(); +} + +void HeaderFooterTabPage::dispose() +{ + mpFTIncludeOn.clear(); + mpCBHeader.clear(); + mpHeaderBox.clear(); + mpTBHeader.clear(); + mpCBDateTime.clear(); + mpRBDateTimeFixed.clear(); + mpRBDateTimeAutomatic.clear(); + mpTBDateTimeFixed.clear(); + mpCBDateTimeFormat.clear(); + mpFTDateTimeLanguage.clear(); + mpCBDateTimeLanguage.clear(); + mpCBFooter.clear(); + mpFooterBox.clear(); + mpTBFooter.clear(); + mpCBSlideNumber.clear(); + mpCBNotOnTitle.clear(); + mpCTPreview.clear(); + TabPage::dispose(); } IMPL_LINK_NOARG(HeaderFooterTabPage, LanguageChangeHdl) |