include/sfx2/thumbnailviewitem.hxx        |    8 ++++++--
 sfx2/source/control/thumbnailview.cxx     |   12 ++++++------
 sfx2/source/control/thumbnailviewitem.cxx |    4 ++--
 3 files changed, 14 insertions(+), 10 deletions(-)

New commits:
commit dbe8597ce4f8c503ac10836570a76a607b2ebb9c
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed Aug 30 13:42:09 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Wed Aug 30 21:33:35 2023 +0200

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

diff --git a/include/sfx2/thumbnailviewitem.hxx 
b/include/sfx2/thumbnailviewitem.hxx
index 64644b772d64..7c84b344a8a0 100644
--- a/include/sfx2/thumbnailviewitem.hxx
+++ b/include/sfx2/thumbnailviewitem.hxx
@@ -27,6 +27,7 @@
 
 namespace com::sun::star::accessibility { class XAccessible; }
 namespace drawinglayer::primitive2d { class Primitive2DContainer; }
+class ThumbnailViewItemAcc;
 
 #define THUMBNAILVIEW_ITEM_NONEITEM      0xFFFE
 
@@ -76,7 +77,7 @@ public:
     BitmapEx maPreview1;
     OUString maTitle;
     OUString maHelpText;
-    css::uno::Reference< css::accessibility::XAccessible > mxAcc;
+    rtl::Reference< ThumbnailViewItemAcc > mxAcc;
 
     bool mbPinnedDocumentHighlighted;
     BitmapEx maPinnedDocumentBitmap;
@@ -86,6 +87,9 @@ public:
 
     virtual ~ThumbnailViewItem ();
 
+    ThumbnailViewItem& operator=( ThumbnailViewItem const & ) = delete; // 
MSVC workaround
+    ThumbnailViewItem( ThumbnailViewItem const & ) = delete; // MSVC workaround
+
     bool isVisible () const { return mbVisible; }
 
     void show (bool bVisible);
@@ -115,7 +119,7 @@ public:
 
     void setTitle (const OUString& rTitle);
 
-    css::uno::Reference< css::accessibility::XAccessible > const &
+    rtl::Reference< ThumbnailViewItemAcc > const &
                         GetAccessible( bool bIsTransientChildrenDisabled );
 
     void setDrawArea (const tools::Rectangle &area);
diff --git a/sfx2/source/control/thumbnailview.cxx 
b/sfx2/source/control/thumbnailview.cxx
index ca839162f0a2..12bfcb327143 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -294,7 +294,7 @@ void ThumbnailView::ImplDeleteItems()
         {
             css::uno::Any aOldAny, aNewAny;
 
-            aOldAny <<= pItem->GetAccessible( false );
+            aOldAny <<= 
css::uno::Reference<css::accessibility::XAccessible>(pItem->GetAccessible( 
false ));
             ImplFireAccessibleEvent( 
css::accessibility::AccessibleEventId::CHILD, aOldAny, aNewAny );
         }
 
@@ -438,7 +438,7 @@ void ThumbnailView::CalculateItemPositions(bool 
bScrollBarUsed)
                 {
                     css::uno::Any aOldAny, aNewAny;
 
-                    aNewAny <<= pItem->GetAccessible( false );
+                    aNewAny <<= 
css::uno::Reference<css::accessibility::XAccessible>(pItem->GetAccessible( 
false ));
                     ImplFireAccessibleEvent( 
css::accessibility::AccessibleEventId::CHILD, aOldAny, aNewAny );
                 }
 
@@ -466,7 +466,7 @@ void ThumbnailView::CalculateItemPositions(bool 
bScrollBarUsed)
                 {
                     css::uno::Any aOldAny, aNewAny;
 
-                    aOldAny <<= pItem->GetAccessible( false );
+                    aOldAny <<= 
css::uno::Reference<css::accessibility::XAccessible>(pItem->GetAccessible( 
false ));
                     ImplFireAccessibleEvent( 
css::accessibility::AccessibleEventId::CHILD, aOldAny, aNewAny );
                 }
 
@@ -1124,12 +1124,12 @@ void ThumbnailView::SelectItem( sal_uInt16 nItemId )
         return;
 
     // focus event (select)
-    ThumbnailViewItemAcc* pItemAcc = ThumbnailViewItemAcc::getImplementation( 
pItem->GetAccessible( false ) );
+    const rtl::Reference<ThumbnailViewItemAcc> & pItemAcc = 
pItem->GetAccessible( false );
 
     if( pItemAcc )
     {
         css::uno::Any aOldAny, aNewAny;
-        aNewAny <<= css::uno::Reference(getXWeak( pItemAcc ));
+        aNewAny <<= css::uno::Reference<css::accessibility::XAccessible>( 
pItemAcc );
         ImplFireAccessibleEvent( 
css::accessibility::AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldAny, 
aNewAny );
     }
 
@@ -1207,7 +1207,7 @@ void ThumbnailView::filterItems(const std::function<bool 
(const ThumbnailViewIte
                 {
                     css::uno::Any aOldAny, aNewAny;
 
-                    aOldAny <<= pItem->GetAccessible( false );
+                    aOldAny <<= 
css::uno::Reference<css::accessibility::XAccessible>(pItem->GetAccessible( 
false ));
                     ImplFireAccessibleEvent( 
css::accessibility::AccessibleEventId::CHILD, aOldAny, aNewAny );
                 }
 
diff --git a/sfx2/source/control/thumbnailviewitem.cxx 
b/sfx2/source/control/thumbnailviewitem.cxx
index ca8920acafd2..9579889e7e9a 100644
--- a/sfx2/source/control/thumbnailviewitem.cxx
+++ b/sfx2/source/control/thumbnailviewitem.cxx
@@ -67,7 +67,7 @@ ThumbnailViewItem::~ThumbnailViewItem()
 {
     if( mxAcc.is() )
     {
-        static_cast< ThumbnailViewItemAcc* >( mxAcc.get() )->ParentDestroyed();
+        mxAcc->ParentDestroyed();
     }
 }
 
@@ -129,7 +129,7 @@ void ThumbnailViewItem::setTitle (const OUString& rTitle)
         maTitle = rTitle;
 }
 
-uno::Reference< accessibility::XAccessible > const & 
ThumbnailViewItem::GetAccessible( bool bIsTransientChildrenDisabled )
+const rtl::Reference< ThumbnailViewItemAcc > & 
ThumbnailViewItem::GetAccessible( bool bIsTransientChildrenDisabled )
 {
     if( !mxAcc.is() )
         mxAcc = new ThumbnailViewItemAcc( this, bIsTransientChildrenDisabled );

Reply via email to