summaryrefslogtreecommitdiff
path: root/vcl/generic
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/generic')
-rw-r--r--vcl/generic/print/genprnpsp.cxx16
-rw-r--r--vcl/generic/print/prtsetup.cxx42
-rw-r--r--vcl/generic/print/prtsetup.hxx44
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();