summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framework/source/uielement/fontsizemenucontroller.cxx2
-rw-r--r--include/sfx2/printer.hxx1
-rw-r--r--include/sfx2/viewsh.hxx2
-rw-r--r--sd/source/ui/presenter/PresenterTextView.cxx7
-rw-r--r--sfx2/source/view/printer.cxx6
-rw-r--r--sfx2/source/view/viewprn.cxx4
-rw-r--r--sw/source/ui/dialog/ascfldlg.cxx4
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();
}
}