[Libreoffice-commits] core.git: 3 commits - svx/source

Noel Grandin noel.grandin at collabora.co.uk
Mon Jan 23 11:12:27 UTC 2017


 svx/source/accessibility/charmapacc.cxx |   41 ++++++++++++++------------------
 svx/source/dialog/charmap.cxx           |    6 ++--
 svx/source/dialog/frmsel.cxx            |   27 +++++++++------------
 svx/source/inc/charmapacc.hxx           |   16 +++++-------
 svx/source/inc/frmselimpl.hxx           |    9 +------
 5 files changed, 42 insertions(+), 57 deletions(-)

New commits:
commit 5a6fa02a6c77c7c1e578fb5c77d18d95571c39a2
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Jan 23 11:30:06 2017 +0200

    use rtl::Reference in FrameSelectorImpl
    
    instead of storing both raw pointers and uno::References
    
    Change-Id: I7a9a436b0d14d4dcaa696713973b86232c8470c0

diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx
index 78c1d9c..c5bf0f0 100644
--- a/svx/source/dialog/frmsel.cxx
+++ b/svx/source/dialog/frmsel.cxx
@@ -229,9 +229,7 @@ FrameSelectorImpl::FrameSelectorImpl( FrameSelector& rFrameSel ) :
     mbAutoSelect( true ),
     mbClicked( false ),
     mbHCMode( false ),
