svx/source/accessibility/charmapacc.cxx                   |    8 +-
 svx/source/accessibility/svxpixelctlaccessiblecontext.cxx |   43 +++++---------
 svx/source/dialog/charmap.cxx                             |    9 +-
 svx/source/inc/charmapacc.hxx                             |    4 -
 svx/source/inc/svxpixelctlaccessiblecontext.hxx           |    4 -
 5 files changed, 32 insertions(+), 36 deletions(-)

New commits:
commit 1fb467ae240de07bc381385ec0589a6e99ca7042
Author:     Noel Grandin <[email protected]>
AuthorDate: Thu Aug 31 08:46:39 2023 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Thu Aug 31 15:10:56 2023 +0200

    use concrete type for SvxShowCharSetAcc::m_aChildren
    
    avoid some unnecessary casting
    
    Change-Id: I73338c00b90357fe939e38a53f87a4ef9f13e86c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156322
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/svx/source/accessibility/charmapacc.cxx 
b/svx/source/accessibility/charmapacc.cxx
index 61cf9ca853e1..b5a0544d75b5 100644
--- a/svx/source/accessibility/charmapacc.cxx
+++ b/svx/source/accessibility/charmapacc.cxx
@@ -56,7 +56,7 @@ SvxShowCharSetItem::~SvxShowCharSetItem()
     }
 }
 
