sw/source/core/access/acccell.cxx        |   45 ----------------
 sw/source/core/access/acccell.hxx        |   27 +--------
 sw/source/core/access/accdoc.cxx         |   36 -------------
 sw/source/core/access/accdoc.hxx         |   26 +--------
 sw/source/core/access/accnotextframe.cxx |   30 ----------
 sw/source/core/access/accnotextframe.hxx |   23 +-------
 sw/source/core/access/accpara.cxx        |   85 -------------------------------
 sw/source/core/access/accpara.hxx        |   38 +++----------
 sw/source/core/access/acctable.cxx       |   48 -----------------
 sw/source/core/access/acctable.hxx       |   33 +-----------
 ucb/source/core/provprox.cxx             |   42 +--------------
 ucb/source/core/provprox.hxx             |   19 +-----
 12 files changed, 42 insertions(+), 410 deletions(-)

New commits:
commit 045a98c9ee0a0b9f1366064f3e57bdce977cb056
Author:     Mike Kaganski <[email protected]>
AuthorDate: Sun Dec 8 21:07:07 2024 +0500
Commit:     Mike Kaganski <[email protected]>
CommitDate: Sun Dec 8 20:19:47 2024 +0100

    Simplify SwAccessible*
    
    Change-Id: I2994161bfa8fa3a88b3e66a9f4f12e4de6d5b025
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178096
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>

diff --git a/sw/source/core/access/acccell.cxx 
b/sw/source/core/access/acccell.cxx
index fe58dfc07e43..2ce7b0302ea7 100644
--- a/sw/source/core/access/acccell.cxx
+++ b/sw/source/core/access/acccell.cxx
@@ -98,7 +98,7 @@ void SwAccessibleCell::GetStates( sal_Int64& rStateSet )
 
 SwAccessibleCell::SwAccessibleCell(std::shared_ptr<SwAccessibleMap> const& 
pInitMap,
                                     const SwCellFrame *pCellFrame )
-    : SwAccessibleContext( pInitMap, AccessibleRole::TABLE_CELL, pCellFrame )
+    : SwAccessibleCell_BASE(pInitMap, AccessibleRole::TABLE_CELL, pCellFrame)
     , m_aSelectionHelper( *this )
     , m_bIsSelected( false )
 {
@@ -271,49 +271,6 @@ void SwAccessibleCell::InvalidatePosOrSize( const SwRect& 
rOldBox )
     SwAccessibleContext::InvalidatePosOrSize( rOldBox );
 }
 
-// XAccessibleInterface
-
-uno::Any SwAccessibleCell::queryInterface( const uno::Type& rType )
-{
-    if (rType == cppu::UnoType<XAccessibleExtendedAttributes>::get())
-    {
-        uno::Any aR;
-        aR <<= uno::Reference<XAccessibleExtendedAttributes>(this);
-        return aR;
-    }
-
-    if (rType == cppu::UnoType<XAccessibleSelection>::get())
-    {
-        uno::Any aR;
-        aR <<= uno::Reference<XAccessibleSelection>(this);
-        return aR;
-    }
-    if ( rType == ::cppu::UnoType<XAccessibleValue>::get() )
-    {
-        uno::Reference<XAccessibleValue> xValue = this;
-        uno::Any aRet;
-        aRet <<= xValue;
-        return aRet;
-    }
-    else
-    {
-        return SwAccessibleContext::queryInterface( rType );
-    }
-}
-
-// XTypeProvider
-uno::Sequence< uno::Type > SAL_CALL SwAccessibleCell::getTypes()
-{
-    return cppu::OTypeCollection(
-        ::cppu::UnoType<XAccessibleValue>::get(),
-        SwAccessibleContext::getTypes() ).getTypes();
-}
-
-uno::Sequence< sal_Int8 > SAL_CALL SwAccessibleCell::getImplementationId()
-{
-    return css::uno::Sequence<sal_Int8>();
-}
-
 // XAccessibleValue
 
 SwFrameFormat* SwAccessibleCell::GetTableBoxFormat() const
