diff options
-rw-r--r-- | framework/source/uielement/fontsizemenucontroller.cxx | 2 | ||||
-rw-r--r-- | include/sfx2/printer.hxx | 1 | ||||
-rw-r--r-- | include/sfx2/viewsh.hxx | 2 | ||||
-rw-r--r-- | sd/source/ui/presenter/PresenterTextView.cxx | 7 | ||||
-rw-r--r-- | sfx2/source/view/printer.cxx | 6 | ||||
-rw-r--r-- | sfx2/source/view/viewprn.cxx | 4 | ||||
-rw-r--r-- | sw/source/ui/dialog/ascfldlg.cxx | 4 |
7 files changed, 16 insertions, 10 deletions
diff --git a/framework/source/uielement/fontsizemenucontroller.cxx b/framework/source/uielement/fontsizemenucontroller.cxx index 3e097655c9ab..1c0af1456857 100644 --- a/framework/source/uielement/fontsizemenucontroller.cxx +++ b/framework/source/uielement/fontsizemenucontroller.cxx @@ -135,7 +135,7 @@ void FontSizeMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& r if ( pVCLPopupMenu ) { boost::scoped_ptr<FontList> pFontList; - boost::scoped_ptr<Printer> pInfoPrinter; + ScopedVclPtr<Printer> pInfoPrinter; OUString aPrinterName; SolarMutexGuard aSolarMutexGuard; diff --git a/include/sfx2/printer.hxx b/include/sfx2/printer.hxx index f07a135c8ece..694e2e8f0758 100644 --- a/include/sfx2/printer.hxx +++ b/include/sfx2/printer.hxx @@ -51,6 +51,7 @@ public: const JobSetup &rTheOrigJobSetup ); SfxPrinter( const SfxPrinter &rPrinter ); virtual ~SfxPrinter(); + virtual void dispose() SAL_OVERRIDE; SfxPrinter* Clone() const; diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx index bb7379da1a41..b1a00c844c80 100644 --- a/include/sfx2/viewsh.hxx +++ b/include/sfx2/viewsh.hxx @@ -290,7 +290,7 @@ public: SAL_DLLPRIVATE void ResetAllClients_Impl( SfxInPlaceClient *pIP ); SAL_DLLPRIVATE void DiscardClients_Impl(); - SAL_DLLPRIVATE SfxPrinter* SetPrinter_Impl( SfxPrinter *pNewPrinter ); + SAL_DLLPRIVATE SfxPrinter* SetPrinter_Impl( VclPtr<SfxPrinter>& pNewPrinter ); SAL_DLLPRIVATE bool IsShowView_Impl() const; SAL_DLLPRIVATE bool HandleNotifyEvent_Impl( NotifyEvent& rEvent ); diff --git a/sd/source/ui/presenter/PresenterTextView.cxx b/sd/source/ui/presenter/PresenterTextView.cxx index a9c746fe5f19..91c1e2dd5fc0 100644 --- a/sd/source/ui/presenter/PresenterTextView.cxx +++ b/sd/source/ui/presenter/PresenterTextView.cxx @@ -82,7 +82,7 @@ public: private: Reference<rendering::XBitmap> mxBitmap; cppcanvas::CanvasSharedPtr mpCanvas; - VirtualDevice* mpOutputDevice; + VclPtr<VirtualDevice> mpOutputDevice; EditEngine* mpEditEngine; SfxItemPool* mpEditEngineItemPool; Size maSize; @@ -261,7 +261,7 @@ PresenterTextView::Implementation::~Implementation (void) { delete mpEditEngine; SfxItemPool::Free(mpEditEngineItemPool); - delete mpOutputDevice; + mpOutputDevice.disposeAndClear(); } EditEngine * PresenterTextView::Implementation::GetEditEngine (void) @@ -453,8 +453,7 @@ Reference<rendering::XBitmap> PresenterTextView::Implementation::GetBitmap (void if ( ! mxBitmap.is()) { - if (mpOutputDevice != NULL) - delete mpOutputDevice; + mpOutputDevice.disposeAndClear(); mpOutputDevice = new VirtualDevice(*Application::GetDefaultDevice(), 0, 0); mpOutputDevice->SetMapMode(MAP_PIXEL); mpOutputDevice->SetOutputSizePixel(maSize, true); diff --git a/sfx2/source/view/printer.cxx b/sfx2/source/view/printer.cxx index ee08f4dbc0be..add92b0abc87 100644 --- a/sfx2/source/view/printer.cxx +++ b/sfx2/source/view/printer.cxx @@ -189,8 +189,14 @@ SfxPrinter* SfxPrinter::Clone() const SfxPrinter::~SfxPrinter() { + disposeOnce(); +} + +void SfxPrinter::dispose() +{ delete pOptions; delete pImpl; + Printer::dispose(); } diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx index 909c3d8c4317..8877eb125cb3 100644 --- a/sfx2/source/view/viewprn.cxx +++ b/sfx2/source/view/viewprn.cxx @@ -469,7 +469,7 @@ IMPL_LINK_NOARG(SfxDialogExecutor_Impl, Execute) Internal method for setting the differences between 'pNewPrinter' to the current printer. pNewPrinter is either taken over or deleted. */ -SfxPrinter* SfxViewShell::SetPrinter_Impl( SfxPrinter *pNewPrinter ) +SfxPrinter* SfxViewShell::SetPrinter_Impl( VclPtr<SfxPrinter>& pNewPrinter ) { // get current Printer SfxPrinter *pDocPrinter = GetPrinter(); @@ -558,7 +558,7 @@ SfxPrinter* SfxViewShell::SetPrinter_Impl( SfxPrinter *pNewPrinter ) // Keep old changed Printer. pDocPrinter->SetPrinterProps( pNewPrinter ); - delete pNewPrinter; + pNewPrinter.disposeAndClear(); } if ( SfxPrinterChangeFlags::NONE != nChangedFlags ) diff --git a/sw/source/ui/dialog/ascfldlg.cxx b/sw/source/ui/dialog/ascfldlg.cxx index d1b64723f7a3..fa4104731b9d 100644 --- a/sw/source/ui/dialog/ascfldlg.cxx +++ b/sw/source/ui/dialog/ascfldlg.cxx @@ -174,7 +174,7 @@ SwAsciiFilterDlg::SwAsciiFilterDlg( vcl::Window* pParent, SwDocShell& rDocSh, { bool bDelPrinter = false; - SfxPrinter* pPrt = pDoc ? pDoc->getIDocumentDeviceAccess().getPrinter(false) : 0; + VclPtr<SfxPrinter> pPrt = pDoc ? pDoc->getIDocumentDeviceAccess().getPrinter(false) : 0; if( !pPrt ) { SfxItemSet* pSet = new SfxItemSet( rDocSh.GetPool(), @@ -211,7 +211,7 @@ SwAsciiFilterDlg::SwAsciiFilterDlg( vcl::Window* pParent, SwDocShell& rDocSh, m_pFontLB->SelectEntry( aOpt.GetFontName() ); if( bDelPrinter ) - delete pPrt; + pPrt.disposeAndClear(); } } |