-    mpAccess( nullptr ),
-    maChildVec( 8, static_cast< a11y::AccFrameSelector* >( nullptr ) ),
-    mxChildVec( 8 )
+    maChildVec( 8 )
 {
     maAllBorders.resize( FRAMEBORDERTYPE_COUNT, nullptr );
     maAllBorders[ GetIndexFromFrameBorderType( FrameBorderType::Left   ) ] = &maLeft;
@@ -265,10 +263,10 @@ FrameSelectorImpl::FrameSelectorImpl( FrameSelector& rFrameSel ) :
 FrameSelectorImpl::~FrameSelectorImpl()
 
 {
-    if( mpAccess )
-        mpAccess->Invalidate();
+    if( mxAccess.is() )
+        mxAccess->Invalidate();
     for( auto aIt = maChildVec.begin(), aEnd = maChildVec.end(); aIt != aEnd; ++aIt )
-        if( *aIt )
+        if( aIt->is() )
             (*aIt)->Invalidate();
 }
 
@@ -731,7 +729,7 @@ void FrameSelectorImpl::SetBorderState( FrameBorder& rBorder, FrameBorderState e
     Reference< XAccessible > xRet;
     size_t nVecIdx = static_cast< size_t >( rBorder.GetType() );
     if( GetBorder(rBorder.GetType()).IsEnabled() && (1 <= nVecIdx) && (nVecIdx <= maChildVec.size()) )
-        xRet = mxChildVec[ --nVecIdx ];
+        xRet = maChildVec[ --nVecIdx ].get();
     a11y::AccFrameSelector* pFrameSelector = static_cast<a11y::AccFrameSelector*>(xRet.get());
 
     if( eState == FrameBorderState::Show )
@@ -1007,9 +1005,9 @@ void FrameSelector::SetColorToSelection( const Color& rColor )
 Reference< XAccessible > FrameSelector::CreateAccessible()
 {
     if( !mxImpl->mxAccess.is() )
-        mxImpl->mxAccess = mxImpl->mpAccess =
+        mxImpl->mxAccess = mxImpl->mxAccess =
             new a11y::AccFrameSelector( *this, FrameBorderType::NONE );
-    return mxImpl->mxAccess;
+    return mxImpl->mxAccess.get();
 }
 
 Reference< XAccessible > FrameSelector::GetChildAccessible( FrameBorderType eBorder )
@@ -1019,10 +1017,9 @@ Reference< XAccessible > FrameSelector::GetChildAccessible( FrameBorderType eBor
     if( IsBorderEnabled( eBorder ) && (1 <= nVecIdx) && (nVecIdx <= mxImpl->maChildVec.size()) )
     {
         --nVecIdx;
-        if( !mxImpl->maChildVec[ nVecIdx ] )
-            mxImpl->mxChildVec[ nVecIdx ] = mxImpl->maChildVec[ nVecIdx ] =
-                new a11y::AccFrameSelector( *this, eBorder );
-        xRet = mxImpl->mxChildVec[ nVecIdx ];
+        if( !mxImpl->maChildVec[ nVecIdx ].is() )
+            mxImpl->maChildVec[ nVecIdx ] = new a11y::AccFrameSelector( *this, eBorder );
+        xRet = mxImpl->maChildVec[ nVecIdx ].get();
     }
     return xRet;
 }
@@ -1211,7 +1208,7 @@ void FrameSelector::GetFocus()
 
     mxImpl->DoInvalidate( false );
     if( mxImpl->mxAccess.is() )
-        mxImpl->mpAccess->NotifyFocusListeners( true );
+        mxImpl->mxAccess->NotifyFocusListeners( true );
     if (IsAnyBorderSelected())
     {
         FrameBorderType borderType = FrameBorderType::NONE;
@@ -1242,7 +1239,7 @@ void FrameSelector::LoseFocus()
 {
     mxImpl->DoInvalidate( false );
     if( mxImpl->mxAccess.is() )
-        mxImpl->mpAccess->NotifyFocusListeners( false );
+        mxImpl->mxAccess->NotifyFocusListeners( false );
     Control::LoseFocus();
 }
 
diff --git a/svx/source/inc/frmselimpl.hxx b/svx/source/inc/frmselimpl.hxx
index 4e9dfb3..7bb2d57 100644
--- a/svx/source/inc/frmselimpl.hxx
+++ b/svx/source/inc/frmselimpl.hxx
@@ -138,14 +138,9 @@ struct FrameSelectorImpl
     bool                mbClicked;      /// true = The control has been clicked at least one time.
     bool                mbHCMode;       /// true = High contrast mode.
 
-    a11y::AccFrameSelector* mpAccess;   /// Pointer to accessibility object of the control.
-    css::uno::Reference<css::accessibility::XAccessible>
-                        mxAccess;       /// Reference to accessibility object of the control.
-    std::vector<a11y::AccFrameSelector*>
+    rtl::Reference<a11y::AccFrameSelector> mxAccess;   /// Pointer to accessibility object of the control.
+    std::vector<rtl::Reference<a11y::AccFrameSelector>>
                         maChildVec;     /// Pointers to accessibility objects for frame borders.
-    std::vector<css::uno::Reference<css::accessibility::XAccessible> >
-                        mxChildVec;     /// References to accessibility objects for frame borders.
-
     explicit            FrameSelectorImpl( FrameSelector& rFrameSel );
                         ~FrameSelectorImpl();
 
commit 3bcfb690821e73e30731d9c3f33c00103f2d4cba
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Jan 23 11:23:09 2017 +0200

    use rtl::Reference in SvxShowCharSetVirtualAcc
    
    instead of both raw pointer and uno::Reference
    
    Change-Id: Ib2ca24f24a7c4f0645daefcea3e8bf44c205a85f

diff --git a/svx/source/accessibility/charmapacc.cxx b/svx/source/accessibility/charmapacc.cxx
index ac60371..3d801af 100644
--- a/svx/source/accessibility/charmapacc.cxx
+++ b/svx/source/accessibility/charmapacc.cxx
@@ -42,7 +42,6 @@ namespace svx
 
 SvxShowCharSetVirtualAcc::SvxShowCharSetVirtualAcc( SvxShowCharSet* pParent ) : OAccessibleComponentHelper(new VCLExternalSolarLock())
 ,mpParent( pParent )
-,m_pTable(nullptr)
 {
     osl_atomic_increment(&m_refCount);
     {
@@ -67,8 +66,8 @@ void SAL_CALL SvxShowCharSetVirtualAcc::fireEvent(
                     const css::uno::Any& _rNewValue
                 )
 {
-    if ( m_pTable )
-        m_pTable->fireEvent(_nEventId,_rOldValue,_rNewValue);
+    if ( m_xTable.is() )
+        m_xTable->fireEvent(_nEventId,_rOldValue,_rNewValue);
 }
 
 sal_Int32 SAL_CALL SvxShowCharSetVirtualAcc::getAccessibleChildCount(  ) throw (RuntimeException, std::exception)
@@ -89,9 +88,9 @@ uno::Reference< css::accessibility::XAccessible > SAL_CALL SvxShowCharSetVirtual
 
     if( sal_uInt16(-1) != nItemId )
     {
-        if ( !m_pTable )
-            m_pTable = new SvxShowCharSetAcc(this);
-        xRet = m_pTable;
+        if ( !m_xTable.is() )
+            m_xTable = new SvxShowCharSetAcc(this);
+        xRet = m_xTable.get();
     }
     else if ( mpParent->getScrollBar().IsVisible() )
     {
@@ -121,15 +120,14 @@ Reference< XAccessible > SAL_CALL SvxShowCharSetVirtualAcc::getAccessibleChild(
         return mpParent->getScrollBar().GetAccessible();
     else if ( i == 1 )
     {
-        if ( !m_xAcc.is() )
+        if ( !m_xTable.is() )
         {
-            m_pTable = new SvxShowCharSetAcc(this);
-            m_xAcc = m_pTable;
+            m_xTable = new SvxShowCharSetAcc(this);
         }
     }
     else
         throw IndexOutOfBoundsException();
-    return m_xAcc;
+    return m_xTable.get();
 }
 
 Reference< XAccessible > SAL_CALL SvxShowCharSetVirtualAcc::getAccessibleParent(  ) throw (RuntimeException, std::exception)
@@ -216,9 +214,9 @@ Reference< XAccessibleStateSet > SAL_CALL SvxShowCharSetVirtualAcc::getAccessibl
 void SAL_CALL SvxShowCharSetVirtualAcc::disposing()
 {
     OAccessibleContextHelper::disposing();
-    if ( m_pTable )
-        m_pTable->dispose();
-    m_pTable = nullptr;
+    if ( m_xTable.is() )
+        m_xTable->dispose();
+    m_xTable.clear();
 }
 
 
diff --git a/svx/source/inc/charmapacc.hxx b/svx/source/inc/charmapacc.hxx
index 3063acb..4e0b41d 100644
--- a/svx/source/inc/charmapacc.hxx
+++ b/svx/source/inc/charmapacc.hxx
@@ -41,9 +41,8 @@ namespace svx
     class SvxShowCharSetVirtualAcc : public ::comphelper::OAccessibleComponentHelper,
                                      public OAccessibleHelper_Base_2
     {
-        VclPtr<SvxShowCharSet>     mpParent; // the vcl control
-        SvxShowCharSetAcc*  m_pTable; // the table, which holds the characters shown by the vcl control
-        css::uno::Reference< css::accessibility::XAccessible > m_xAcc; // the ref to the table
+        VclPtr<SvxShowCharSet>             mpParent; // the vcl control
+        rtl::Reference<SvxShowCharSetAcc>  m_xTable; // the table, which holds the characters shown by the vcl control
     protected:
         virtual ~SvxShowCharSetVirtualAcc() override;
 
@@ -84,8 +83,8 @@ namespace svx
                 );
 
         // simple access methods
-        inline SvxShowCharSetAcc*   getTable() const { return m_pTable; }
-        inline SvxShowCharSet* getCharSetControl() const { return mpParent; }
+        inline SvxShowCharSetAcc*   getTable() const { return m_xTable.get(); }
+        inline SvxShowCharSet*      getCharSetControl() const { return mpParent; }
     };
 
 
commit 3199cc1ab8c47cbdbf4ac039c523cc398277eec0
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Jan 23 11:20:49 2017 +0200

    use rtl::Reference in SvxShowCharSetItem
    
    instead of raw pointer and uno::Reference
    
    Change-Id: I92eb7f5a2e710eade580af71b157b3d1eee7b79f

diff --git a/svx/source/accessibility/charmapacc.cxx b/svx/source/accessibility/charmapacc.cxx
index 97f523c..ac60371 100644
--- a/svx/source/accessibility/charmapacc.cxx
+++ b/svx/source/accessibility/charmapacc.cxx
@@ -225,7 +225,6 @@ void SAL_CALL SvxShowCharSetVirtualAcc::disposing()
 SvxShowCharSetItem::SvxShowCharSetItem( SvxShowCharSet& rParent,SvxShowCharSetAcc*  _pParent,sal_uInt16 _nPos ) :
     mrParent( rParent )
     ,mnId( _nPos )
-    ,m_pItem(nullptr)
     ,m_pParent(_pParent)
 {
 }
@@ -233,24 +232,22 @@ SvxShowCharSetItem::SvxShowCharSetItem( SvxShowCharSet& rParent,SvxShowCharSetAc
 
 SvxShowCharSetItem::~SvxShowCharSetItem()
 {
-    if ( m_xAcc.is() )
+    if ( m_xItem.is() )
     {
-        m_pItem->ParentDestroyed();
-        m_pItem = nullptr;
-        m_xAcc  = nullptr;
+        m_xItem->ParentDestroyed();
+        m_xItem.clear();
     }
 }
 
 
-uno::Reference< css::accessibility::XAccessible > const & SvxShowCharSetItem::GetAccessible()
+uno::Reference< css::accessibility::XAccessible > SvxShowCharSetItem::GetAccessible()
 {
-    if( !m_xAcc.is() )
+    if( !m_xItem.is() )
     {
-        m_pItem = new SvxShowCharSetItemAcc( this );
-        m_xAcc = m_pItem;
+        m_xItem = new SvxShowCharSetItemAcc( this );
     }
 
-    return m_xAcc;
+    return m_xItem.get();
 }
 
 
diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx
index 462a11f..9bfa8d9 100644
--- a/svx/source/dialog/charmap.cxx
+++ b/svx/source/dialog/charmap.cxx
@@ -632,15 +632,15 @@ void SvxShowCharSet::SelectIndex( int nNewIndex, bool bFocus )
             else
                 m_xAccessible->fireEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS, Any(), makeAny(pItem->GetAccessible()) ); // this call assures that m_pItem is set
 
-            assert(pItem->m_pItem && "No accessible created!");
+            assert(pItem->m_xItem.is() && "No accessible created!");
             Any aOldAny, aNewAny;
             aNewAny <<= AccessibleStateType::FOCUSED;
             // Don't fire the focus event.
             if ( bFocus )
-                pItem->m_pItem->fireEvent( AccessibleEventId::STATE_CHANGED, aOldAny, aNewAny );
+                pItem->m_xItem->fireEvent( AccessibleEventId::STATE_CHANGED, aOldAny, aNewAny );
 
             aNewAny <<= AccessibleStateType::SELECTED;
-            pItem->m_pItem->fireEvent( AccessibleEventId::STATE_CHANGED, aOldAny, aNewAny );
+            pItem->m_xItem->fireEvent( AccessibleEventId::STATE_CHANGED, aOldAny, aNewAny );
         }
     }
     aHighHdl.Call( this );
diff --git a/svx/source/inc/charmapacc.hxx b/svx/source/inc/charmapacc.hxx
index 73bc31e..3063acb 100644
--- a/svx/source/inc/charmapacc.hxx
+++ b/svx/source/inc/charmapacc.hxx
@@ -101,14 +101,13 @@ namespace svx
         sal_uInt16                  mnId;
         OUString                    maText;
         Rectangle                   maRect;
-        SvxShowCharSetItemAcc*      m_pItem;
+        rtl::Reference<SvxShowCharSetItemAcc>  m_xItem;
         SvxShowCharSetAcc*          m_pParent;
-        css::uno::Reference< css::accessibility::XAccessible > m_xAcc;
 
-        SvxShowCharSetItem( SvxShowCharSet& rParent,SvxShowCharSetAcc*  _pParent,sal_uInt16 _nPos );
+        SvxShowCharSetItem( SvxShowCharSet& rParent, SvxShowCharSetAcc* _pParent, sal_uInt16 _nPos );
         ~SvxShowCharSetItem();
 
-        css::uno::Reference< css::accessibility::XAccessible > const &    GetAccessible();
+        css::uno::Reference< css::accessibility::XAccessible > GetAccessible();
     };
 
 


More information about the Libreoffice-commits mailing list