diff options
Diffstat (limited to 'vcl/unx/generic/printer/cupsmgr.cxx')
-rw-r--r-- | vcl/unx/generic/printer/cupsmgr.cxx | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/vcl/unx/generic/printer/cupsmgr.cxx b/vcl/unx/generic/printer/cupsmgr.cxx index 4611f377ac48..d51f752463df 100644 --- a/vcl/unx/generic/printer/cupsmgr.cxx +++ b/vcl/unx/generic/printer/cupsmgr.cxx @@ -913,13 +913,14 @@ namespace { class RTSPWDialog : public ModalDialog { - FixedText* m_pText; - Edit* m_pUserEdit; - Edit* m_pPassEdit; + VclPtr<FixedText> m_pText; + VclPtr<Edit> m_pUserEdit; + VclPtr<Edit> m_pPassEdit; public: RTSPWDialog(const OString& rServer, const OString& rUserName, vcl::Window* pParent); - + virtual ~RTSPWDialog(); + virtual void dispose() SAL_OVERRIDE; OString getUserName() const; OString getPassword() const; }; @@ -938,6 +939,19 @@ namespace m_pUserEdit->SetText( OStringToOUString(rUserName, osl_getThreadTextEncoding())); } + RTSPWDialog::~RTSPWDialog() + { + disposeOnce(); + } + + void RTSPWDialog::dispose() + { + m_pText.clear(); + m_pUserEdit.clear(); + m_pPassEdit.clear(); + ModalDialog::dispose(); + } + OString RTSPWDialog::getUserName() const { return OUStringToOString( m_pUserEdit->GetText(), osl_getThreadTextEncoding() ); @@ -952,11 +966,11 @@ namespace { bool bRet = false; - RTSPWDialog aDialog(rServer, rUserName, NULL); - if (aDialog.Execute()) + ScopedVclPtrInstance<RTSPWDialog> aDialog(rServer, rUserName, nullptr); + if (aDialog->Execute()) { - rUserName = aDialog.getUserName(); - rPassword = aDialog.getPassword(); + rUserName = aDialog->getUserName(); + rPassword = aDialog->getPassword(); bRet = true; } |