diff --git a/sw/source/core/access/acccell.hxx 
b/sw/source/core/access/acccell.hxx
index 5d607d4c4531..3b5b503fd029 100644
--- a/sw/source/core/access/acccell.hxx
+++ b/sw/source/core/access/acccell.hxx
@@ -27,10 +27,11 @@ class SwCellFrame;
 class SwAccessibleTable;
 class SwFrameFormat;
 
-class SwAccessibleCell : public SwAccessibleContext,
-                  public css::accessibility::XAccessibleValue,
-                  public css::accessibility::XAccessibleSelection,
-                  public  css::accessibility::XAccessibleExtendedAttributes
+using SwAccessibleCell_BASE = cppu::ImplInheritanceHelper<SwAccessibleContext,
+                                                          
css::accessibility::XAccessibleValue,
+                                                          
css::accessibility::XAccessibleSelection,
+                                                          
css::accessibility::XAccessibleExtendedAttributes>;
+class SwAccessibleCell : public SwAccessibleCell_BASE
 {
     // Implementation for XAccessibleSelection interface
     SwAccessibleSelectionHelper m_aSelectionHelper;
@@ -83,24 +84,6 @@ public:
 
     virtual void InvalidatePosOrSize( const SwRect& rFrame ) override;
 
-    // XInterface
-
-    // (XInterface methods need to be implemented to disambiguate
-    // between those inherited through SwAccessibleContext and
-    // XAccessibleValue).
-
-    virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType 
) override;
-
-    virtual void SAL_CALL acquire(  ) noexcept override
-        { SwAccessibleContext::acquire(); };
-
-    virtual void SAL_CALL release(  ) noexcept override
-        { SwAccessibleContext::release(); };
-
-    // XTypeProvider
-    virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes(  ) 
override;
-    virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId(  ) 
override;
-
     // XAccessibleExtendedAttributes
     css::uno::Any SAL_CALL getExtendedAttributes() override ;
 private:
diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx
index e2d4bea133e0..30c2a500cad9 100644
--- a/sw/source/core/access/accdoc.cxx
+++ b/sw/source/core/access/accdoc.cxx
@@ -346,7 +346,7 @@ void SwAccessibleDocument::GetStates( sal_Int64& rStateSet )
 
 SwAccessibleDocument::SwAccessibleDocument(
         std::shared_ptr<SwAccessibleMap> const& pInitMap)
-    : SwAccessibleDocumentBase(pInitMap)
+    : SwAccessibleDocument_BASE(pInitMap)
     , maSelectionHelper(*this)
 {
     SetName(pInitMap->GetDocName());
@@ -433,40 +433,6 @@ uno::Sequence< OUString > SAL_CALL 
SwAccessibleDocument::getSupportedServiceName
     return { sServiceName, sAccessibleServiceName };
 }
 
-// XInterface
-
-uno::Any SwAccessibleDocument::queryInterface(
-    const uno::Type& rType )
-{
-    uno::Any aRet;
-    if ( rType == cppu::UnoType<XAccessibleSelection>::get() )
-    {
-        uno::Reference<XAccessibleSelection> aSelect = this;
-        aRet <<= aSelect;
-    }
-    else  if ( rType == cppu::UnoType<XAccessibleExtendedAttributes>::get())
-    {
-        uno::Reference<XAccessibleExtendedAttributes> aAttribute = this;
-        aRet <<= aAttribute;
-    }
-    else
-        aRet = SwAccessibleContext::queryInterface( rType );
-    return aRet;
-}
-
-// XTypeProvider
-uno::Sequence< uno::Type > SAL_CALL SwAccessibleDocument::getTypes()
-{
-    return cppu::OTypeCollection(
-            cppu::UnoType<XAccessibleSelection>::get(),
-            SwAccessibleDocumentBase::getTypes() ).getTypes();
-}
-
-uno::Sequence< sal_Int8 > SAL_CALL SwAccessibleDocument::getImplementationId()
-{
-    return css::uno::Sequence<sal_Int8>();
-}
-
 // XAccessibleSelection
 
 void SwAccessibleDocument::selectAccessibleChild(
diff --git a/sw/source/core/access/accdoc.hxx b/sw/source/core/access/accdoc.hxx
index 735dc822cd81..e2012558382c 100644
--- a/sw/source/core/access/accdoc.hxx
+++ b/sw/source/core/access/accdoc.hxx
@@ -86,12 +86,13 @@ public:
     virtual css::awt::Size SAL_CALL getSize() override;
 };
 
