[Libreoffice-commits] core.git: Branch 'feature/vclref' - 3 commits - basctl/source chart2/source dbaccess/source extensions/source forms/source include/toolkit include/vcl sfx2/source svx/source vcl/generic vcl/osx vcl/qa vcl/source

Michael Meeks michael.meeks at collabora.com
Mon Mar 16 10:24:22 PDT 2015


 basctl/source/basicide/basicrenderable.cxx               |    8 +--
 chart2/source/controller/main/ShapeToolbarController.cxx |    2 
 dbaccess/source/ui/browser/brwview.cxx                   |    2 
 dbaccess/source/ui/browser/genericcontroller.cxx         |    2 
 dbaccess/source/ui/browser/sbagrid.cxx                   |    6 +-
 dbaccess/source/ui/control/toolboxcontroller.cxx         |    6 +-
 dbaccess/source/ui/uno/ColumnPeer.cxx                    |   11 +---
 extensions/source/propctrlr/browserline.cxx              |    2 
 extensions/source/propctrlr/propcontroller.cxx           |    2 
 forms/source/richtext/richtextcontrol.cxx                |    6 +-
 forms/source/solar/component/navbarcontrol.cxx           |    8 +--
 include/toolkit/awt/vclxprinter.hxx                      |    4 -
 include/vcl/oldprintadaptor.hxx                          |    2 
 include/vcl/print.hxx                                    |    6 +-
 include/vcl/virdev.hxx                                   |    1 
 sfx2/source/dialog/backingcomp.cxx                       |    2 
 sfx2/source/view/viewprn.cxx                             |   22 ++++----
 svx/source/dialog/srchdlg.cxx                            |    2 
 svx/source/fmcomp/fmgridif.cxx                           |   20 +++----
 vcl/generic/print/genprnpsp.cxx                          |    2 
 vcl/osx/salprn.cxx                                       |    2 
 vcl/qa/cppunit/lifecycle.cxx                             |    8 +++
 vcl/source/filter/wmf/winmtf.cxx                         |   40 +++++++--------
 vcl/source/gdi/oldprintadaptor.cxx                       |    4 -
 vcl/source/gdi/print3.cxx                                |   10 +--
 vcl/source/gdi/virdev.cxx                                |    8 +++
 vcl/source/outdev/outdev.cxx                             |    9 ++-
 vcl/source/window/printdlg.cxx                           |    8 +--
 28 files changed, 111 insertions(+), 94 deletions(-)

New commits:
commit e9e208b0ad8dcf92299d00ebc69f23d4cd80bdb6
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Mon Mar 16 17:28:03 2015 +0000

    cleanup Printer VclRef pieces.
    
    Change-Id: Ib47b2ec3cb54e374675981ad929856f43987418f

diff --git a/basctl/source/basicide/basicrenderable.cxx b/basctl/source/basicide/basicrenderable.cxx
index 013807e..04b372d 100644
--- a/basctl/source/basicide/basicrenderable.cxx
+++ b/basctl/source/basicide/basicrenderable.cxx
@@ -75,17 +75,17 @@ Renderable::~Renderable()
 {
 }
 
-Printer* Renderable::getPrinter()
+VclPtr< Printer > Renderable::getPrinter()
 {
-    Printer* pPrinter = NULL;
+    VclPtr< Printer > pPrinter;
     Any aValue( getValue( "RenderDevice" ) );
     Reference<awt::XDevice> xRenderDevice;
 
     if( aValue >>= xRenderDevice )
     {
         VCLXDevice* pDevice = VCLXDevice::GetImplementation(xRenderDevice);
-        OutputDevice* pOut = pDevice ? pDevice->GetOutputDevice() : NULL;
-        pPrinter = dynamic_cast<Printer*>(pOut);
+        VclPtr< OutputDevice > pOut = pDevice ? pDevice->GetOutputDevice() : VclPtr< OutputDevice >;
+        pPrinter = dynamic_cast<Printer*>(pOut.get());
     }
     return pPrinter;
 }
