summaryrefslogtreecommitdiff
path: root/cui/source/dialogs/iconcdlg.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/dialogs/iconcdlg.cxx')
-rw-r--r--cui/source/dialogs/iconcdlg.cxx46
1 files changed, 35 insertions, 11 deletions
diff --git a/cui/source/dialogs/iconcdlg.cxx b/cui/source/dialogs/iconcdlg.cxx
index 1c999e3cde65..d1c8c3523e9d 100644
--- a/cui/source/dialogs/iconcdlg.cxx
+++ b/cui/source/dialogs/iconcdlg.cxx
@@ -52,9 +52,15 @@ IconChoicePage::IconChoicePage( vcl::Window *pParent, const OString& rID,
}
-
IconChoicePage::~IconChoicePage()
{
+ disposeOnce();
+}
+
+void IconChoicePage::dispose()
+{
+ pDialog.clear();
+ TabPage::dispose();
}
/**********************************************************************
@@ -150,8 +156,8 @@ void IconChoicePage::DataChanged( const DataChangedEvent& rDCEvt )
extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL makeSvtIconChoiceCtrl(vcl::Window *pParent, VclBuilder::stringmap &)
{
return new SvtIconChoiceCtrl(pParent, WB_3DLOOK | WB_ICON | WB_BORDER |
- WB_NOCOLUMNHEADER | WB_HIGHLIGHTFRAME |
- WB_NODRAGSELECTION | WB_TABSTOP);
+ WB_NOCOLUMNHEADER | WB_HIGHLIGHTFRAME |
+ WB_NODRAGSELECTION | WB_TABSTOP);
}
IconChoiceDialog::IconChoiceDialog ( vcl::Window* pParent, const OUString& rID,
@@ -209,6 +215,11 @@ IconChoiceDialog::IconChoiceDialog ( vcl::Window* pParent, const OUString& rID,
IconChoiceDialog ::~IconChoiceDialog ()
{
+ disposeOnce();
+}
+
+void IconChoiceDialog::dispose()
+{
// save configuration at INI-Manager
// and remove pages
//SvtViewOptions aTabDlgOpt( E_TABDIALOG, rId );
@@ -231,22 +242,35 @@ IconChoiceDialog ::~IconChoiceDialog ()
if ( pData->bOnDemand )
delete &pData->pPage->GetItemSet();
- delete pData->pPage;
+ pData->pPage.disposeAndClear();
}
delete pData;
}
+ maPageList.clear();
- // remove Userdata from Icons
- for ( sal_uLong i=0; i < m_pIconCtrl->GetEntryCount(); i++)
+ if (m_pIconCtrl)
{
- SvxIconChoiceCtrlEntry* pEntry = m_pIconCtrl->GetEntry ( i );
- sal_uInt16* pUserData = static_cast<sal_uInt16*>(pEntry->GetUserData());
- delete pUserData;
+ // remove Userdata from Icons
+ for ( sal_uLong i=0; i < m_pIconCtrl->GetEntryCount(); i++)
+ {
+ SvxIconChoiceCtrlEntry* pEntry = m_pIconCtrl->GetEntry ( i );
+ delete static_cast<sal_uInt16*>(pEntry->GetUserData());
+ }
}
-
delete pRanges;
+ pRanges = NULL;
delete pOutSet;
+ pOutSet = NULL;
+
+ m_pIconCtrl.clear();
+ m_pOKBtn.clear();
+ m_pApplyBtn.clear();
+ m_pCancelBtn.clear();
+ m_pHelpBtn.clear();
+ m_pResetBtn.clear();
+ m_pTabContainer.clear();
+ ModalDialog::dispose();
}
/**********************************************************************
@@ -532,7 +556,7 @@ bool IconChoiceDialog::DeActivatePageImpl ()
for ( size_t i = 0, nCount = maPageList.size(); i < nCount; ++i )
{
IconChoicePageData* pObj = maPageList[ i ];
- if ( pObj->pPage != pPage )
+ if ( pObj->pPage.get() != pPage )
pObj->bRefresh = true;
else
pObj->bRefresh = false;