+using SwAccessibleDocument_BASE = 
cppu::ImplInheritanceHelper<SwAccessibleDocumentBase,
+                                                              
css::accessibility::XAccessibleSelection,
+                                                              
css::accessibility::XAccessibleExtendedAttributes>;
 /**
  * access to an accessible Writer document
  */
-class SwAccessibleDocument : public SwAccessibleDocumentBase,
-                             public css::accessibility::XAccessibleSelection,
-                             public 
css::accessibility::XAccessibleExtendedAttributes
+class SwAccessibleDocument : public SwAccessibleDocument_BASE
 {
     // Implementation for XAccessibleSelection interface
     SwAccessibleSelectionHelper maSelectionHelper;
@@ -123,25 +124,6 @@ public:
     virtual css::uno::Sequence< OUString> SAL_CALL
         getSupportedServiceNames() override;
 
-    // XInterface
-
-    // XInterface is inherited through SwAccessibleContext and
-    // XAccessibleSelection. These methods are needed to avoid
-    // ambiguities.
-
-    virtual css::uno::Any SAL_CALL queryInterface(
-        const css::uno::Type& aType ) override;
-
-    virtual void SAL_CALL acquire(  ) noexcept override
-        { SwAccessibleContext::acquire(); };
-
-    virtual void SAL_CALL release(  ) noexcept override
-        { SwAccessibleContext::release(); };
-
-    // XTypeProvider
-    virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes(  ) 
override;
-    virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId(  ) 
override;
-
     // XAccessibleSelection
 
     virtual void SAL_CALL selectAccessibleChild(
diff --git a/sw/source/core/access/accnotextframe.cxx 
b/sw/source/core/access/accnotextframe.cxx
index d3f7c38bae77..0191da39aa18 100644
--- a/sw/source/core/access/accnotextframe.cxx
+++ b/sw/source/core/access/accnotextframe.cxx
@@ -58,7 +58,7 @@ SwAccessibleNoTextFrame::SwAccessibleNoTextFrame(
         std::shared_ptr<SwAccessibleMap> const& pInitMap,
         sal_Int16 nInitRole,
         const SwFlyFrame* pFlyFrame  ) :
-    SwAccessibleFrameBase( pInitMap, nInitRole, pFlyFrame )
+    SwAccessibleNoTextFrame_BASE( pInitMap, nInitRole, pFlyFrame )
 {
     const SwNoTextNode* pNd = GetNoTextNode();
     // #i73249#
@@ -157,34 +157,6 @@ OUString SAL_CALL 
SwAccessibleNoTextFrame::getAccessibleDescription()
     return msDesc;
 }
 
-// XInterface
-
-uno::Any SAL_CALL SwAccessibleNoTextFrame::queryInterface( const uno::Type& 
aType )
-{
-    if( aType ==
-        ::cppu::UnoType<XAccessibleImage>::get() )
-    {
-        uno::Reference<XAccessibleImage> xImage = this;
-        return uno::Any(xImage);
-    }
-    else if ( aType == cppu::UnoType<XAccessibleHypertext>::get())
-    {
-        uno::Reference<XAccessibleHypertext> aAccHypertext = this;
-        return uno::Any( aAccHypertext );
-    }
-    else
-        return SwAccessibleContext::queryInterface( aType );
-}
-
-// XTypeProvider
-
-uno::Sequence< uno::Type > SAL_CALL SwAccessibleNoTextFrame::getTypes()
-{
-    return cppu::OTypeCollection(
-        ::cppu::UnoType<XAccessibleImage>::get(),
-        SwAccessibleFrameBase::getTypes() ).getTypes();
-}
-
 /// XAccessibleImage
 /** implementation of the XAccessibleImage methods is a no-brainer, as
     all relevant information is already accessible through other
diff --git a/sw/source/core/access/accnotextframe.hxx 
b/sw/source/core/access/accnotextframe.hxx
index 4383c8df7bfd..4b01d1f5d008 100644
--- a/sw/source/core/access/accnotextframe.hxx
+++ b/sw/source/core/access/accnotextframe.hxx
@@ -29,9 +29,10 @@ class SwFlyFrame;
 class SwNoTextNode;
 class SwAccessibleNoTextHyperlink;
 
-class SwAccessibleNoTextFrame : public  SwAccessibleFrameBase,
-                                public css::accessibility::XAccessibleImage,
-                                public 
css::accessibility::XAccessibleHypertext//Added by yangzhh for HyperLink
+using SwAccessibleNoTextFrame_BASE = 
cppu::ImplInheritanceHelper<SwAccessibleFrameBase,
+                                                                 
css::accessibility::XAccessibleImage,
+                                                                 
css::accessibility::XAccessibleHypertext>;
+class SwAccessibleNoTextFrame : public SwAccessibleNoTextFrame_BASE
 {
     friend class SwAccessibleNoTextHyperlink;
     rtl::Reference< SwAccessibleNoTextHyperlink > m_xHyperlink;
@@ -60,22 +61,6 @@ public:
     virtual OUString SAL_CALL
         getAccessibleDescription() override;
 
-    // XInterface methods need to be implemented to disambiguate
-    // between those inherited through SwAccessibleContext and
-    // XAccessibleImage.
-
-    virtual css::uno::Any SAL_CALL queryInterface(
-        const css::uno::Type& aType ) override;
-
-    virtual void SAL_CALL acquire(  ) noexcept override
-        { SwAccessibleContext::acquire(); };
-
-    virtual void SAL_CALL release(  ) noexcept override
-        { SwAccessibleContext::release(); };
-
-    // XTypeProvider
-    virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes(  ) 
override;
-
     // XAccessibleImage
     virtual OUString SAL_CALL
         getAccessibleImageDescription(  ) override;
diff --git a/sw/source/core/access/accpara.cxx 
b/sw/source/core/access/accpara.cxx
index b41583a78a38..b07ba95b6822 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -403,7 +403,7 @@ void SwAccessibleParagraph::InvalidateFocus_()
 SwAccessibleParagraph::SwAccessibleParagraph(
         std::shared_ptr<SwAccessibleMap> const& pInitMap,
         const SwTextFrame& rTextFrame )
-    : SwAccessibleContext( pInitMap, AccessibleRole::PARAGRAPH, &rTextFrame )
+    : SwAccessibleParagraph_BASE(pInitMap, AccessibleRole::PARAGRAPH, 
&rTextFrame)
     , m_nOldCaretPos( -1 )
     , m_bIsBlockQuote(false)
     , m_bIsHeading( false )
@@ -931,89 +931,6 @@ static uno::Sequence< OUString > const & 
getSupplementalAttributeNames()
     return aNames;
 }
 
-// XInterface
-
-uno::Any SwAccessibleParagraph::queryInterface( const uno::Type& rType )
-{
-    uno::Any aRet;
-    if ( rType == cppu::UnoType<XAccessibleText>::get())
-    {
-        uno::Reference<XAccessibleText> aAccText = static_cast<XAccessibleText 
*>(*this); // resolve ambiguity
-        aRet <<= aAccText;
-    }
-    else if ( rType == cppu::UnoType<XAccessibleEditableText>::get())
-    {
-        uno::Reference<XAccessibleEditableText> aAccEditText = this;
-        aRet <<= aAccEditText;
-    }
-    else if ( rType == cppu::UnoType<XAccessibleSelection>::get())
-    {
-        uno::Reference<XAccessibleSelection> aAccSel = this;
-        aRet <<= aAccSel;
-    }
-    else if ( rType == cppu::UnoType<XAccessibleHypertext>::get())
-    {
-        uno::Reference<XAccessibleHypertext> aAccHyp = this;
-        aRet <<= aAccHyp;
-    }
-    // #i63870#
-    // add interface com::sun:star:accessibility::XAccessibleTextAttributes
-    else if ( rType == cppu::UnoType<XAccessibleTextAttributes>::get())
-    {
-        uno::Reference<XAccessibleTextAttributes> aAccTextAttr = this;
-        aRet <<= aAccTextAttr;
-    }
-    // #i89175#
-    // add interface com::sun:star:accessibility::XAccessibleTextMarkup
-    else if ( rType == cppu::UnoType<XAccessibleTextMarkup>::get())
-    {
-        uno::Reference<XAccessibleTextMarkup> aAccTextMarkup = this;
-        aRet <<= aAccTextMarkup;
-    }
-    // add interface com::sun:star:accessibility::XAccessibleMultiLineText
-    else if ( rType == cppu::UnoType<XAccessibleMultiLineText>::get())
-    {
-        uno::Reference<XAccessibleMultiLineText> aAccMultiLineText = this;
-        aRet <<= aAccMultiLineText;
-    }
-    else if ( rType == cppu::UnoType<XAccessibleTextSelection>::get())
-    {
-        uno::Reference< css::accessibility::XAccessibleTextSelection > 
aTextExtension = this;
-        aRet <<= aTextExtension;
-    }
-    else if ( rType == cppu::UnoType<XAccessibleExtendedAttributes>::get())
-    {
-        uno::Reference<XAccessibleExtendedAttributes> xAttr = this;
-        aRet <<= xAttr;
-    }
-    else
-    {
-        aRet = SwAccessibleContext::queryInterface(rType);
-    }
-
-    return aRet;
-}
-
-// XTypeProvider
-uno::Sequence< uno::Type > SAL_CALL SwAccessibleParagraph::getTypes()
-{
-    // #i63870# - add type accessibility::XAccessibleTextAttributes
-    // #i89175# - add type accessibility::XAccessibleTextMarkup and
-    return cppu::OTypeCollection(
-            cppu::UnoType<XAccessibleEditableText>::get(),
-            cppu::UnoType<XAccessibleTextAttributes>::get(),
-            ::cppu::UnoType<XAccessibleSelection>::get(),
-            cppu::UnoType<XAccessibleTextMarkup>::get(),
-            cppu::UnoType<XAccessibleMultiLineText>::get(),
-            cppu::UnoType<XAccessibleHypertext>::get(),
-            SwAccessibleContext::getTypes() ).getTypes();
-}
-
-uno::Sequence< sal_Int8 > SAL_CALL SwAccessibleParagraph::getImplementationId()
-{
-    return css::uno::Sequence<sal_Int8>();
-}
-
 // XAccessibleText
 
 sal_Int32 SwAccessibleParagraph::getCaretPosition()
diff --git a/sw/source/core/access/accpara.hxx 
b/sw/source/core/access/accpara.hxx
index 357c4f17c77d..6cef4039e915 100644
--- a/sw/source/core/access/accpara.hxx
+++ b/sw/source/core/access/accpara.hxx
@@ -50,17 +50,18 @@ namespace com::sun::star {
 typedef std::unordered_map< OUString,
                          css::beans::PropertyValue > tAccParaPropValMap;
 
+using SwAccessibleParagraph_BASE = 
cppu::ImplInheritanceHelper<SwAccessibleContext,
+                                                               
css::accessibility::XAccessibleEditableText,
+                                                               
css::accessibility::XAccessibleSelection,
+                                                               
css::accessibility::XAccessibleHypertext,
+                                                               
css::accessibility::XAccessibleTextMarkup,
+                                                               
css::accessibility::XAccessibleMultiLineText,
+                                                               
css::accessibility::XAccessibleTextAttributes,
+                                                               
css::accessibility::XAccessibleTextSelection,
+                                                               
css::accessibility::XAccessibleExtendedAttributes>;
 class SwAccessibleParagraph :
         public SfxListener,
-        public SwAccessibleContext,
-        public css::accessibility::XAccessibleEditableText,
-        public css::accessibility::XAccessibleSelection,
-        public css::accessibility::XAccessibleHypertext,
-        public css::accessibility::XAccessibleTextMarkup,
-        public css::accessibility::XAccessibleMultiLineText,
-        public css::accessibility::XAccessibleTextAttributes,
-        public css::accessibility::XAccessibleTextSelection,
-        public css::accessibility::XAccessibleExtendedAttributes
+        public SwAccessibleParagraph_BASE
 {
     friend class SwAccessibleHyperlink;
 
@@ -279,25 +280,6 @@ public:
     virtual css::uno::Sequence< OUString> SAL_CALL
         getSupportedServiceNames() override;
 
-    // XInterface
-
-    // (XInterface methods need to be implemented to disambiguate
-    // between those inherited through SwAccessibleContext and
-    // XAccessibleEditableText).
-
-    virtual css::uno::Any SAL_CALL queryInterface(
-        const css::uno::Type& aType ) override;
-
-    virtual void SAL_CALL acquire(  ) noexcept override
-        { SwAccessibleContext::acquire(); };
-
-    virtual void SAL_CALL release(  ) noexcept override
-        { SwAccessibleContext::release(); };
-
-    // XTypeProvider
-    virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes(  ) 
override;
-    virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId(  ) 
override;
-
     // XAccessibleText
     virtual sal_Int32 SAL_CALL getCaretPosition() override;
     virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override;
diff --git a/sw/source/core/access/acctable.cxx 
b/sw/source/core/access/acctable.cxx
index dfd78370847b..360241005559 100644
--- a/sw/source/core/access/acctable.cxx
+++ b/sw/source/core/access/acctable.cxx
@@ -608,7 +608,7 @@ void SwAccessibleTable::GetStates( sal_Int64& rStateSet )
 SwAccessibleTable::SwAccessibleTable(
         std::shared_ptr<SwAccessibleMap> const& pInitMap,
         const SwTabFrame* pTabFrame  ) :
-    SwAccessibleContext( pInitMap, AccessibleRole::TABLE, pTabFrame )
+    SwAccessibleTable_BASE( pInitMap, AccessibleRole::TABLE, pTabFrame )
 {
     const SwFrameFormat* pFrameFormat = pTabFrame->GetFormat();
     StartListening(const_cast<SwFrameFormat*>(pFrameFormat)->GetNotifier());
@@ -667,46 +667,6 @@ void SwAccessibleTable::Notify(const SfxHint& rHint)
     }
 }
 
-uno::Any SwAccessibleTable::queryInterface( const uno::Type& rType )
-{
-    uno::Any aRet;
-    if ( rType == cppu::UnoType<XAccessibleTable>::get() )
-    {
-        uno::Reference<XAccessibleTable> xThis( this );
-        aRet <<= xThis;
-    }
-    else if ( rType == cppu::UnoType<XAccessibleSelection>::get() )
-    {
-        uno::Reference<XAccessibleSelection> xSelection( this );
-        aRet <<= xSelection;
-    }
-    else if ( rType == cppu::UnoType<XAccessibleTableSelection>::get() )
-    {
-        uno::Reference<XAccessibleTableSelection> xTableExtent( this );
-        aRet <<= xTableExtent;
-    }
-    else
-    {
-        aRet = SwAccessibleContext::queryInterface(rType);
-    }
-
-    return aRet;
-}
-
-// XTypeProvider
-uno::Sequence< uno::Type > SAL_CALL SwAccessibleTable::getTypes()
-{
-    return cppu::OTypeCollection(
-        cppu::UnoType<XAccessibleSelection>::get(),
-        cppu::UnoType<XAccessibleTable>::get(),
-        SwAccessibleContext::getTypes() ).getTypes();
-}
-
-uno::Sequence< sal_Int8 > SAL_CALL SwAccessibleTable::getImplementationId()
-{
-    return css::uno::Sequence<sal_Int8>();
-}
-
 // #i77106#
 std::unique_ptr<SwAccessibleTableData_Impl> 
SwAccessibleTable::CreateNewTableData()
 {
@@ -1647,12 +1607,6 @@ void SwAccessibleTableColHeaders::Notify(const SfxHint& )
 {
 }
 
-// XInterface
-uno::Any SAL_CALL SwAccessibleTableColHeaders::queryInterface( const 
uno::Type& aType )
-{
-    return SwAccessibleTable::queryInterface( aType );
-}
-
 // XAccessibleContext
 sal_Int64 SAL_CALL SwAccessibleTableColHeaders::getAccessibleChildCount()
 {
diff --git a/sw/source/core/access/acctable.hxx 
b/sw/source/core/access/acctable.hxx
index 9996ffa33b0d..dd835d85b1c6 100644
--- a/sw/source/core/access/acctable.hxx
+++ b/sw/source/core/access/acctable.hxx
@@ -38,11 +38,12 @@ namespace sw::access {
     class SwAccessibleChild;
 }
 
+using SwAccessibleTable_BASE = cppu::ImplInheritanceHelper<SwAccessibleContext,
+                                                           
css::accessibility::XAccessibleTable,
+                                                           
css::accessibility::XAccessibleSelection,
+                                                           
css::accessibility::XAccessibleTableSelection>;
 class SwAccessibleTable :
-        public SwAccessibleContext,
-        public css::accessibility::XAccessibleTable,
-        public css::accessibility::XAccessibleSelection,
-        public css::accessibility::XAccessibleTableSelection,
+        public SwAccessibleTable_BASE,
         public SvtListener
 {
     std::unique_ptr<SwAccessibleTableData_Impl> mpTableData;    // the table's 
data, protected by SolarMutex
@@ -95,25 +96,6 @@ public:
     SwAccessibleTable(std::shared_ptr<SwAccessibleMap> const& pInitMap,
                       const SwTabFrame* pTableFrame);
 
-    // XInterface
-
-    // (XInterface methods need to be implemented to disambiguate
-    // between those inherited through SwAccessibleContext and
-    // XAccessibleTable).
-
-    virtual css::uno::Any SAL_CALL queryInterface(
-        const css::uno::Type& aType ) override;
-
-    virtual void SAL_CALL acquire(  ) noexcept override
-        { SwAccessibleContext::acquire(); };
-
-    virtual void SAL_CALL release(  ) noexcept override
-        { SwAccessibleContext::release(); };
-
-    // XTypeProvider
-    virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes(  ) 
override;
-    virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId(  ) 
override;
-
     // XAccessibleContext
 
     /// Return this object's description.
@@ -244,11 +226,6 @@ public:
     SwAccessibleTableColHeaders(std::shared_ptr<SwAccessibleMap> const& pMap,
                                 const SwTabFrame *pTabFrame);
 
-    // XInterface
-
-    virtual css::uno::Any SAL_CALL queryInterface(
-        const css::uno::Type& aType ) override;
-
     // XAccessibleContext
 
     /// Return the number of currently visible children.
commit 76cf7c6fc071c76675fef80bf55be473efef6296
Author:     Mike Kaganski <[email protected]>
AuthorDate: Sun Dec 8 21:43:14 2024 +0500
Commit:     Mike Kaganski <[email protected]>
CommitDate: Sun Dec 8 20:19:34 2024 +0100

    Simplify UcbContentProviderProxy
    
    Change-Id: I7366e31dc167707adf2c614049cee852e44d7ac1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178097
    Reviewed-by: Mike Kaganski <[email protected]>
    Tested-by: Jenkins

diff --git a/ucb/source/core/provprox.cxx b/ucb/source/core/provprox.cxx
index 54ba56b33165..863e3c1469b1 100644
--- a/ucb/source/core/provprox.cxx
+++ b/ucb/source/core/provprox.cxx
@@ -108,31 +108,12 @@ UcbContentProviderProxy::~UcbContentProviderProxy()
 
 
 // XInterface methods.
-void SAL_CALL UcbContentProviderProxy::acquire()
-    noexcept
-{
-    OWeakObject::acquire();
-}
-
-void SAL_CALL UcbContentProviderProxy::release()
-    noexcept
-{
-    OWeakObject::release();
-}
 
 // virtual
 Any SAL_CALL
 UcbContentProviderProxy::queryInterface( const Type & rType )
 {
-    Any aRet = cppu::queryInterface( rType,
-                static_cast< XTypeProvider * >( this ),
-                static_cast< XServiceInfo * >( this ),
-                static_cast< XContentProvider * >( this ),
-                static_cast< XParameterizedContentProvider * >( this ),
-                static_cast< XContentProviderSupplier * >( this ) );
-
-    if ( !aRet.hasValue() )
-        aRet = OWeakObject::queryInterface( rType );
+    Any aRet = UcbContentProviderProxy_BASE::queryInterface(rType);
 
     if ( !aRet.hasValue() )
     {
@@ -148,28 +129,13 @@ UcbContentProviderProxy::queryInterface( const Type & 
rType )
 
 // XTypeProvider methods.
 
-
-XTYPEPROVIDER_COMMON_IMPL( UcbContentProviderProxy );
-
-
 Sequence< Type > SAL_CALL UcbContentProviderProxy::getTypes()
 {
     // Get original provider and forward the call...
-    Reference< XTypeProvider > xProvider( getContentProvider(), UNO_QUERY );
-    if ( xProvider.is() )
-    {
+    if (Reference<XTypeProvider> xProvider{ getContentProvider(), UNO_QUERY })
         return xProvider->getTypes();
-    }
-    else
-    {
-        static cppu::OTypeCollection s_aCollection(
-            CPPU_TYPE_REF( XTypeProvider ),
-            CPPU_TYPE_REF( XServiceInfo ),
-            CPPU_TYPE_REF( XContentProvider ),
-            CPPU_TYPE_REF( XParameterizedContentProvider ),
-            CPPU_TYPE_REF( XContentProviderSupplier ) );
-        return s_aCollection.getTypes();
-    }
+
+    return UcbContentProviderProxy_BASE::getTypes();
 }
 
 
diff --git a/ucb/source/core/provprox.hxx b/ucb/source/core/provprox.hxx
index 746c9b63d801..a5486a48f81e 100644
--- a/ucb/source/core/provprox.hxx
+++ b/ucb/source/core/provprox.hxx
@@ -55,16 +55,12 @@ public:
 
 
 
-
-class UcbContentProviderProxy :
-                public cppu::OWeakObject,
-                public css::lang::XTypeProvider,
-                public css::lang::XServiceInfo,
-                public css::ucb::XContentProviderSupplier,
-                public css::ucb::XContentProvider,
-                public css::ucb::XParameterizedContentProvider
+using UcbContentProviderProxy_BASE = 
comphelper::WeakImplHelper<css::lang::XServiceInfo,
+                                                                
css::ucb::XContentProviderSupplier,
+                                                                
css::ucb::XContentProvider,
+                                                                
css::ucb::XParameterizedContentProvider>;
+class UcbContentProviderProxy : public UcbContentProviderProxy_BASE
 {
-    std::mutex    m_aMutex;
     OUString m_aService;
     OUString m_aTemplate;
     OUString m_aArguments;
@@ -86,13 +82,8 @@ public:
 
     // XInterface
     virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & 
rType ) override;
-    virtual void SAL_CALL acquire()
-        noexcept override;
-    virtual void SAL_CALL release()
-        noexcept override;
 
     // XTypeProvider
-    virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() 
override;
     virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override;
 
     // XServiceInfo

Reply via email to