include/svx/AccessibleTextHelper.hxx | 6 sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx | 6 sc/source/ui/Accessibility/AccessiblePreviewCell.cxx | 6 sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx | 6 solenv/clang-format/excludelist | 2 svx/source/accessibility/AccessibleTextEventQueue.cxx | 93 +++++-------- svx/source/accessibility/AccessibleTextEventQueue.hxx | 92 ++++++------ svx/source/accessibility/AccessibleTextHelper.cxx | 6 8 files changed, 99 insertions(+), 118 deletions(-)
New commits: commit 981cd9a52418beab7b7a6b0fb23d2a0cee81a4a8 Author: Michael Weghorn <[email protected]> AuthorDate: Fri Aug 15 13:52:42 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Aug 15 17:41:56 2025 +0200 svx a11y: Return OAccessible in AccessibleTextHelper::GetAt ... instead of the abstract UNO interface XAccessible. Change-Id: I8e152f2d47946a13dd162077af13a85c90ce5209 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189685 Reviewed-by: Michael Weghorn <[email protected]> Tested-by: Jenkins diff --git a/include/svx/AccessibleTextHelper.hxx b/include/svx/AccessibleTextHelper.hxx index 451885a5736e..e28667b72838 100644 --- a/include/svx/AccessibleTextHelper.hxx +++ b/include/svx/AccessibleTextHelper.hxx @@ -33,10 +33,6 @@ namespace com::sun::star { namespace accessibility { -class XAccessible; -} -namespace accessibility -{ class XAccessibleEventListener; } namespace awt @@ -372,7 +368,7 @@ public: @attention Don't call with locked mutexes. You may hold the solar mutex, but this method acquires it anyway. */ - css::uno::Reference<css::accessibility::XAccessible> GetAt(const css::awt::Point& aPoint); + rtl::Reference<comphelper::OAccessible> GetAt(const css::awt::Point& aPoint); private: /// @dyn diff --git a/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx b/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx index 4e48a323470c..961cd71e6136 100644 --- a/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx +++ b/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx @@ -96,7 +96,7 @@ void ScAccessiblePageHeaderArea::Notify( SfxBroadcaster& rBC, const SfxHint& rHi uno::Reference< XAccessible > SAL_CALL ScAccessiblePageHeaderArea::getAccessibleAtPoint( const awt::Point& rPoint ) { - uno::Reference<XAccessible> xRet; + rtl::Reference<comphelper::OAccessible> pRet; if (containsPoint(rPoint)) { SolarMutexGuard aGuard; @@ -105,10 +105,10 @@ uno::Reference< XAccessible > SAL_CALL ScAccessiblePageHeaderArea::getAccessible if(!mpTextHelper) CreateTextHelper(); - xRet = mpTextHelper->GetAt(rPoint); + pRet = mpTextHelper->GetAt(rPoint); } - return xRet; + return pRet; } //===== XAccessibleContext ============================================== diff --git a/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx b/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx index f1a9fa76ed34..ae6122609106 100644 --- a/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx +++ b/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx @@ -89,7 +89,7 @@ void ScAccessiblePreviewCell::Notify( SfxBroadcaster& rBC, const SfxHint& rHint uno::Reference< XAccessible > SAL_CALL ScAccessiblePreviewCell::getAccessibleAtPoint( const awt::Point& rPoint ) { - uno::Reference<XAccessible> xRet; + rtl::Reference<comphelper::OAccessible> pRet; if (containsPoint(rPoint)) { SolarMutexGuard aGuard; @@ -98,10 +98,10 @@ uno::Reference< XAccessible > SAL_CALL ScAccessiblePreviewCell::getAccessibleAtP if(!mpTextHelper) CreateTextHelper(); - xRet = mpTextHelper->GetAt(rPoint); + pRet = mpTextHelper->GetAt(rPoint); } - return xRet; + return pRet; } void SAL_CALL ScAccessiblePreviewCell::grabFocus() diff --git a/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx b/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx index 2605c250c7b9..fba7b33878a5 100644 --- a/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx +++ b/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx @@ -155,7 +155,7 @@ uno::Any SAL_CALL ScAccessiblePreviewHeaderCell::getMinimumIncrement() uno::Reference< XAccessible > SAL_CALL ScAccessiblePreviewHeaderCell::getAccessibleAtPoint( const awt::Point& rPoint ) { - uno::Reference<XAccessible> xRet; + rtl::Reference<comphelper::OAccessible> pRet; if (containsPoint(rPoint)) { SolarMutexGuard aGuard; @@ -164,10 +164,10 @@ uno::Reference< XAccessible > SAL_CALL ScAccessiblePreviewHeaderCell::getAccessi if(!mxTextHelper) CreateTextHelper(); - xRet = mxTextHelper->GetAt(rPoint); + pRet = mxTextHelper->GetAt(rPoint); } - return xRet; + return pRet; } void SAL_CALL ScAccessiblePreviewHeaderCell::grabFocus() diff --git a/svx/source/accessibility/AccessibleTextHelper.cxx b/svx/source/accessibility/AccessibleTextHelper.cxx index 339331011192..f91916bcdab5 100644 --- a/svx/source/accessibility/AccessibleTextHelper.cxx +++ b/svx/source/accessibility/AccessibleTextHelper.cxx @@ -1755,18 +1755,18 @@ void AccessibleTextHelper::RemoveEventListener( const uno::Reference< XAccessibl } // XAccessibleComponent -uno::Reference< XAccessible > AccessibleTextHelper::GetAt( const awt::Point& aPoint ) +rtl::Reference<comphelper::OAccessible> AccessibleTextHelper::GetAt(const awt::Point& aPoint) { SolarMutexGuard aGuard; #ifdef DBG_UTIL mpImpl->CheckInvariants(); - uno::Reference< XAccessible > xChild = mpImpl->getAccessibleAtPoint( aPoint ); + rtl::Reference<comphelper::OAccessible> pChild = mpImpl->getAccessibleAtPoint(aPoint); mpImpl->CheckInvariants(); - return xChild; + return pChild; #else return mpImpl->getAccessibleAtPoint( aPoint ); #endif commit a902095e76b96ca849a790c2b518a2b011505bc3 Author: Michael Weghorn <[email protected]> AuthorDate: Fri Aug 15 12:38:02 2025 +0200 Commit: Michael Weghorn <[email protected]> CommitDate: Fri Aug 15 17:41:46 2025 +0200 svx a11y: clang-format AccessibleTextEventQueue This in particular gets rid of an extra level of indentation. Change-Id: I04a8c4f5ab1e15e70eea9f235681dab18b9db3cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189680 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist index 69c10ce88785..b1fa9509bd93 100644 --- a/solenv/clang-format/excludelist +++ b/solenv/clang-format/excludelist @@ -11149,8 +11149,6 @@ svx/source/accessibility/AccessibleOLEShape.cxx svx/source/accessibility/AccessibleShape.cxx svx/source/accessibility/AccessibleShapeInfo.cxx svx/source/accessibility/AccessibleShapeTreeInfo.cxx -svx/source/accessibility/AccessibleTextEventQueue.cxx -svx/source/accessibility/AccessibleTextEventQueue.hxx svx/source/accessibility/AccessibleTextHelper.cxx svx/source/accessibility/ChildrenManager.cxx svx/source/accessibility/ChildrenManagerImpl.cxx diff --git a/svx/source/accessibility/AccessibleTextEventQueue.cxx b/svx/source/accessibility/AccessibleTextEventQueue.cxx index 272f71c89d97..46b320c79b23 100644 --- a/svx/source/accessibility/AccessibleTextEventQueue.cxx +++ b/svx/source/accessibility/AccessibleTextEventQueue.cxx @@ -26,68 +26,55 @@ namespace accessibility { +// EventQueue implementation +AccessibleTextEventQueue::AccessibleTextEventQueue() {} - // EventQueue implementation +AccessibleTextEventQueue::~AccessibleTextEventQueue() { Clear(); } +void AccessibleTextEventQueue::Append(const SdrHint& rHint) +{ + // only enqueue the events we actually care about in + // AccessibleTextHelper_Impl::ProcessQueue(), because + // the cost of some events adds up. + auto eKind = rHint.GetKind(); + if (eKind == SdrHintKind::BeginEdit || eKind == SdrHintKind::EndEdit) + maEventQueue.push_back(new SdrHint(rHint)); +} + +void AccessibleTextEventQueue::Append(const TextHint& rHint) +{ + maEventQueue.push_back(new TextHint(rHint)); +} - AccessibleTextEventQueue::AccessibleTextEventQueue() - { - } - - AccessibleTextEventQueue::~AccessibleTextEventQueue() - { - Clear(); - } - - void AccessibleTextEventQueue::Append( const SdrHint& rHint ) - { - // only enqueue the events we actually care about in - // AccessibleTextHelper_Impl::ProcessQueue(), because - // the cost of some events adds up. - auto eKind = rHint.GetKind(); - if (eKind == SdrHintKind::BeginEdit - || eKind == SdrHintKind::EndEdit) - maEventQueue.push_back( new SdrHint( rHint ) ); - } - - void AccessibleTextEventQueue::Append( const TextHint& rHint ) - { - maEventQueue.push_back( new TextHint( rHint ) ); - } - - void AccessibleTextEventQueue::Append( const SvxViewChangedHint& rHint ) - { - maEventQueue.push_back( new SvxViewChangedHint( rHint ) ); - } +void AccessibleTextEventQueue::Append(const SvxViewChangedHint& rHint) +{ + maEventQueue.push_back(new SvxViewChangedHint(rHint)); +} - void AccessibleTextEventQueue::Append( const SvxEditSourceHint& rHint ) - { - maEventQueue.push_back( new SvxEditSourceHint( rHint ) ); - } +void AccessibleTextEventQueue::Append(const SvxEditSourceHint& rHint) +{ + maEventQueue.push_back(new SvxEditSourceHint(rHint)); +} - ::std::unique_ptr< SfxHint > AccessibleTextEventQueue::PopFront() - { - assert(!maEventQueue.empty()); - ::std::unique_ptr< SfxHint > aRes( *(maEventQueue.begin()) ); - maEventQueue.pop_front(); - return aRes; - } +::std::unique_ptr<SfxHint> AccessibleTextEventQueue::PopFront() +{ + assert(!maEventQueue.empty()); + ::std::unique_ptr<SfxHint> aRes(*(maEventQueue.begin())); + maEventQueue.pop_front(); + return aRes; +} - bool AccessibleTextEventQueue::IsEmpty() const - { - return maEventQueue.empty(); - } +bool AccessibleTextEventQueue::IsEmpty() const { return maEventQueue.empty(); } - void AccessibleTextEventQueue::Clear() - { - // clear queue - for( auto p : maEventQueue) - delete p; - maEventQueue.clear(); - } +void AccessibleTextEventQueue::Clear() +{ + // clear queue + for (auto p : maEventQueue) + delete p; + maEventQueue.clear(); +} } // end of namespace accessibility - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/accessibility/AccessibleTextEventQueue.hxx b/svx/source/accessibility/AccessibleTextEventQueue.hxx index b8b1a9de853a..ef02a842ae2b 100644 --- a/svx/source/accessibility/AccessibleTextEventQueue.hxx +++ b/svx/source/accessibility/AccessibleTextEventQueue.hxx @@ -32,54 +32,54 @@ class SvxEditSourceHint; namespace accessibility { - /** This class handles the notification events for the - AccessibleTextHelper class. +/** This class handles the notification events for the + AccessibleTextHelper class. - For various reasons, we cannot process EditEngine events as - they arrive, but have to queue and handle them in a batch. - */ - class AccessibleTextEventQueue + For various reasons, we cannot process EditEngine events as + they arrive, but have to queue and handle them in a batch. + */ +class AccessibleTextEventQueue +{ +public: + AccessibleTextEventQueue(); + ~AccessibleTextEventQueue(); + + /// Append event to end of queue + void Append(const SdrHint& rHint); + /// Append event to end of queue + void Append(const TextHint& rHint); + /// Append event to end of queue + void Append(const SvxViewChangedHint& rHint); + /// Append event to end of queue + void Append(const SvxEditSourceHint& rHint); + + /** Pop first queue element + + return first queue element, ownership transfers to caller + */ + ::std::unique_ptr<SfxHint> PopFront(); + + /** Apply functor to every queue member + + @param rFunctor + Functor to apply. Functor receives queue element as + parameter: void func( const SfxHint* ); + */ + template <typename Functor> void ForEach(Functor& rFunctor) const { - public: - AccessibleTextEventQueue(); - ~AccessibleTextEventQueue(); - - /// Append event to end of queue - void Append( const SdrHint& rHint ); - /// Append event to end of queue - void Append( const TextHint& rHint ); - /// Append event to end of queue - void Append( const SvxViewChangedHint& rHint ); - /// Append event to end of queue - void Append( const SvxEditSourceHint& rHint ); - - /** Pop first queue element - - return first queue element, ownership transfers to caller - */ - ::std::unique_ptr< SfxHint > PopFront(); - - /** Apply functor to every queue member - - @param rFunctor - Functor to apply. Functor receives queue element as - parameter: void func( const SfxHint* ); - */ - template < typename Functor > void ForEach( Functor& rFunctor ) const - { - // #109864# Make sure results are put back into rFunctor - rFunctor = ::std::for_each( maEventQueue.begin(), maEventQueue.end(), rFunctor ); - } - - /// Query whether queue is empty - bool IsEmpty() const; - - /// Clear event queue - void Clear(); - - private: - std::deque<SfxHint*> maEventQueue; - }; + // #109864# Make sure results are put back into rFunctor + rFunctor = ::std::for_each(maEventQueue.begin(), maEventQueue.end(), rFunctor); + } + + /// Query whether queue is empty + bool IsEmpty() const; + + /// Clear event queue + void Clear(); + +private: + std::deque<SfxHint*> maEventQueue; +}; } // end of namespace accessibility