-uno::Reference< css::accessibility::XAccessible > 
SvxShowCharSetItem::GetAccessible()
+rtl::Reference<SvxShowCharSetItemAcc> SvxShowCharSetItem::GetAccessible()
 {
     if( !m_xItem.is() )
     {
@@ -84,8 +84,8 @@ SvxShowCharSetAcc::~SvxShowCharSetAcc()
 void SAL_CALL SvxShowCharSetAcc::disposing()
 {
     OAccessibleSelectionHelper::disposing();
-    for (auto& rChild : m_aChildren)
-        ::comphelper::disposeComponent(rChild);
+    for (auto& rxChild : m_aChildren)
+        rxChild->dispose();
 
     m_aChildren.clear();
     m_pParent = nullptr;
@@ -146,7 +146,7 @@ uno::Reference< css::accessibility::XAccessible > SAL_CALL 
SvxShowCharSetAcc::ge
 {
     OExternalLockGuard aGuard( this );
 
-    uno::Reference< css::accessibility::XAccessible >    xRet;
+    rtl::Reference< SvxShowCharSetItemAcc >  xRet;
     SvxShowCharSetItem* pItem = m_pParent->ImplGetItem( static_cast< 
sal_uInt16 >( i ) );
 
     if( !pItem )
diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx
index 18a31b5f7a74..a9806505d8c8 100644
--- a/svx/source/dialog/charmap.cxx
+++ b/svx/source/dialog/charmap.cxx
@@ -767,11 +767,14 @@ void SvxShowCharSet::SelectIndex(int nNewIndex, bool 
bFocus)
         if( m_xAccessible.is() )
         {
             svx::SvxShowCharSetItem* pItem = ImplGetItem(nSelectedIndex);
+            rtl::Reference<svx::SvxShowCharSetItemAcc> xItemAcc = 
pItem->GetAccessible();
             // Don't fire the focus event.
             if ( bFocus )
-                m_xAccessible->fireEvent( 
AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, Any(), 
Any(pItem->GetAccessible()) ); // this call assures that m_pItem is set
+                m_xAccessible->fireEvent( 
AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, Any(),
+                                Any(uno::Reference<XAccessible>(xItemAcc)) ); 
// this call assures that m_pItem is set
             else
-                m_xAccessible->fireEvent( 
AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS, Any(), 
Any(pItem->GetAccessible()) ); // this call assures that m_pItem is set
+                m_xAccessible->fireEvent( 
AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS, Any(),
+                                Any(uno::Reference<XAccessible>(xItemAcc)) ); 
// this call assures that m_pItem is set
 
             assert(pItem->m_xItem.is() && "No accessible created!");
             Any aOldAny, aNewAny;
@@ -826,7 +829,7 @@ IMPL_LINK_NOARG(SvxShowCharSet, VscrollHdl, 
weld::ScrolledWindow&, void)
             int nLast = LastInView();
             for ( ; nLast != nSelectedIndex; ++nLast)
             {
-                aOldAny <<= ImplGetItem(nLast)->GetAccessible();
+                aOldAny <<= 
uno::Reference<XAccessible>(ImplGetItem(nLast)->GetAccessible());
                 m_xAccessible ->fireEvent( AccessibleEventId::CHILD, aOldAny, 
aNewAny );
             }
         }
diff --git a/svx/source/inc/charmapacc.hxx b/svx/source/inc/charmapacc.hxx
index c909756c22d1..43ab846d5b6f 100644
--- a/svx/source/inc/charmapacc.hxx
+++ b/svx/source/inc/charmapacc.hxx
@@ -52,7 +52,7 @@ namespace svx
         SvxShowCharSetItem( SvxShowCharSet& rParent, SvxShowCharSetAcc* 
_pParent, sal_uInt16 _nPos );
         ~SvxShowCharSetItem();
 
-        css::uno::Reference< css::accessibility::XAccessible > GetAccessible();
+        rtl::Reference< SvxShowCharSetItemAcc > GetAccessible();
     };
 
 
@@ -66,7 +66,7 @@ namespace svx
                                         css::accessibility::XAccessible,
                                         css::accessibility::XAccessibleTable>
     {
-        ::std::vector< css::uno::Reference< css::accessibility::XAccessible > 
> m_aChildren;
+        ::std::vector< rtl::Reference< SvxShowCharSetItemAcc > > m_aChildren;
         SvxShowCharSet*             m_pParent; // the vcl control
         virtual void SAL_CALL disposing() override;
     public:
commit d2c61ed43006066902984c37e6bd6b28a15968c9
Author:     Noel Grandin <[email protected]>
AuthorDate: Thu Aug 31 08:40:43 2023 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Thu Aug 31 15:10:48 2023 +0200

    use concrete type for SvxPixelCtlAccessible::m_xCurChild
    
    avoid some unnecessary casting
    
    Change-Id: I83ee8605052c8635b643f9c163b2b6b69b154884
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156321
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx 
b/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx
index af34fd21de72..8c0e0ca1c0c1 100644
--- a/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx
+++ b/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx
@@ -222,32 +222,25 @@ void SvxPixelCtlAccessible::NotifyChild(tools::Long 
nIndex,bool bSelect ,bool bC
 {
     DBG_ASSERT( !(!bSelect && !bCheck),"" );//non is false
 
-    SvxPixelCtlAccessibleChild *pChild= nullptr;
-
-    if (m_xCurChild.is())
+    rtl::Reference<SvxPixelCtlAccessibleChild> pChild = m_xCurChild;
+    if (pChild && pChild->getAccessibleIndexInParent() == nIndex )
     {
-        pChild= static_cast<SvxPixelCtlAccessibleChild*>(m_xCurChild.get());
-        DBG_ASSERT(pChild,"Child Must be Valid");
-        if (pChild->getAccessibleIndexInParent() == nIndex )
+        if (bSelect)
+        {
+            pChild->SelectChild(true);
+        }
+        if (bCheck)
         {
-            if (bSelect)
-            {
-                pChild->SelectChild(true);
-            }
-            if (bCheck)
-            {
-                
pChild->ChangePixelColorOrBG(mpPixelCtl->GetBitmapPixel(sal_uInt16(nIndex)) != 
0);
-                pChild->CheckChild();
-            }
-            return ;
+            
pChild->ChangePixelColorOrBG(mpPixelCtl->GetBitmapPixel(sal_uInt16(nIndex)) != 
0);
+            pChild->CheckChild();
         }
+        return;
     }
-    uno::Reference <XAccessible> xNewChild =CreateChild(nIndex, 
mpPixelCtl->IndexToPoint(nIndex));
-    SvxPixelCtlAccessibleChild *pNewChild= 
static_cast<SvxPixelCtlAccessibleChild*>(xNewChild.get());
-    DBG_ASSERT(pNewChild,"Child Must be Valid");
+    rtl::Reference<SvxPixelCtlAccessibleChild> xNewChild = CreateChild(nIndex, 
mpPixelCtl->IndexToPoint(nIndex));
+    DBG_ASSERT(xNewChild,"Child Must be Valid");
 
     Any aNewValue,aOldValue;
-    aNewValue<<= xNewChild;
+    aNewValue <<= uno::Reference<XAccessible>(xNewChild);
     NotifyAccessibleEvent(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, 
aOldValue, aNewValue);
 
     if (bSelect)
@@ -256,20 +249,20 @@ void SvxPixelCtlAccessible::NotifyChild(tools::Long 
nIndex,bool bSelect ,bool bC
         {
             pChild->SelectChild(false);
         }
-        pNewChild->SelectChild(true);
+        xNewChild->SelectChild(true);
     }
     if (bCheck)
     {
-        pNewChild->CheckChild();
+        xNewChild->CheckChild();
     }
-    m_xCurChild= xNewChild;
+    m_xCurChild = xNewChild;
 }
 
-uno::Reference<XAccessible> SvxPixelCtlAccessible::CreateChild (tools::Long 
nIndex,Point mPoint)
+rtl::Reference<SvxPixelCtlAccessibleChild> SvxPixelCtlAccessible::CreateChild 
(tools::Long nIndex,Point mPoint)
 {
     bool bPixelColorOrBG = mpPixelCtl->GetBitmapPixel(sal_uInt16(nIndex)) != 0;
     Size size(mpPixelCtl->GetWidth() / SvxPixelCtl::GetLineCount(), 
mpPixelCtl->GetHeight() / SvxPixelCtl::GetLineCount());
-    uno::Reference<XAccessible> xChild = new 
SvxPixelCtlAccessibleChild(*mpPixelCtl,
+    rtl::Reference<SvxPixelCtlAccessibleChild> xChild = new 
SvxPixelCtlAccessibleChild(*mpPixelCtl,
                 bPixelColorOrBG,
                 tools::Rectangle(mPoint,size),
                 this,
diff --git a/svx/source/inc/svxpixelctlaccessiblecontext.hxx 
b/svx/source/inc/svxpixelctlaccessiblecontext.hxx
index 5ae6a9b92828..ae79b36f7b1d 100644
--- a/svx/source/inc/svxpixelctlaccessiblecontext.hxx
+++ b/svx/source/inc/svxpixelctlaccessiblecontext.hxx
@@ -119,7 +119,7 @@ public:
     virtual sal_Int32 SAL_CALL getForeground(  ) override;
     virtual sal_Int32 SAL_CALL getBackground(  ) override;
 
-    css::uno::Reference< css::accessibility::XAccessible >
+    rtl::Reference<SvxPixelCtlAccessibleChild>
          CreateChild (tools::Long nIndex, Point mPoint);
 
 private:
@@ -138,7 +138,7 @@ private:
     virtual void SAL_CALL disposing() override;
 
     SvxPixelCtl* mpPixelCtl;
-    css::uno::Reference< css::accessibility::XAccessible> m_xCurChild;
+    rtl::Reference<SvxPixelCtlAccessibleChild> m_xCurChild;
 
 public:
     void NotifyChild(tools::Long nIndex, bool bSelect, bool bCheck);

Reply via email to