include/svtools/valueset.hxx        |    4 +++-
 svtools/source/control/valueset.cxx |   24 +++++++++---------------
 2 files changed, 12 insertions(+), 16 deletions(-)

New commits:
commit 7379decd74f9f66011f0023d8903430293dc0532
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed Aug 30 12:46:31 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Wed Aug 30 17:49:47 2023 +0200

    use concrete type for ValueSet::mxAccessible
    
    avoid some unnecessary casting
    
    Change-Id: I2569aafb10431bcf1445efefd277b1aeecf7b404
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156286
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index 92c3e4e361cc..e3ff72438003 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -23,6 +23,7 @@
 #include <vcl/wintypes.hxx>
 #include <vcl/customweld.hxx>
 #include <vcl/image.hxx>
+#include <rtl/ref.hxx>
 #include <memory>
 #include <vector>
 
@@ -34,6 +35,7 @@ class DataChangedEvent;
 class ScrollBar;
 class UserDrawEvent;
 class VirtualDevice;
+class ValueSetAcc;
 
 struct ValueSetItem;
 
@@ -185,7 +187,7 @@ class SVT_DLLPUBLIC ValueSet : public 
weld::CustomWidgetController
 {
 private:
     ScopedVclPtr<VirtualDevice> maVirDev;
-    css::uno::Reference<css::accessibility::XAccessible> mxAccessible;
+    rtl::Reference<ValueSetAcc> mxAccessible;
     ValueItemList   mItemList;
     std::unique_ptr<ValueSetItem> mpNoneItem;
     std::unique_ptr<weld::ScrolledWindow> mxScrolledWindow;
diff --git a/svtools/source/control/valueset.cxx 
b/svtools/source/control/valueset.cxx
index 71f2f7c5aa0d..e40da6193084 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -123,9 +123,8 @@ Reference<XAccessible> ValueSet::CreateAccessible()
 
 ValueSet::~ValueSet()
 {
-    Reference<XComponent> xComponent(mxAccessible, UNO_QUERY);
-    if (xComponent.is())
-        xComponent->dispose();
+    if (mxAccessible)
+        mxAccessible->dispose();
 
     ImplDeleteItems();
 }
@@ -228,16 +227,13 @@ sal_uInt16 ValueSet::ImplGetVisibleItemCount() const
 
 void ValueSet::ImplFireAccessibleEvent( short nEventId, const Any& rOldValue, 
const Any& rNewValue )
 {
-    ValueSetAcc* pAcc = ValueSetAcc::getImplementation(mxAccessible);
-
-    if( pAcc )
-        pAcc->FireAccessibleEvent( nEventId, rOldValue, rNewValue );
+    if( mxAccessible )
+        mxAccessible->FireAccessibleEvent( nEventId, rOldValue, rNewValue );
 }
 
 bool ValueSet::ImplHasAccessibleListeners() const
 {
-    ValueSetAcc* pAcc = ValueSetAcc::getImplementation(mxAccessible);
-    return( pAcc && pAcc->HasAccessibleListeners() );
+    return mxAccessible && mxAccessible->HasAccessibleListeners();
 }
 
 IMPL_LINK(ValueSet, ImplScrollHdl, weld::ScrolledWindow&, rScrollWin, void)
@@ -265,9 +261,8 @@ void ValueSet::GetFocus()
     CustomWidgetController::GetFocus();
 
     // Tell the accessible object that we got the focus.
-    ValueSetAcc* pAcc = ValueSetAcc::getImplementation(mxAccessible);
-    if (pAcc)
-        pAcc->GetFocus();
+    if (mxAccessible)
+        mxAccessible->GetFocus();
 }
 
 void ValueSet::LoseFocus()
@@ -277,9 +272,8 @@ void ValueSet::LoseFocus()
     CustomWidgetController::LoseFocus();
 
     // Tell the accessible object that we lost the focus.
-    ValueSetAcc* pAcc = ValueSetAcc::getImplementation(mxAccessible);
-    if( pAcc )
-        pAcc->LoseFocus();
+    if( mxAccessible )
+        mxAccessible->LoseFocus();
 }
 
 void ValueSet::Resize()

Reply via email to