diff options
Diffstat (limited to 'vcl/generic')
-rw-r--r-- | vcl/generic/print/genprnpsp.cxx | 16 | ||||
-rw-r--r-- | vcl/generic/print/prtsetup.cxx | 42 | ||||
-rw-r--r-- | vcl/generic/print/prtsetup.hxx | 44 |
3 files changed, 76 insertions, 26 deletions
diff --git a/vcl/generic/print/genprnpsp.cxx b/vcl/generic/print/genprnpsp.cxx index a6f4822b07f5..d8c184973bb1 100644 --- a/vcl/generic/print/genprnpsp.cxx +++ b/vcl/generic/print/genprnpsp.cxx @@ -91,16 +91,24 @@ namespace class QueryString : public ModalDialog { private: - OKButton* m_pOKButton; - FixedText* m_pFixedText; - Edit* m_pEdit; - OUString& m_rReturnValue; + VclPtr<OKButton> m_pOKButton; + VclPtr<FixedText> m_pFixedText; + VclPtr<Edit> m_pEdit; + OUString& m_rReturnValue; DECL_LINK( ClickBtnHdl, Button* ); public: // parent window, Query text, initial value QueryString(vcl::Window*, OUString &, OUString &); + virtual ~QueryString() { dispose(); } + virtual void dispose() SAL_OVERRIDE + { + m_pOKButton.clear(); + m_pFixedText.clear(); + m_pEdit.clear(); + ModalDialog::dispose(); + } }; /* diff --git a/vcl/generic/print/prtsetup.cxx b/vcl/generic/print/prtsetup.cxx index a22f912071e2..57839084eac5 100644 --- a/vcl/generic/print/prtsetup.cxx +++ b/vcl/generic/print/prtsetup.cxx @@ -98,8 +98,11 @@ RTSDialog::~RTSDialog() void RTSDialog::dispose() { - delete m_pPaperPage; - delete m_pDevicePage; + m_pTabControl.clear(); + m_pOKButton.clear(); + m_pCancelButton.clear(); + m_pPaperPage.clear(); + m_pDevicePage.clear(); TabDialog::dispose(); } @@ -191,6 +194,24 @@ RTSPaperPage::RTSPaperPage(RTSDialog* pParent) update(); } +RTSPaperPage::~RTSPaperPage() +{ + dispose(); +} + +void RTSPaperPage::dispose() +{ + m_pParent.clear(); + m_pPaperText.clear(); + m_pPaperBox.clear(); + m_pOrientBox.clear(); + m_pDuplexText.clear(); + m_pDuplexBox.clear(); + m_pSlotText.clear(); + m_pSlotBox.clear(); + TabPage::dispose(); +} + void RTSPaperPage::update() { const PPDKey* pKey = NULL; @@ -355,6 +376,23 @@ RTSDevicePage::RTSDevicePage( RTSDialog* pParent ) } } +RTSDevicePage::~RTSDevicePage() +{ + dispose(); +} + +void RTSDevicePage::dispose() +{ + m_pParent.clear(); + m_pPPDKeyBox.clear(); + m_pPPDValueBox.clear(); + m_pCustomEdit.clear(); + m_pLevelBox.clear(); + m_pSpaceBox.clear(); + m_pDepthBox.clear(); + TabPage::dispose(); +} + sal_uLong RTSDevicePage::getDepth() { sal_uInt16 nSelectPos = m_pDepthBox->GetSelectEntryPos(); diff --git a/vcl/generic/print/prtsetup.hxx b/vcl/generic/print/prtsetup.hxx index 17852fc1a3fd..67b6cd2216b8 100644 --- a/vcl/generic/print/prtsetup.hxx +++ b/vcl/generic/print/prtsetup.hxx @@ -45,13 +45,13 @@ class RTSDialog : public TabDialog ::psp::PrinterInfo m_aJobData; // controls - TabControl* m_pTabControl; - OKButton* m_pOKButton; - CancelButton* m_pCancelButton; + VclPtr<TabControl> m_pTabControl; + VclPtr<OKButton> m_pOKButton; + VclPtr<CancelButton> m_pCancelButton; // pages - RTSPaperPage* m_pPaperPage; - RTSDevicePage* m_pDevicePage; + VclPtr<RTSPaperPage> m_pPaperPage; + VclPtr<RTSDevicePage> m_pDevicePage; // some resources OUString m_aInvalidString; @@ -71,22 +71,24 @@ public: class RTSPaperPage : public TabPage { - RTSDialog* m_pParent; + VclPtr<RTSDialog> m_pParent; - FixedText* m_pPaperText; - ListBox* m_pPaperBox; + VclPtr<FixedText> m_pPaperText; + VclPtr<ListBox> m_pPaperBox; - ListBox* m_pOrientBox; + VclPtr<ListBox> m_pOrientBox; - FixedText* m_pDuplexText; - ListBox* m_pDuplexBox; + VclPtr<FixedText> m_pDuplexText; + VclPtr<ListBox> m_pDuplexBox; - FixedText* m_pSlotText; - ListBox* m_pSlotBox; + VclPtr<FixedText> m_pSlotText; + VclPtr<ListBox> m_pSlotBox; DECL_LINK( SelectHdl, ListBox* ); public: RTSPaperPage( RTSDialog* ); + virtual ~RTSPaperPage(); + virtual void dispose() SAL_OVERRIDE; void update(); @@ -95,16 +97,16 @@ public: class RTSDevicePage : public TabPage { - RTSDialog* m_pParent; + VclPtr<RTSDialog> m_pParent; - ListBox* m_pPPDKeyBox; - ListBox* m_pPPDValueBox; + VclPtr<ListBox> m_pPPDKeyBox; + VclPtr<ListBox> m_pPPDValueBox; const psp::PPDValue* m_pCustomValue; - Edit* m_pCustomEdit; + VclPtr<Edit> m_pCustomEdit; - ListBox* m_pLevelBox; - ListBox* m_pSpaceBox; - ListBox* m_pDepthBox; + VclPtr<ListBox> m_pLevelBox; + VclPtr<ListBox> m_pSpaceBox; + VclPtr<ListBox> m_pDepthBox; void FillValueBox( const ::psp::PPDKey* ); @@ -112,6 +114,8 @@ class RTSDevicePage : public TabPage DECL_LINK( ModifyHdl, Edit* ); public: RTSDevicePage( RTSDialog* ); + virtual ~RTSDevicePage(); + virtual void dispose() SAL_OVERRIDE; sal_uLong getLevel(); sal_uLong getPDFDevice(); |