summaryrefslogtreecommitdiff
path: root/svtools/source/dialogs/wizdlg.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/dialogs/wizdlg.cxx')
-rw-r--r--svtools/source/dialogs/wizdlg.cxx15
1 files changed, 13 insertions, 2 deletions
diff --git a/svtools/source/dialogs/wizdlg.cxx b/svtools/source/dialogs/wizdlg.cxx
index 5c42e0c6f93e..0d0acc4e5242 100644
--- a/svtools/source/dialogs/wizdlg.cxx
+++ b/svtools/source/dialogs/wizdlg.cxx
@@ -34,7 +34,7 @@
struct ImplWizPageData
{
ImplWizPageData* mpNext;
- TabPage* mpPage;
+ VclPtr<TabPage> mpPage;
};
@@ -42,7 +42,7 @@ struct ImplWizPageData
struct ImplWizButtonData
{
ImplWizButtonData* mpNext;
- Button* mpButton;
+ VclPtr<Button> mpButton;
long mnOffset;
};
@@ -363,6 +363,11 @@ WizardDialog::WizardDialog( vcl::Window* pParent, const OUString& rID, const OUS
WizardDialog::~WizardDialog()
{
+ disposeOnce();
+}
+
+void WizardDialog::dispose()
+{
maWizardLayoutIdle.Stop();
// Remove all buttons
@@ -372,6 +377,12 @@ WizardDialog::~WizardDialog()
// Remove all pages
while ( mpFirstPage )
RemovePage( mpFirstPage->mpPage );
+
+ mpCurTabPage.clear();
+ mpPrevBtn.clear();
+ mpNextBtn.clear();
+ mpViewWindow.clear();
+ ModalDialog::dispose();
}