diff --git a/chart2/source/controller/main/ShapeToolbarController.cxx b/chart2/source/controller/main/ShapeToolbarController.cxx
index ec0df94..7de5623 100644
--- a/chart2/source/controller/main/ShapeToolbarController.cxx
+++ b/chart2/source/controller/main/ShapeToolbarController.cxx
@@ -109,7 +109,7 @@ void ShapeToolbarController::initialize( const Sequence< uno::Any >& rArguments
     SolarMutexGuard aSolarMutexGuard;
     ::osl::MutexGuard aGuard( m_aMutex );
 
-    ToolBox* pToolBox = static_cast< ToolBox* >( VCLUnoHelper::GetWindow( getParent() ) );
+    VclPtr< ToolBox > pToolBox = static_cast< ToolBox* >( VCLUnoHelper::GetWindow( getParent() ).get() );
     if ( pToolBox )
     {
         const sal_uInt16 nCount = pToolBox->GetItemCount();
diff --git a/dbaccess/source/ui/browser/brwview.cxx b/dbaccess/source/ui/browser/brwview.cxx
index 720cc6f..7b0ba7b 100644
--- a/dbaccess/source/ui/browser/brwview.cxx
+++ b/dbaccess/source/ui/browser/brwview.cxx
@@ -264,7 +264,7 @@ SbaGridControl* UnoDataBrowserView::getVclControl() const
                 UnoDataBrowserView* pTHIS = const_cast<UnoDataBrowserView*>(this);
                 if ( pPeer )
                 {
-                    m_pVclControl = static_cast<SbaGridControl*>(pPeer->GetWindow());
+                    m_pVclControl = static_cast<SbaGridControl*>(pPeer->GetWindow().get());
                     pTHIS->startComponentListening(Reference<XComponent>(VCLUnoHelper::GetInterface(m_pVclControl),UNO_QUERY));
                 }
             }
diff --git a/dbaccess/source/ui/browser/genericcontroller.cxx b/dbaccess/source/ui/browser/genericcontroller.cxx
index 940a5d6..81cf9c6 100644
--- a/dbaccess/source/ui/browser/genericcontroller.cxx
+++ b/dbaccess/source/ui/browser/genericcontroller.cxx
@@ -291,7 +291,7 @@ void SAL_CALL OGenericUnoController::initialize( const Sequence< Any >& aArgumen
 
         xParent = xFrame->getContainerWindow();
         VCLXWindow* pParentComponent = VCLXWindow::GetImplementation(xParent);
-        vcl::Window* pParentWin = pParentComponent ? pParentComponent->GetWindow() : NULL;
+        VclPtr< vcl::Window > pParentWin = pParentComponent ? pParentComponent->GetWindow() : VclPtr< vcl::Window >();
         if (!pParentWin)
         {
             throw IllegalArgumentException("Parent window is null", *this, 1 );
diff --git a/dbaccess/source/ui/browser/sbagrid.cxx b/dbaccess/source/ui/browser/sbagrid.cxx
index 0823681..86877fc 100644
--- a/dbaccess/source/ui/browser/sbagrid.cxx
+++ b/dbaccess/source/ui/browser/sbagrid.cxx
@@ -309,7 +309,7 @@ void SAL_CALL SbaXGridPeer::dispose(void) throw( RuntimeException, std::exceptio
 
 void SbaXGridPeer::NotifyStatusChanged(const ::com::sun::star::util::URL& _rUrl, const Reference< ::com::sun::star::frame::XStatusListener > & xControl)
 {
-    SbaGridControl* pGrid = static_cast<SbaGridControl*>(GetWindow());
+    VclPtr< SbaGridControl > pGrid = GetAs< SbaGridControl >();
     if (!pGrid)
         return;
 
@@ -361,7 +361,7 @@ Reference< ::com::sun::star::frame::XDispatch >  SAL_CALL SbaXGridPeer::queryDis
 
 IMPL_LINK( SbaXGridPeer, OnDispatchEvent, void*, /*NOTINTERESTEDIN*/ )
 {
-    SbaGridControl* pGrid = static_cast< SbaGridControl* >( GetWindow() );
+    VclPtr< SbaGridControl > pGrid = GetAs< SbaGridControl >();
     if ( pGrid )    // if this fails, we were disposing before arriving here
     {
         if ( Application::GetMainThreadIdentifier() != ::osl::Thread::getCurrentIdentifier() )
@@ -398,7 +398,7 @@ SbaXGridPeer::DispatchType SbaXGridPeer::classifyDispatchURL( const URL& _rURL )
 
 void SAL_CALL SbaXGridPeer::dispatch(const URL& aURL, const Sequence< PropertyValue >& aArgs) throw( RuntimeException, std::exception )
 {
-    SbaGridControl* pGrid = static_cast<SbaGridControl*>(GetWindow());
+    VclPtr< SbaGridControl > pGrid = GetAs< SbaGridControl >();
     if (!pGrid)
         return;
 
diff --git a/dbaccess/source/ui/control/toolboxcontroller.cxx b/dbaccess/source/ui/control/toolboxcontroller.cxx
index ca97d79..079e4a5 100644
--- a/dbaccess/source/ui/control/toolboxcontroller.cxx
+++ b/dbaccess/source/ui/control/toolboxcontroller.cxx
@@ -169,7 +169,7 @@ namespace dbaui
                     {
                         m_aCommandURL = aFind->first;
 
-                        ToolBox* pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()));
+                        VclPtr< ToolBox > pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()).get());
                         lcl_copy(pMenu.get(),nItemId,i,pToolBox,m_nToolBoxId, m_aCommandURL);
                         break;
                     }
@@ -228,7 +228,7 @@ namespace dbaui
         SolarMutexGuard aSolarMutexGuard;
         ::osl::MutexGuard aGuard(m_aMutex);
 
-        ToolBox* pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()));
+        VclPtr< ToolBox > pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()).get());
         ::std::unique_ptr<PopupMenu> pMenu = getMenu();
 
         sal_uInt16 nSelected = pMenu->Execute(pToolBox, pToolBox->GetItemRect( m_nToolBoxId ),POPUPMENU_EXECUTE_DOWN);
