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.gran...@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.gran...@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.gran...@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(); }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits