diff options
Diffstat (limited to 'xmlsecurity/source/dialogs/certificatechooser.cxx')
-rw-r--r-- | xmlsecurity/source/dialogs/certificatechooser.cxx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx index 4f822527997b..9c5e28e94b67 100644 --- a/xmlsecurity/source/dialogs/certificatechooser.cxx +++ b/xmlsecurity/source/dialogs/certificatechooser.cxx @@ -62,7 +62,7 @@ CertificateChooser::CertificateChooser( vcl::Window* _pParent, uno::Reference< u pSignatures->set_width_request(aControlSize.Width()); pSignatures->set_height_request(aControlSize.Height()); - m_pCertLB = new SvSimpleTable(*pSignatures); + m_pCertLB = VclPtr<SvSimpleTable>::Create(*pSignatures); static long nTabs[] = { 3, 0, 30*nControlWidth/100, 60*nControlWidth/100 }; m_pCertLB->SetTabs( &nTabs[0] ); m_pCertLB->InsertHeaderEntry(get<FixedText>("issuedto")->GetText() + "\t" + get<FixedText>("issuedby")->GetText() @@ -81,7 +81,15 @@ CertificateChooser::CertificateChooser( vcl::Window* _pParent, uno::Reference< u CertificateChooser::~CertificateChooser() { - delete m_pCertLB; + disposeOnce(); +} + +void CertificateChooser::dispose() +{ + m_pCertLB.disposeAndClear(); + m_pViewBtn.clear(); + m_pOKBtn.clear(); + ModalDialog::dispose(); } short CertificateChooser::Execute() @@ -217,8 +225,8 @@ void CertificateChooser::ImplShowCertificateDetails() uno::Reference< css::security::XCertificate > xCert = GetSelectedCertificate(); if( xCert.is() ) { - CertificateViewer aViewer( this, mxSecurityEnvironment, xCert, true ); - aViewer.Execute(); + ScopedVclPtrInstance< CertificateViewer > aViewer( this, mxSecurityEnvironment, xCert, true ); + aViewer->Execute(); } } |