diff options
Diffstat (limited to 'avmedia/source/viewer/mediawindow_impl.cxx')
-rw-r--r-- | avmedia/source/viewer/mediawindow_impl.cxx | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/avmedia/source/viewer/mediawindow_impl.cxx b/avmedia/source/viewer/mediawindow_impl.cxx index 7a6863b1b2bc..c84849b2dec3 100644 --- a/avmedia/source/viewer/mediawindow_impl.cxx +++ b/avmedia/source/viewer/mediawindow_impl.cxx @@ -56,12 +56,6 @@ MediaWindowControl::MediaWindowControl( vcl::Window* pParent ) : -MediaWindowControl::~MediaWindowControl() -{ -} - - - void MediaWindowControl::update() { MediaItem aItem; @@ -93,12 +87,6 @@ MediaChildWindow::MediaChildWindow( vcl::Window* pParent, SystemWindowData* pDat } #endif -MediaChildWindow::~MediaChildWindow() -{ -} - - - void MediaChildWindow::MouseMove( const MouseEvent& rMEvt ) { const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ), @@ -168,7 +156,7 @@ MediaWindowImpl::MediaWindowImpl( vcl::Window* pParent, MediaWindow* pMediaWindo mpMediaWindow( pMediaWindow ), mpEvents( NULL ), mbEventTransparent(true), - mpMediaWindowControl( bInternalMediaControl ? new MediaWindowControl( this ) : NULL ), + mpMediaWindowControl( bInternalMediaControl ? VclPtr<MediaWindowControl>::Create( this ) : nullptr ), mpEmptyBmpEx( NULL ), mpAudioBmpEx( NULL ) { @@ -183,6 +171,11 @@ MediaWindowImpl::MediaWindowImpl( vcl::Window* pParent, MediaWindow* pMediaWindo MediaWindowImpl::~MediaWindowImpl() { + disposeOnce(); +} + +void MediaWindowImpl::dispose() +{ if( mpEvents ) mpEvents->cleanUp(); @@ -208,8 +201,13 @@ MediaWindowImpl::~MediaWindowImpl() mpMediaWindow = NULL; delete mpEmptyBmpEx; + mpEmptyBmpEx = NULL; delete mpAudioBmpEx; - delete mpMediaWindowControl; + mpAudioBmpEx = NULL; + mpMediaWindowControl.disposeAndClear(); + mpChildWindow.disposeAndClear(); + + Control::dispose(); } uno::Reference< media::XPlayer > MediaWindowImpl::createPlayer( const OUString& rURL, const OUString& rReferer, const OUString* pMimeType ) @@ -510,13 +508,15 @@ void MediaWindowImpl::onURLChanged() { if( m_sMimeType == AVMEDIA_MIMETYPE_COMMON ) { - mpChildWindow.reset(new MediaChildWindow(this) ); + mpChildWindow.disposeAndClear(); + mpChildWindow.reset(VclPtr<MediaChildWindow>::Create(this) ); } #if HAVE_FEATURE_GLTF else if ( m_sMimeType == AVMEDIA_MIMETYPE_JSON ) { SystemWindowData aWinData = OpenGLContext::generateWinData(this, false); - mpChildWindow.reset(new MediaChildWindow(this,&aWinData)); + mpChildWindow.disposeAndClear(); + mpChildWindow.reset(VclPtr<MediaChildWindow>::Create(this,&aWinData)); mbEventTransparent = false; } #endif |