diff options
Diffstat (limited to 'svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx')
-rw-r--r-- | svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx b/svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx index 8dec51d66809..faa63755f7b2 100644 --- a/svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx +++ b/svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx @@ -63,12 +63,23 @@ ChineseTranslationDialog::ChineseTranslationDialog( vcl::Window* pParent ) ChineseTranslationDialog::~ChineseTranslationDialog() { + disposeOnce(); +} + +void ChineseTranslationDialog::dispose() +{ if(m_pDictionaryDialog) { if(m_pDictionaryDialog->IsInExecute()) m_pDictionaryDialog->EndDialog(); - delete m_pDictionaryDialog; } + m_pDictionaryDialog.disposeAndClear(); + m_pRB_To_Simplified.clear(); + m_pRB_To_Traditional.clear(); + m_pCB_Translate_Commonterms.clear(); + m_pPB_Editterms.clear(); + m_pBP_OK.clear(); + ModalDialog::dispose(); } void ChineseTranslationDialog::getSettings( bool& rbDirectionToSimplified @@ -96,7 +107,7 @@ IMPL_LINK_NOARG(ChineseTranslationDialog, DictionaryHdl) { if( !m_pDictionaryDialog ) { - m_pDictionaryDialog = new ChineseDictionaryDialog(this); + m_pDictionaryDialog = VclPtr<ChineseDictionaryDialog>::Create(this); } if( m_pDictionaryDialog ) { |