diff options
Diffstat (limited to 'sw/source/uibase/uiview/pview.cxx')
-rw-r--r-- | sw/source/uibase/uiview/pview.cxx | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/sw/source/uibase/uiview/pview.cxx b/sw/source/uibase/uiview/pview.cxx index fa80f75052a0..ccd5cb168bd0 100644 --- a/sw/source/uibase/uiview/pview.cxx +++ b/sw/source/uibase/uiview/pview.cxx @@ -145,13 +145,15 @@ static void lcl_InvalidateZoomSlots(SfxBindings& rBindings) // At first the zoom dialog class SwPreviewZoomDlg : public SvxStandardDialog { - NumericField* m_pRowEdit; - NumericField* m_pColEdit; + VclPtr<NumericField> m_pRowEdit; + VclPtr<NumericField> m_pColEdit; virtual void Apply() SAL_OVERRIDE; public: SwPreviewZoomDlg( SwPagePreviewWin& rParent ); + virtual ~SwPreviewZoomDlg(); + virtual void dispose() SAL_OVERRIDE; }; SwPreviewZoomDlg::SwPreviewZoomDlg( SwPagePreviewWin& rParent ) @@ -164,6 +166,18 @@ SwPreviewZoomDlg::SwPreviewZoomDlg( SwPagePreviewWin& rParent ) m_pColEdit->SetValue( rParent.GetCol() ); } +SwPreviewZoomDlg::~SwPreviewZoomDlg() +{ + dispose(); +} + +void SwPreviewZoomDlg::dispose() +{ + m_pRowEdit.clear(); + m_pColEdit.clear(); + SvxStandardDialog::dispose(); +} + void SwPreviewZoomDlg::Apply() { static_cast<SwPagePreviewWin*>(GetParent())->CalcWish( @@ -1224,11 +1238,6 @@ SwPagePreview::~SwPagePreview() SwViewShell* pVShell = pViewWin->GetViewShell(); pVShell->SetWin(0); delete pVShell; - delete pViewWin; - - delete pScrollFill; - delete pHScrollbar; - delete pVScrollbar; } SwDocShell* SwPagePreview::GetDocShell() @@ -1239,20 +1248,20 @@ SwDocShell* SwPagePreview::GetDocShell() int SwPagePreview::_CreateScrollbar( bool bHori ) { vcl::Window *pMDI = &GetViewFrame()->GetWindow(); - SwScrollbar** ppScrollbar = bHori ? &pHScrollbar : &pVScrollbar; + VclPtr<SwScrollbar>& ppScrollbar = bHori ? pHScrollbar : pVScrollbar; - assert(!*ppScrollbar); //check beforehand! + assert(!ppScrollbar.get()); //check beforehand! - *ppScrollbar = new SwScrollbar( pMDI, bHori ); + ppScrollbar = new SwScrollbar( pMDI, bHori ); ScrollDocSzChg(); - (*ppScrollbar)->EnableDrag( true ); - (*ppScrollbar)->SetEndScrollHdl( LINK( this, SwPagePreview, EndScrollHdl )); + ppScrollbar->EnableDrag( true ); + ppScrollbar->SetEndScrollHdl( LINK( this, SwPagePreview, EndScrollHdl )); - (*ppScrollbar)->SetScrollHdl( LINK( this, SwPagePreview, ScrollHdl )); + ppScrollbar->SetScrollHdl( LINK( this, SwPagePreview, ScrollHdl )); InvalidateBorder(); - (*ppScrollbar)->ExtendedShow(); + ppScrollbar->ExtendedShow(); return 1; } |