accessibility/inc/standard/vclxaccessibletabcontrol.hxx | 4 accessibility/inc/standard/vclxaccessibletoolbox.hxx | 6 - accessibility/source/standard/vclxaccessibletabcontrol.cxx | 67 ++++--------- accessibility/source/standard/vclxaccessibletoolbox.cxx | 33 ++---- 4 files changed, 39 insertions(+), 71 deletions(-)
New commits: commit a3f77a61c03340b79930e89d5c4045d814b93edf Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Aug 30 14:43:18 2023 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Aug 30 22:16:36 2023 +0200 use concrete type for VCLXAccessibleTabControl::m_aAccessibleChildren avoid some unnecessary casting Change-Id: I2f6ed71fbffbcdfad18ed03dd45c12ea1f52fff6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156291 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/accessibility/inc/standard/vclxaccessibletabcontrol.hxx b/accessibility/inc/standard/vclxaccessibletabcontrol.hxx index dcf515775bd7..32565c6d80ad 100644 --- a/accessibility/inc/standard/vclxaccessibletabcontrol.hxx +++ b/accessibility/inc/standard/vclxaccessibletabcontrol.hxx @@ -27,7 +27,7 @@ #include <vector> - +class VCLXAccessibleTabPage; class VCLXAccessibleTabControl final : public cppu::ImplInheritanceHelper< @@ -35,7 +35,7 @@ class VCLXAccessibleTabControl final : public cppu::ImplInheritanceHelper< css::accessibility::XAccessibleSelection> { private: - typedef std::vector< css::uno::Reference< css::accessibility::XAccessible > > AccessibleChildren; + typedef std::vector< rtl::Reference< VCLXAccessibleTabPage > > AccessibleChildren; AccessibleChildren m_aAccessibleChildren; VclPtr<TabControl> m_pTabControl; diff --git a/accessibility/source/standard/vclxaccessibletabcontrol.cxx b/accessibility/source/standard/vclxaccessibletabcontrol.cxx index 9963b51aef5f..0855b0f177aa 100644 --- a/accessibility/source/standard/vclxaccessibletabcontrol.cxx +++ b/accessibility/source/standard/vclxaccessibletabcontrol.cxx @@ -52,20 +52,16 @@ VCLXAccessibleTabControl::VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow ) m_pTabControl.clear(); return; } - m_aAccessibleChildren.assign( m_pTabControl->GetPageCount(), Reference< XAccessible >() ); + m_aAccessibleChildren.assign( m_pTabControl->GetPageCount(), rtl::Reference< VCLXAccessibleTabPage >() ); } void VCLXAccessibleTabControl::UpdateFocused() { - for (const Reference<XAccessible>& xChild : m_aAccessibleChildren) + for (const rtl::Reference<VCLXAccessibleTabPage>& pVCLXAccessibleTabPage : m_aAccessibleChildren) { - if ( xChild.is() ) - { - VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() ); - if ( pVCLXAccessibleTabPage ) - pVCLXAccessibleTabPage->SetFocused( pVCLXAccessibleTabPage->IsFocused() ); - } + if ( pVCLXAccessibleTabPage ) + pVCLXAccessibleTabPage->SetFocused( pVCLXAccessibleTabPage->IsFocused() ); } } @@ -74,13 +70,9 @@ void VCLXAccessibleTabControl::UpdateSelected( sal_Int32 i, bool bSelected ) { if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() ) { - Reference< XAccessible > xChild( m_aAccessibleChildren[i] ); - if ( xChild.is() ) - { - VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() ); - if ( pVCLXAccessibleTabPage ) - pVCLXAccessibleTabPage->SetSelected( bSelected ); - } + rtl::Reference< VCLXAccessibleTabPage > pVCLXAccessibleTabPage( m_aAccessibleChildren[i] ); + if ( pVCLXAccessibleTabPage ) + pVCLXAccessibleTabPage->SetSelected( bSelected ); } } @@ -89,13 +81,9 @@ void VCLXAccessibleTabControl::UpdatePageText( sal_Int32 i ) { if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() ) { - Reference< XAccessible > xChild( m_aAccessibleChildren[i] ); - if ( xChild.is() ) - { - VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() ); - if ( pVCLXAccessibleTabPage ) - pVCLXAccessibleTabPage->SetPageText( pVCLXAccessibleTabPage->GetPageText() ); - } + rtl::Reference< VCLXAccessibleTabPage > pVCLXAccessibleTabPage( m_aAccessibleChildren[i] ); + if ( pVCLXAccessibleTabPage ) + pVCLXAccessibleTabPage->SetPageText( pVCLXAccessibleTabPage->GetPageText() ); } } @@ -104,13 +92,9 @@ void VCLXAccessibleTabControl::UpdateTabPage( sal_Int32 i, bool bNew ) { if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() ) { - Reference< XAccessible > xChild( m_aAccessibleChildren[i] ); - if ( xChild.is() ) - { - VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() ); - if ( pVCLXAccessibleTabPage ) - pVCLXAccessibleTabPage->Update( bNew ); - } + rtl::Reference< VCLXAccessibleTabPage > pVCLXAccessibleTabPage( m_aAccessibleChildren[i] ); + if ( pVCLXAccessibleTabPage ) + pVCLXAccessibleTabPage->Update( bNew ); } } @@ -121,7 +105,7 @@ void VCLXAccessibleTabControl::InsertChild( sal_Int32 i ) return; // insert entry in child list - m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() ); + m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, rtl::Reference< VCLXAccessibleTabPage >() ); // send accessible child event Reference< XAccessible > xChild( getAccessibleChild( i ) ); @@ -140,7 +124,7 @@ void VCLXAccessibleTabControl::RemoveChild( sal_Int32 i ) return; // get the accessible of the removed page - Reference< XAccessible > xChild( m_aAccessibleChildren[i] ); + rtl::Reference< VCLXAccessibleTabPage > xChild( m_aAccessibleChildren[i] ); // remove entry in child list m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i ); @@ -149,12 +133,10 @@ void VCLXAccessibleTabControl::RemoveChild( sal_Int32 i ) if ( xChild.is() ) { Any aOldValue, aNewValue; - aOldValue <<= xChild; + aOldValue <<= uno::Reference<XAccessible>(xChild); NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue ); - Reference< XComponent > xComponent( xChild, UNO_QUERY ); - if ( xComponent.is() ) - xComponent->dispose(); + xChild->dispose(); } } @@ -235,12 +217,8 @@ void VCLXAccessibleTabControl::ProcessWindowEvent( const VclWindowEvent& rVclWin m_pTabControl = nullptr; // dispose all tab pages - for (const Reference<XAccessible>& i : m_aAccessibleChildren) - { - Reference< XComponent > xComponent( i, UNO_QUERY ); - if ( xComponent.is() ) - xComponent->dispose(); - } + for (const rtl::Reference<VCLXAccessibleTabPage>& i : m_aAccessibleChildren) + i->dispose(); m_aAccessibleChildren.clear(); } @@ -304,12 +282,9 @@ void VCLXAccessibleTabControl::disposing() m_pTabControl = nullptr; // dispose all tab pages - for (const Reference<XAccessible>& i : m_aAccessibleChildren) - { - Reference< XComponent > xComponent( i, UNO_QUERY ); + for (const rtl::Reference<VCLXAccessibleTabPage>& xComponent : m_aAccessibleChildren) if ( xComponent.is() ) xComponent->dispose(); - } m_aAccessibleChildren.clear(); } @@ -352,7 +327,7 @@ Reference< XAccessible > VCLXAccessibleTabControl::getAccessibleChild( sal_Int64 Reference< XAccessible > VCLXAccessibleTabControl::implGetAccessibleChild( sal_Int64 i ) { - Reference< XAccessible > xChild = m_aAccessibleChildren[i]; + rtl::Reference< VCLXAccessibleTabPage > xChild = m_aAccessibleChildren[i]; if ( !xChild.is() ) { sal_uInt16 nPageId = m_pTabControl ? m_pTabControl->GetPageId(static_cast<sal_uInt16>(i)) : 0; commit af08e6c2f46a6d99b2e18fe176c15ec2b6edb2fd Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Aug 30 14:02:11 2023 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Aug 30 22:16:23 2023 +0200 use concrete type for ToolBoxItemsMap avoid some unnecessary casting Change-Id: I582144f0654837ac8864679b38c3d2676d1089b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156290 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/accessibility/inc/standard/vclxaccessibletoolbox.hxx b/accessibility/inc/standard/vclxaccessibletoolbox.hxx index 2fba09d80e79..4918e511ba2a 100644 --- a/accessibility/inc/standard/vclxaccessibletoolbox.hxx +++ b/accessibility/inc/standard/vclxaccessibletoolbox.hxx @@ -25,13 +25,11 @@ #include <cppuhelper/implbase.hxx> - - -typedef std::map< sal_Int32, css::uno::Reference< css::accessibility::XAccessible > > ToolBoxItemsMap; - class VCLXAccessibleToolBoxItem; class ToolBox; +typedef std::map< sal_Int32, rtl::Reference< VCLXAccessibleToolBoxItem > > ToolBoxItemsMap; + class VCLXAccessibleToolBox final : public cppu::ImplInheritanceHelper<VCLXAccessibleComponent, css::accessibility::XAccessibleSelection> { private: diff --git a/accessibility/source/standard/vclxaccessibletoolbox.cxx b/accessibility/source/standard/vclxaccessibletoolbox.cxx index aaea955d10f6..a3ea0ec99d72 100644 --- a/accessibility/source/standard/vclxaccessibletoolbox.cxx +++ b/accessibility/source/standard/vclxaccessibletoolbox.cxx @@ -137,7 +137,7 @@ VCLXAccessibleToolBoxItem* VCLXAccessibleToolBox::GetItem_Impl( ToolBox::ImplToo //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32! // returns only toolbox buttons, not windows if ( aIter != m_aAccessibleChildren.end() && aIter->second.is()) - pItem = static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() ); + pItem = aIter->second.get(); } return pItem; @@ -173,8 +173,7 @@ void VCLXAccessibleToolBox::UpdateFocus_Impl() if ( rxChild.is() ) { - VCLXAccessibleToolBoxItem* pItem = - static_cast< VCLXAccessibleToolBoxItem* >( rxChild.get() ); + VCLXAccessibleToolBoxItem* pItem = rxChild.get(); if ( pItem->HasFocus() && nItemId != nHighlightItemId ) { // reset the old focused item @@ -203,8 +202,7 @@ void VCLXAccessibleToolBox::ReleaseFocus_Impl( ToolBox::ImplToolItems::size_type //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32! if ( aIter != m_aAccessibleChildren.end() && aIter->second.is() ) { - VCLXAccessibleToolBoxItem* pItem = - static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() ); + VCLXAccessibleToolBoxItem* pItem = aIter->second.get(); if ( pItem->HasFocus() ) pItem->SetFocus( false ); } @@ -224,8 +222,7 @@ void VCLXAccessibleToolBox::UpdateChecked_Impl( ToolBox::ImplToolItems::size_typ { ToolBoxItemId nItemId = pToolBox->GetItemId( rPos ); - VCLXAccessibleToolBoxItem* pItem = - static_cast< VCLXAccessibleToolBoxItem* >( rxChild.get() ); + VCLXAccessibleToolBoxItem* pItem = rxChild.get(); pItem->SetChecked( pToolBox->IsItemChecked( nItemId ) ); if ( nItemId == nFocusId ) pFocusItem = pItem; @@ -247,8 +244,7 @@ void VCLXAccessibleToolBox::UpdateIndeterminate_Impl( ToolBox::ImplToolItems::si //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32! if ( aIter != m_aAccessibleChildren.end() && aIter->second.is() ) { - VCLXAccessibleToolBoxItem* pItem = - static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() ); + VCLXAccessibleToolBoxItem* pItem = aIter->second.get(); if ( pItem ) pItem->SetIndeterminate( pToolBox->GetItemState( nItemId ) == TRISTATE_INDET ); } @@ -646,7 +642,7 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleToolBox::getAccessibleChild( sal if ( (!pToolBox) || i < 0 || o3tl::make_unsigned(i) >= pToolBox->GetItemCount() ) throw IndexOutOfBoundsException(); - Reference< XAccessible > xChild; + rtl::Reference< VCLXAccessibleToolBoxItem > xChild; // search for the child ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.find(i); if ( m_aAccessibleChildren.end() == aIter ) @@ -655,21 +651,20 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleToolBox::getAccessibleChild( sal ToolBoxItemId nHighlightItemId = pToolBox->GetHighlightItemId(); vcl::Window* pItemWindow = pToolBox->GetItemWindow( nItemId ); // not found -> create a new child - rtl::Reference<VCLXAccessibleToolBoxItem> pChild = new VCLXAccessibleToolBoxItem( pToolBox, i ); - Reference< XAccessible> xParent = pChild; + xChild = new VCLXAccessibleToolBoxItem( pToolBox, i ); if ( pItemWindow ) { - xChild = new OToolBoxWindowItem(0,::comphelper::getProcessComponentContext(),pItemWindow->GetAccessible(),xParent); - pItemWindow->SetAccessible(xChild); - pChild->SetChild( xChild ); + Reference< XAccessible> xParent = xChild; + rtl::Reference<OToolBoxWindowItem> xChild2( new OToolBoxWindowItem(0,::comphelper::getProcessComponentContext(),pItemWindow->GetAccessible(),xParent) ); + pItemWindow->SetAccessible(xChild2); + xChild->SetChild( xChild2 ); } - xChild = pChild; if ( nHighlightItemId > ToolBoxItemId(0) && nItemId == nHighlightItemId ) - pChild->SetFocus( true ); + xChild->SetFocus( true ); if ( pToolBox->IsItemChecked( nItemId ) ) - pChild->SetChecked( true ); + xChild->SetChecked( true ); if ( pToolBox->GetItemState( nItemId ) == TRISTATE_INDET ) - pChild->SetIndeterminate( true ); + xChild->SetIndeterminate( true ); m_aAccessibleChildren.emplace( i, xChild ); } else