diff --git a/dbaccess/source/ui/uno/ColumnPeer.cxx b/dbaccess/source/ui/uno/ColumnPeer.cxx
index 1422c62..723f103 100644
--- a/dbaccess/source/ui/uno/ColumnPeer.cxx
+++ b/dbaccess/source/ui/uno/ColumnPeer.cxx
@@ -46,19 +46,16 @@ OColumnPeer::OColumnPeer(vcl::Window* _pParent,const Reference<XComponentContext
 void OColumnPeer::setEditWidth(sal_Int32 _nWidth)
 {
     SolarMutexGuard aGuard;
-
-    OColumnControlWindow* pFieldControl = static_cast<OColumnControlWindow*>( GetWindow() );
+    VclPtr<OColumnControlWindow> pFieldControl = GetAs<OColumnControlWindow>();
     if ( pFieldControl )
-    {
         pFieldControl->setEditWidth(_nWidth);
-    }
 }
 
 void OColumnPeer::setColumn(const Reference< XPropertySet>& _xColumn)
 {
     SolarMutexGuard aGuard;
 
-    OColumnControlWindow* pFieldControl = static_cast<OColumnControlWindow*>( GetWindow() );
+    VclPtr<OColumnControlWindow> pFieldControl = GetAs<OColumnControlWindow>();
     if ( pFieldControl )
     {
         if ( m_pActFieldDescr )
@@ -105,7 +102,7 @@ void OColumnPeer::setColumn(const Reference< XPropertySet>& _xColumn)
 void OColumnPeer::setConnection(const Reference< XConnection>& _xCon)
 {
     SolarMutexGuard aGuard;
-    OColumnControlWindow* pFieldControl = static_cast<OColumnControlWindow*>( GetWindow() );
+    VclPtr<OColumnControlWindow> pFieldControl = GetAs<OColumnControlWindow>();
     if ( pFieldControl )
         pFieldControl->setConnection(_xCon);
 }
@@ -131,7 +128,7 @@ void OColumnPeer::setProperty( const OUString& _rPropertyName, const Any& Value)
 Any OColumnPeer::getProperty( const OUString& _rPropertyName ) throw( RuntimeException, std::exception )
 {
     Any aProp;
-    OFieldDescControl* pFieldControl = static_cast<OFieldDescControl*>( GetWindow() );
+    VclPtr< OFieldDescControl > pFieldControl = GetAs< OFieldDescControl >();
     if (pFieldControl && _rPropertyName == PROPERTY_COLUMN)
     {
         aProp <<= m_xColumn;
diff --git a/extensions/source/propctrlr/browserline.cxx b/extensions/source/propctrlr/browserline.cxx
index 2c82f13..4fd1961 100644
--- a/extensions/source/propctrlr/browserline.cxx
+++ b/extensions/source/propctrlr/browserline.cxx
@@ -109,7 +109,7 @@ namespace pcr
     void OBrowserLine::setControl( const Reference< XPropertyControl >& _rxControl )
     {
         m_xControl = _rxControl;
-        m_pControlWindow = m_xControl.is() ? VCLUnoHelper::GetWindow( _rxControl->getControlWindow() ) : NULL;
+        m_pControlWindow = m_xControl.is() ? VCLUnoHelper::GetWindow( _rxControl->getControlWindow() ) : VclPtr<vcl::Window>();
         DBG_ASSERT( m_pControlWindow, "OBrowserLine::setControl: setting NULL controls/windows is not allowed!" );
 
         if ( m_pControlWindow )
diff --git a/extensions/source/propctrlr/propcontroller.cxx b/extensions/source/propctrlr/propcontroller.cxx
index 95786ad..66cea9ec 100644
--- a/extensions/source/propctrlr/propcontroller.cxx
+++ b/extensions/source/propctrlr/propcontroller.cxx
@@ -375,7 +375,7 @@ namespace pcr
         // announcement is responsible for calling setComponent, too.
         Reference< XWindow > xContainerWindow = m_xFrame->getContainerWindow();
         VCLXWindow* pContainerWindow = VCLXWindow::GetImplementation(xContainerWindow);
-        vcl::Window* pParentWin = pContainerWindow ? pContainerWindow->GetWindow() : NULL;
+        VclPtr<vcl::Window> pParentWin = pContainerWindow ? pContainerWindow->GetWindow() : VclPtr<vcl::Window>();
         if (!pParentWin)
             throw RuntimeException("The frame is invalid. Unable to extract the container window.",*this);
 
diff --git a/forms/source/richtext/richtextcontrol.cxx b/forms/source/richtext/richtextcontrol.cxx
index 90eab6f..50a72a0 100644
--- a/forms/source/richtext/richtextcontrol.cxx
+++ b/forms/source/richtext/richtextcontrol.cxx
@@ -339,7 +339,7 @@ namespace frm
     {
         {
             SolarMutexGuard aGuard;
-            RichTextControl* pRichTextControl = static_cast< RichTextControl* >( GetWindow() );
+            VclPtr< RichTextControl > pRichTextControl = GetAs< RichTextControl* >();
 
             if ( pRichTextControl )
             {
@@ -442,7 +442,7 @@ namespace frm
         }
         else if ( _rPropertyName == PROPERTY_HIDEINACTIVESELECTION )
         {
-            RichTextControl* pRichTextControl = static_cast< RichTextControl* >( GetWindow() );
+            VclPtr< RichTextControl > pRichTextControl = GetAs< RichTextControl* >();
             bool bHide = pRichTextControl->GetHideInactiveSelection();
             OSL_VERIFY( _rValue >>= bHide );
             pRichTextControl->SetHideInactiveSelection( bHide );
@@ -494,7 +494,7 @@ namespace frm
 
     ORichTextPeer::SingleAttributeDispatcher ORichTextPeer::implCreateDispatcher( SfxSlotId _nSlotId, const ::com::sun::star::util::URL& _rURL )
     {
-        RichTextControl* pRichTextControl = static_cast< RichTextControl* >( GetWindow() );
+        VclPtr< RichTextControl > pRichTextControl = GetAs< RichTextControl* >();
         OSL_PRECOND( pRichTextControl, "ORichTextPeer::implCreateDispatcher: invalid window!" );
         if ( !pRichTextControl )
             return SingleAttributeDispatcher( NULL );
diff --git a/forms/source/solar/component/navbarcontrol.cxx b/forms/source/solar/component/navbarcontrol.cxx
index 8e6b4d4..6d6c218 100644
--- a/forms/source/solar/component/navbarcontrol.cxx
+++ b/forms/source/solar/component/navbarcontrol.cxx
@@ -292,7 +292,7 @@ namespace frm
     {
         SolarMutexGuard aGuard;
 
-        NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+        VclPtr< NavigationToolBar > pNavBar = GetAs< NavigationToolBar >();
         if ( !pNavBar )
         {
             VCLXWindow::setProperty( _rPropertyName, _rValue );
@@ -373,7 +373,7 @@ namespace frm
         SolarMutexGuard aGuard;
 
         Any aReturn;
-        NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+        VclPtr< NavigationToolBar > pNavBar = GetAs< NavigationToolBar >();
 
         if ( _rPropertyName == PROPERTY_BACKGROUNDCOLOR )
         {
@@ -425,7 +425,7 @@ namespace frm
     void ONavigationBarPeer::featureStateChanged( sal_Int16 _nFeatureId, bool _bEnabled )
     {
         // enable this button on the toolbox
-        NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+        VclPtr< NavigationToolBar > pNavBar = GetAs< NavigationToolBar >();
         if ( pNavBar )
         {
             pNavBar->enableFeature( _nFeatureId, _bEnabled );
@@ -453,7 +453,7 @@ namespace frm
     void ONavigationBarPeer::allFeatureStatesChanged( )
     {
         // force the control to update it's states
-        NavigationToolBar* pNavBar = static_cast< NavigationToolBar* >( GetWindow() );
+        VclPtr< NavigationToolBar > pNavBar = GetAs< NavigationToolBar >();
         if ( pNavBar )
             pNavBar->setDispatcher( this );
 
diff --git a/svx/source/dialog/srchdlg.cxx b/svx/source/dialog/srchdlg.cxx
index 793da1a..ca67bf4 100644
--- a/svx/source/dialog/srchdlg.cxx
+++ b/svx/source/dialog/srchdlg.cxx
@@ -2304,7 +2304,7 @@ static vcl::Window* lcl_GetSearchLabelWindow()
         return 0;
     css::uno::Reference< css::awt::XWindow > xWindow(
             xUIElement->getRealInterface(), css::uno::UNO_QUERY_THROW);
-    ToolBox* pToolBox = static_cast<ToolBox*>( VCLUnoHelper::GetWindow(xWindow) );
+    VclPtr< ToolBox > pToolBox = static_cast<ToolBox*>( VCLUnoHelper::GetWindow(xWindow).get() );
     for (size_t i = 0; pToolBox && i < pToolBox->GetItemCount(); ++i)
         if (pToolBox->GetItemCommand(i) == ".uno:SearchLabel")
             return pToolBox->GetItemWindow(i);
diff --git a/svx/source/fmcomp/fmgridif.cxx b/svx/source/fmcomp/fmgridif.cxx
index 5fb30f0..149b418 100644
--- a/svx/source/fmcomp/fmgridif.cxx
+++ b/svx/source/fmcomp/fmgridif.cxx
@@ -1251,7 +1251,7 @@ Sequence< sal_Bool > SAL_CALL FmXGridPeer::queryFieldDataType( const Type& xType
 
     Reference< XIndexContainer >  xColumns = getColumns();
 
-    FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+    VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
     sal_Int32 nColumns = pGrid->GetViewColCount();
 
     DbGridColumns aColumns = pGrid->GetColumns();
@@ -1305,7 +1305,7 @@ Sequence< sal_Bool > SAL_CALL FmXGridPeer::queryFieldDataType( const Type& xType
 
 Sequence< Any > SAL_CALL FmXGridPeer::queryFieldData( sal_Int32 nRow, const Type& xType ) throw(RuntimeException, std::exception)
 {
-    FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+    VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
     DBG_ASSERT(pGrid && pGrid->IsOpen(), "FmXGridPeer::queryFieldData : have no valid grid window !");
     if (!pGrid || !pGrid->IsOpen())
         return Sequence< Any>();
@@ -1738,7 +1738,7 @@ void FmXGridPeer::elementInserted(const ContainerEvent& evt) throw( RuntimeExcep
 {
     SolarMutexGuard aGuard;
 
-    FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+    VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
     // Handle Column beruecksichtigen
     if (!pGrid || !m_xColumns.is() || pGrid->IsInColumnMove() || m_xColumns->getCount() == ((sal_Int32)pGrid->GetModelColCount()))
         return;
@@ -2057,7 +2057,7 @@ Any FmXGridPeer::getProperty( const OUString& _rPropertyName ) throw( RuntimeExc
     Any aProp;
     if (GetWindow())
     {
-        FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+        VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
         vcl::Window* pDataWindow  = &pGrid->GetDataWindow();
 
         if ( _rPropertyName == FM_PROP_NAME )
@@ -2193,7 +2193,7 @@ void FmXGridPeer::stopCursorListening()
 
 void FmXGridPeer::updateGrid(const Reference< XRowSet >& _rxCursor)
 {
-    FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+    VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
     if (pGrid)
         pGrid->setDataSource(_rxCursor);
 }
@@ -2207,7 +2207,7 @@ Reference< XRowSet >  FmXGridPeer::getRowSet() throw( RuntimeException, std::exc
 
 void FmXGridPeer::setRowSet(const Reference< XRowSet >& _rDatabaseCursor) throw( RuntimeException, std::exception )
 {
-    FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+    VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
     if (!pGrid || !m_xColumns.is() || !m_xColumns->getCount())
         return;
     // unregister all listeners
@@ -2384,7 +2384,7 @@ void FmXGridPeer::setMode(const OUString& Mode) throw( NoSupportException, Runti
 
     m_aMode = Mode;
 
-    FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+    VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
     if ( Mode == "FilterMode" )
         pGrid->SetFilterMode(true);
     else
@@ -2460,7 +2460,7 @@ void FmXGridPeer::columnHidden(DbGridColumn* pColumn)
 
 void FmXGridPeer::draw( sal_Int32 x, sal_Int32 y ) throw( RuntimeException, std::exception )
 {
-    FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+    VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
     sal_Int32 nOldFlags = pGrid->GetBrowserFlags();
     pGrid->SetBrowserFlags(nOldFlags | EBBF_NOROWPICTURE);
 
@@ -2658,7 +2658,7 @@ void FmXGridPeer::resetted(const EventObject& rEvent) throw( RuntimeException, s
 {
     if (m_xColumns == rEvent.Source)
     {   // my model was reset -> refresh the grid content
-        FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+        VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
         if (!pGrid)
             return;
         SolarMutexGuard aGuard;
@@ -2668,7 +2668,7 @@ void FmXGridPeer::resetted(const EventObject& rEvent) throw( RuntimeException, s
     else if (m_xCursor == rEvent.Source)
     {
         SolarMutexGuard aGuard;
-        FmGridControl* pGrid = static_cast<FmGridControl*>(GetWindow());
+        VclPtr< FmGridControl > pGrid = GetAs< FmGridControl >();
         if (pGrid && pGrid->IsOpen())
             pGrid->positioned(rEvent);
     }
commit 02233a99d3696883a3bfe606b9f945e3deb4d4ef
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Mon Mar 16 17:27:11 2015 +0000

    vcl: fix virtual device lifecycle.
    
    Also remove an over-optimistic assert & ref-holding in dispose piece.
    
    Change-Id: I6ce6abb666c8143502fc450a26e1ba2aac787455

diff --git a/include/vcl/virdev.hxx b/include/vcl/virdev.hxx
index b6361bf..938eca6 100644
--- a/include/vcl/virdev.hxx
+++ b/include/vcl/virdev.hxx
@@ -120,6 +120,7 @@ public:
                                       sal_uInt16 nBitCount);
 
     virtual             ~VirtualDevice();
+    virtual void        dispose() SAL_OVERRIDE;
 
     virtual void        EnableRTL( bool bEnable = true ) SAL_OVERRIDE;
 
diff --git a/vcl/qa/cppunit/lifecycle.cxx b/vcl/qa/cppunit/lifecycle.cxx
index 04a4719..8be94a5 100644
--- a/vcl/qa/cppunit/lifecycle.cxx
+++ b/vcl/qa/cppunit/lifecycle.cxx
@@ -15,6 +15,7 @@
 #include <vcl/edit.hxx>
 #include <vcl/combobox.hxx>
 #include <vcl/field.hxx>
+#include <vcl/virdev.hxx>
 
 class LifecycleTest : public test::BootstrapFixture
 {
@@ -24,6 +25,7 @@ public:
     LifecycleTest() : BootstrapFixture(true, false) {}
 
     void testCast();
+    void testVirtualDevice();
     void testMultiDispose();
     void testIsolatedWidgets();
     void testParentedWidgets();
@@ -31,6 +33,7 @@ public:
 
     CPPUNIT_TEST_SUITE(LifecycleTest);
     CPPUNIT_TEST(testCast);
+    CPPUNIT_TEST(testVirtualDevice);
     CPPUNIT_TEST(testMultiDispose);
     CPPUNIT_TEST(testIsolatedWidgets);
     CPPUNIT_TEST(testParentedWidgets);
@@ -52,6 +55,11 @@ void LifecycleTest::testCast()
 //    VclPtr<PushButton> xButton2(xWindow);
 }
 
+void LifecycleTest::testVirtualDevice()
+{
+    VclPtr<VirtualDevice> pVDev = new VirtualDevice();
+}
+
 void LifecycleTest::testMultiDispose()
 {
     VclPtr<WorkWindow> xWin(new WorkWindow((vcl::Window *)NULL,
diff --git a/vcl/source/filter/wmf/winmtf.cxx b/vcl/source/filter/wmf/winmtf.cxx
index e15f2e0..ce43576 100644
--- a/vcl/source/filter/wmf/winmtf.cxx
+++ b/vcl/source/filter/wmf/winmtf.cxx
@@ -230,12 +230,12 @@ WinMtfFontStyle::WinMtfFontStyle( LOGFONTW& rFont )
     {
         // #i117968# VirtualDevice is not thread safe, but filter is used in multithreading
         SolarMutexGuard aGuard;
-        VirtualDevice aVDev;
+        VclPtr<VirtualDevice> pVDev = new VirtualDevice();
 
         // converting the cell height into a font height
         aFont.SetSize( aFontSize );
-        aVDev.SetFont( aFont );
-        FontMetric aMetric( aVDev.GetFontMetric() );
+        pVDev->SetFont( aFont );
+        FontMetric aMetric( pVDev->GetFontMetric() );
         long nHeight = aMetric.GetAscent() + aMetric.GetDescent();
         if (nHeight)
         {
@@ -1436,20 +1436,20 @@ void WinMtfOutput::DrawText( Point& rPosition, OUString& rText, long* pDXArry, b
     {
         // #i117968# VirtualDevice is not thread safe, but filter is used in multithreading
         SolarMutexGuard aGuard;
-        VirtualDevice aVDev;
+        VclPtr<VirtualDevice> pVDev = new VirtualDevice();
 
         sal_Int32 nTextWidth;
-        aVDev.SetMapMode( MapMode( MAP_100TH_MM ) );
-        aVDev.SetFont( maFont );
+        pVDev->SetMapMode( MapMode( MAP_100TH_MM ) );
+        pVDev->SetFont( maFont );
         if( pDXArry )
         {
             sal_uInt32 nLen = rText.getLength();
-            nTextWidth = aVDev.GetTextWidth( OUString(rText[ nLen - 1 ]) );
+            nTextWidth = pVDev->GetTextWidth( OUString(rText[ nLen - 1 ]) );
             if( nLen > 1 )
                 nTextWidth += pDXArry[ nLen - 2 ];
         }
         else
-            nTextWidth = aVDev.GetTextWidth( rText );
+            nTextWidth = pVDev->GetTextWidth( rText );
 
         if( mnTextAlign & TA_UPDATECP )
             rPosition = maActPos;
@@ -1485,12 +1485,12 @@ void WinMtfOutput::DrawText( Point& rPosition, OUString& rText, long* pDXArry, b
         {
             // #i117968# VirtualDevice is not thread safe, but filter is used in multithreading
             SolarMutexGuard aGuard;
-            VirtualDevice aVDev;
+            VclPtr<VirtualDevice> pVDev = new VirtualDevice();
 
             pDX = new long[ rText.getLength() ];
-            aVDev.SetMapMode( MAP_100TH_MM );
-            aVDev.SetFont( maLatestFont );
-            aVDev.GetTextArray( rText, pDX, 0, rText.getLength());
+            pVDev->SetMapMode( MAP_100TH_MM );
+            pVDev->SetFont( maLatestFont );
+            pVDev->GetTextArray( rText, pDX, 0, rText.getLength());
         }
         mpGDIMetaFile->AddAction( new MetaTextArrayAction( rPosition, rText, pDX, 0, rText.getLength() ) );
         if ( !pDXArry )     // this means we have created our own array
@@ -1504,26 +1504,26 @@ void WinMtfOutput::ImplDrawBitmap( const Point& rPos, const Size& rSize, const B
     BitmapEx aBmpEx( rBitmap );
     if ( mbComplexClip )
     {
-        VirtualDevice aVDev;
+        VclPtr<VirtualDevice> pVDev = new VirtualDevice();
         MapMode aMapMode( MAP_100TH_MM );
         aMapMode.SetOrigin( Point( -rPos.X(), -rPos.Y() ) );
-        const Size aOutputSizePixel( aVDev.LogicToPixel( rSize, aMapMode ) );
+        const Size aOutputSizePixel( pVDev->LogicToPixel( rSize, aMapMode ) );
         const Size aSizePixel( rBitmap.GetSizePixel() );
         if ( aOutputSizePixel.Width() && aOutputSizePixel.Height() )
         {
             aMapMode.SetScaleX( Fraction( aSizePixel.Width(), aOutputSizePixel.Width() ) );
             aMapMode.SetScaleY( Fraction( aSizePixel.Height(), aOutputSizePixel.Height() ) );
         }
-        aVDev.SetMapMode( aMapMode );
-        aVDev.SetOutputSizePixel( aSizePixel );
-        aVDev.SetFillColor( Color( COL_BLACK ) );
+        pVDev->SetMapMode( aMapMode );
+        pVDev->SetOutputSizePixel( aSizePixel );
+        pVDev->SetFillColor( Color( COL_BLACK ) );
         const tools::PolyPolygon aClip( aClipPath.getClipPath() );
-        aVDev.DrawPolyPolygon( aClip );
+        pVDev->DrawPolyPolygon( aClip );
         const Point aEmptyPoint;
 
         // #i50672# Extract whole VDev content (to match size of rBitmap)
-        aVDev.EnableMapMode( false );
-        Bitmap aMask( aVDev.GetBitmap( aEmptyPoint, aSizePixel ).CreateMask( Color( COL_WHITE ) ) );
+        pVDev->EnableMapMode( false );
+        Bitmap aMask( pVDev->GetBitmap( aEmptyPoint, aSizePixel ).CreateMask( Color( COL_WHITE ) ) );
 
         if ( aBmpEx.IsTransparent() )
         {
diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx
index eec2fa9..b8ce392 100644
--- a/vcl/source/gdi/virdev.cxx
+++ b/vcl/source/gdi/virdev.cxx
@@ -255,6 +255,12 @@ VirtualDevice::VirtualDevice(const SystemGraphicsData *pData, const Size &rSize,
 VirtualDevice::~VirtualDevice()
 {
     SAL_INFO( "vcl.gdi", "VirtualDevice::~VirtualDevice()" );
+    disposeOnce();
+}
+
+void VirtualDevice::dispose()
+{
+    SAL_INFO( "vcl.gdi", "VirtualDevice::dispose()" );
 
     ImplSVData* pSVData = ImplGetSVData();
 
@@ -272,6 +278,8 @@ VirtualDevice::~VirtualDevice()
         mpNext->mpPrev = mpPrev;
     else
         pSVData->maGDIData.mpLastVirDev = mpPrev;
+
+    OutputDevice::dispose();
 }
 
 bool VirtualDevice::InnerImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
diff --git a/vcl/source/outdev/outdev.cxx b/vcl/source/outdev/outdev.cxx
index 7436b10..fd04aec 100644
--- a/vcl/source/outdev/outdev.cxx
+++ b/vcl/source/outdev/outdev.cxx
@@ -80,6 +80,7 @@ namespace {
 // Begin initializer and accessor public functions
 
 OutputDevice::OutputDevice() :
+    mnRefCnt(0),
     maRegion(true),
     maFillColor( COL_WHITE ),
     maTextLineColor( COL_TRANSPARENT ),
@@ -177,6 +178,8 @@ OutputDevice::OutputDevice() :
     // #i75163#
     mpOutDevData->mpViewTransform   = NULL;
     mpOutDevData->mpInverseViewTransform = NULL;
+
+    mbDisposed = false;
 }
 
 OutputDevice::~OutputDevice()
@@ -192,10 +195,10 @@ void OutputDevice::disposeOnce()
 
     // catch badness where our OutputDevice sub-class was not
     // wrapped safely in a VclPtr cosily.
-    assert( mnRefCnt > 0 );
+    // FIXME: as/when we make our destructors all protected,
+    // we should introduce this assert:
+    //    assert( mnRefCnt > 0 );
 
-    // hold a ref in case something unusual happens during dispose.
-    VclPtr<OutputDevice> aRef(this);
     dispose();
 }
 
commit 41f6596d3b4fe24e09ba273e4b6eefe5daf45dbb
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Mon Mar 16 15:24:04 2015 +0000

    vclptr: switch printers away from boost_shared.
    
    Also continue to move to extended toolkit/ API.
    
    Change-Id: Ibd4337b014ee096c84d0ad4435e2c5de1b258afe

diff --git a/dbaccess/source/ui/control/toolboxcontroller.cxx b/dbaccess/source/ui/control/toolboxcontroller.cxx
index cb6d306..ca97d79 100644
--- a/dbaccess/source/ui/control/toolboxcontroller.cxx
+++ b/dbaccess/source/ui/control/toolboxcontroller.cxx
@@ -131,7 +131,7 @@ namespace dbaui
         for (; aIter != aEnd; ++aIter)
             addStatusListener(aIter->first);
 
-        ToolBox*    pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()));
+        VclPtr< ToolBox > pToolBox = static_cast<ToolBox*>(VCLUnoHelper::GetWindow(getParent()).get());
         if ( pToolBox )
         {
             sal_uInt16 nCount = pToolBox->GetItemCount();
diff --git a/include/toolkit/awt/vclxprinter.hxx b/include/toolkit/awt/vclxprinter.hxx
index 434c47a..877d07d 100644
--- a/include/toolkit/awt/vclxprinter.hxx
+++ b/include/toolkit/awt/vclxprinter.hxx
@@ -56,11 +56,11 @@ class VCLXPrinterPropertySet    :public VCLXPrinterPropertySet_Base
                                 ,public ::cppu::OPropertySetHelper
 {
 protected:
-    boost::shared_ptr<Printer>                      mpPrinter;
+    VclPtr<Printer>             mpPrinter;
     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice >  mxPrnDevice;
 
     sal_Int16                   mnOrientation;
-    bool                    mbHorizontal;
+    bool                        mbHorizontal;
 public:
     VCLXPrinterPropertySet( const OUString& rPrinterName );
     virtual ~VCLXPrinterPropertySet();
diff --git a/include/vcl/oldprintadaptor.hxx b/include/vcl/oldprintadaptor.hxx
index fe71548..987b58f 100644
--- a/include/vcl/oldprintadaptor.hxx
+++ b/include/vcl/oldprintadaptor.hxx
@@ -29,7 +29,7 @@ namespace vcl
     {
         ImplOldStyleAdaptorData*    mpData;
     public:
-        OldStylePrintAdaptor( const boost::shared_ptr< Printer >& );
+        OldStylePrintAdaptor( const VclPtr< Printer >& );
         virtual ~OldStylePrintAdaptor();
 
         void StartPage();
diff --git a/include/vcl/print.hxx b/include/vcl/print.hxx
index 99d781e..756cb27 100644
--- a/include/vcl/print.hxx
+++ b/include/vcl/print.hxx
@@ -419,7 +419,7 @@ class VCL_DLLPUBLIC PrinterController
 {
     ImplPrinterControllerData* mpImplData;
 protected:
-    PrinterController( const boost::shared_ptr<Printer>& );
+    PrinterController( const VclPtr<Printer>& );
 public:
     enum NupOrderType
     { LRTB, TBLR, TBRL, RLTB };
@@ -462,7 +462,7 @@ public:
 
     virtual ~PrinterController();
 
-    const boost::shared_ptr<Printer>& getPrinter() const;
+    const VclPtr<Printer>& getPrinter() const;
     /* for implementations: get current job properties as changed by e.g. print dialog
        this gets the current set of properties initially told to Printer::PrintJob
 
@@ -543,7 +543,7 @@ public:
     SAL_DLLPRIVATE PageSize getPageFile( int i_inUnfilteredPage, GDIMetaFile& rMtf, bool i_bMayUseCache = false );
     VCL_PLUGIN_PUBLIC PageSize getFilteredPageFile( int i_nFilteredPage, GDIMetaFile& o_rMtf, bool i_bMayUseCache = false );
     VCL_PLUGIN_PUBLIC void printFilteredPage( int i_nPage );
-    SAL_DLLPRIVATE void setPrinter( const boost::shared_ptr<Printer>& );
+    SAL_DLLPRIVATE void setPrinter( const VclPtr<Printer>& );
     SAL_DLLPRIVATE void setOptionChangeHdl( const Link& );
     VCL_PLUGIN_PUBLIC void createProgressDialog();
     VCL_PLUGIN_PUBLIC bool isProgressCanceled() const;
diff --git a/sfx2/source/dialog/backingcomp.cxx b/sfx2/source/dialog/backingcomp.cxx
index 27f9516..70af3d6 100644
--- a/sfx2/source/dialog/backingcomp.cxx
+++ b/sfx2/source/dialog/backingcomp.cxx
@@ -431,7 +431,7 @@ void SAL_CALL BackingComp::attachFrame( /*IN*/ const css::uno::Reference< css::f
     }
 
     // inform BackingWindow about frame
-    BackingWindow* pBack = dynamic_cast<BackingWindow*>(pWindow );
+    BackingWindow* pBack = dynamic_cast<BackingWindow*>(pWindow.get());
     if( pBack )
         pBack->setOwningFrame( m_xFrame );
 
diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx
index bfe2825..3b51d0d 100644
--- a/sfx2/source/view/viewprn.cxx
+++ b/sfx2/source/view/viewprn.cxx
@@ -59,7 +59,7 @@ class SfxPrinterController : public vcl::PrinterController, public SfxListener
     Any                                     maCompleteSelection;
     Any                                     maSelection;
     Reference< view::XRenderable >          mxRenderable;
-    mutable Printer*                        mpLastPrinter;
+    mutable VclPtr<Printer>                 mpLastPrinter;
     mutable Reference<awt::XDevice>         mxDevice;
     SfxViewShell*                           mpViewShell;
     SfxObjectShell*                         mpObjectShell;
@@ -74,7 +74,7 @@ class SfxPrinterController : public vcl::PrinterController, public SfxListener
     const Any& getSelectionObject() const;
 
 public:
-    SfxPrinterController( const boost::shared_ptr<Printer>& i_rPrinter,
+    SfxPrinterController( const VclPtr<Printer>& i_rPrinter,
                           const Any& i_rComplete,
                           const Any& i_rSelection,
                           const Any& i_rViewProp,
@@ -94,7 +94,7 @@ public:
     virtual void jobFinished( com::sun::star::view::PrintableState ) SAL_OVERRIDE;
 };
 
-SfxPrinterController::SfxPrinterController( const boost::shared_ptr<Printer>& i_rPrinter,
+SfxPrinterController::SfxPrinterController( const VclPtr<Printer>& i_rPrinter,
                                             const Any& i_rComplete,
                                             const Any& i_rSelection,
                                             const Any& i_rViewProp,
@@ -204,12 +204,12 @@ const Any& SfxPrinterController::getSelectionObject() const
 
 Sequence< beans::PropertyValue > SfxPrinterController::getMergedOptions() const
 {
-    boost::shared_ptr<Printer> pPrinter( getPrinter() );
+    VclPtr<Printer> pPrinter( getPrinter() );
     if( pPrinter.get() != mpLastPrinter )
     {
         mpLastPrinter = pPrinter.get();
         VCLXDevice* pXDevice = new VCLXDevice();
-        pXDevice->SetOutputDevicePtr( mpLastPrinter );
+        pXDevice->SetOutputDevice( mpLastPrinter );
         mxDevice = Reference< awt::XDevice >( pXDevice );
     }
 
@@ -224,7 +224,7 @@ Sequence< beans::PropertyValue > SfxPrinterController::getMergedOptions() const
 int SfxPrinterController::getPageCount() const
 {
     int nPages = 0;
-    boost::shared_ptr<Printer> pPrinter( getPrinter() );
+    VclPtr<Printer> pPrinter( getPrinter() );
     if( mxRenderable.is() && pPrinter )
     {
         Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() );
@@ -244,7 +244,7 @@ int SfxPrinterController::getPageCount() const
 
 Sequence< beans::PropertyValue > SfxPrinterController::getPageParameters( int i_nPage ) const
 {
-    boost::shared_ptr<Printer> pPrinter( getPrinter() );
+    VclPtr<Printer> pPrinter( getPrinter() );
     Sequence< beans::PropertyValue > aResult;
 
     if( mxRenderable.is() && pPrinter )
@@ -269,7 +269,7 @@ Sequence< beans::PropertyValue > SfxPrinterController::getPageParameters( int i_
 
 void SfxPrinterController::printPage( int i_nPage ) const
 {
-    boost::shared_ptr<Printer> pPrinter( getPrinter() );
+    VclPtr<Printer> pPrinter( getPrinter() );
     if( mxRenderable.is() && pPrinter )
     {
         Sequence< beans::PropertyValue > aJobOptions( getMergedOptions() );
@@ -453,8 +453,8 @@ IMPL_LINK_NOARG(SfxDialogExecutor_Impl, Execute)
         return 0;
 
     // Create Dialog
-    boost::scoped_ptr<SfxPrintOptionsDialog> pDlg(new SfxPrintOptionsDialog( static_cast<vcl::Window*>(_pSetupParent),
-                                                             _pViewSh, _pOptions ));
+    VclPtr<SfxPrintOptionsDialog> pDlg(new SfxPrintOptionsDialog( static_cast<vcl::Window*>(_pSetupParent),
+                                                                  _pViewSh, _pOptions ));
     if ( _bHelpDisabled )
         pDlg->DisableHelp();
     if ( pDlg->Execute() == RET_OK )
@@ -582,7 +582,7 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro
         aSelection <<= GetObjectShell()->GetModel();
     Any aComplete( makeAny( GetObjectShell()->GetModel() ) );
     Any aViewProp( makeAny( xController ) );
-    boost::shared_ptr<Printer> aPrt;
+    VclPtr<Printer> aPrt;
 
     const beans::PropertyValue* pVal = rProps.getConstArray();
     for( sal_Int32 i = 0; i < rProps.getLength(); i++ )
diff --git a/vcl/generic/print/genprnpsp.cxx b/vcl/generic/print/genprnpsp.cxx
index 7107f84..2e7901a 100644
--- a/vcl/generic/print/genprnpsp.cxx
+++ b/vcl/generic/print/genprnpsp.cxx
@@ -1078,7 +1078,7 @@ bool PspSalPrinter::StartJob( const OUString* i_pFileName, const OUString& i_rJo
 
     boost::shared_ptr<vcl::PDFWriter> pWriter;
     std::vector< PDFPrintFile > aPDFFiles;
-    boost::shared_ptr<Printer> pPrinter( i_rController.getPrinter() );
+    VclPtr<Printer> pPrinter( i_rController.getPrinter() );
     int nAllPages = i_rController.getFilteredPageCount();
     i_rController.createProgressDialog();
     bool bAborted = false;
diff --git a/vcl/osx/salprn.cxx b/vcl/osx/salprn.cxx
index f8fe422..6cf40d1 100644
--- a/vcl/osx/salprn.cxx
+++ b/vcl/osx/salprn.cxx
@@ -448,7 +448,7 @@ bool AquaSalInfoPrinter::StartJob( const OUString* i_pFileName,
             // information (e.g. brochure printing scales to the found paper size)
             // also SetPaperSizeUser has the advantage that we can share a
             // platform independent paper matching algorithm
-            boost::shared_ptr<Printer> pPrinter( i_rController.getPrinter() );
+            VclPtr<Printer> pPrinter( i_rController.getPrinter() );
             pPrinter->SetMapMode( MapMode( MAP_100TH_MM ) );
             pPrinter->SetPaperSizeUser( aCurSize, true );
 
diff --git a/vcl/source/gdi/oldprintadaptor.cxx b/vcl/source/gdi/oldprintadaptor.cxx
index 3270f75..ea2cd61 100644
--- a/vcl/source/gdi/oldprintadaptor.cxx
+++ b/vcl/source/gdi/oldprintadaptor.cxx
@@ -44,7 +44,7 @@ using namespace com::sun::star;
 using namespace com::sun::star::uno;
 using namespace com::sun::star::beans;
 
-OldStylePrintAdaptor::OldStylePrintAdaptor( const boost::shared_ptr< Printer >& i_pPrinter )
+OldStylePrintAdaptor::OldStylePrintAdaptor( const VclPtr< Printer >& i_pPrinter )
     : PrinterController( i_pPrinter )
     , mpData( new ImplOldStyleAdaptorData() )
 {
@@ -64,7 +64,7 @@ void OldStylePrintAdaptor::StartPage()
     getPrinter()->SetConnectMetaFile( &mpData->maPages.back().maPage );
 
     // copy state into metafile
-    boost::shared_ptr<Printer> pPrinter( getPrinter() );
+    VclPtr<Printer> pPrinter( getPrinter() );
     pPrinter->SetMapMode( pPrinter->GetMapMode() );
     pPrinter->SetFont( pPrinter->GetFont() );
     pPrinter->SetDrawMode( pPrinter->GetDrawMode() );
diff --git a/vcl/source/gdi/print3.cxx b/vcl/source/gdi/print3.cxx
index 609dfd2..dc341bf 100644
--- a/vcl/source/gdi/print3.cxx
+++ b/vcl/source/gdi/print3.cxx
@@ -140,7 +140,7 @@ public:
     typedef boost::unordered_map< OUString, ControlDependency, OUStringHash > ControlDependencyMap;
     typedef boost::unordered_map< OUString, Sequence< sal_Bool >, OUStringHash > ChoiceDisableMap;
 
-    boost::shared_ptr<Printer>                                  mpPrinter;
+    VclPtr< Printer >                                           mpPrinter;
     Sequence< PropertyValue >                                   maUIOptions;
     std::vector< PropertyValue >                                maUIProperties;
     std::vector< bool >                                         maUIPropertyEnabled;
@@ -206,7 +206,7 @@ public:
     void resetPaperToLastConfigured();
 };
 
-PrinterController::PrinterController( const boost::shared_ptr<Printer>& i_pPrinter )
+PrinterController::PrinterController( const VclPtr<Printer>& i_pPrinter )
     : mpImplData( new ImplPrinterControllerData )
 {
     mpImplData->mpPrinter = i_pPrinter;
@@ -326,7 +326,7 @@ void Printer::ImplPrintJob( const boost::shared_ptr<PrinterController>& i_pContr
     if( ! pController->getPrinter() )
     {
         OUString aPrinterName( i_rInitSetup.GetPrinterName() );
-        boost::shared_ptr<Printer> pPrinter( new Printer( aPrinterName ) );
+        VclPtr<Printer> pPrinter( new Printer( aPrinterName ) );
         pPrinter->SetJobSetup( i_rInitSetup );
         pController->setPrinter( pPrinter );
     }
@@ -763,12 +763,12 @@ void PrinterController::setJobState( view::PrintableState i_eState )
     mpImplData->meJobState = i_eState;
 }
 
-const boost::shared_ptr<Printer>& PrinterController::getPrinter() const
+const VclPtr<Printer>& PrinterController::getPrinter() const
 {
     return mpImplData->mpPrinter;
 }
 
-void PrinterController::setPrinter( const boost::shared_ptr<Printer>& i_rPrinter )
+void PrinterController::setPrinter( const VclPtr<Printer>& i_rPrinter )
 {
     mpImplData->mpPrinter = i_rPrinter;
     setValue( OUString( "Name" ),
diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx
index f6cd596..0d4d895 100644
--- a/vcl/source/window/printdlg.cxx
+++ b/vcl/source/window/printdlg.cxx
@@ -631,13 +631,13 @@ PrintDialog::PrintDialog( vcl::Window* i_pParent, const boost::shared_ptr<Printe
         if( maJobPage.mpPrinters->GetEntryPos( aValue ) != LISTBOX_ENTRY_NOTFOUND )
         {
             maJobPage.mpPrinters->SelectEntry( aValue );
-            maPController->setPrinter( boost::shared_ptr<Printer>( new Printer( aValue ) ) );
+            maPController->setPrinter( VclPtr<Printer>( new Printer( aValue ) ) );
         }
         else
         {
             // fall back to default printer
             maJobPage.mpPrinters->SelectEntry( Printer::GetDefaultPrinterName() );
-            maPController->setPrinter( boost::shared_ptr<Printer>( new Printer( Printer::GetDefaultPrinterName() ) ) );
+            maPController->setPrinter( VclPtr<Printer>( new Printer( Printer::GetDefaultPrinterName() ) ) );
         }
     }
     // not printing to file
@@ -1337,7 +1337,7 @@ void PrintDialog::preparePreview( bool i_bNewPage, bool i_bMayUseCache )
     {
         const MapMode aMapMode( MAP_100TH_MM );
         GDIMetaFile aMtf;
-        boost::shared_ptr<Printer> aPrt( maPController->getPrinter() );
+        VclPtr<Printer> aPrt( maPController->getPrinter() );
         if( nPages > 0 )
         {
             PrinterController::PageSize aPageSize =
@@ -1530,7 +1530,7 @@ IMPL_LINK( PrintDialog, SelectHdl, ListBox*, pBox )
     {
         OUString aNewPrinter( pBox->GetSelectEntry() );
         // set new printer
-        maPController->setPrinter( boost::shared_ptr<Printer>( new Printer( aNewPrinter ) ) );
+        maPController->setPrinter( VclPtr<Printer>( new Printer( aNewPrinter ) ) );
         maPController->resetPrinterOptions( maOptionsPage.mpToFileBox->IsChecked() );
         // update text fields
         updatePrinterText();


More information about the Libreoffice-commits mailing list