svx/source/dialog/frmsel.cxx  |   68 ++++++++++++++++++++++--------------------
 svx/source/inc/frmselimpl.hxx |    4 --
 2 files changed, 37 insertions(+), 35 deletions(-)

New commits:
commit ebe4204fe6f626ff1b684122fa55d14f54f32493
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Thu Jul 3 13:28:58 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Jul 4 06:36:17 2025 +0200

    svx a11y: Use range-based for in FrameSelector::GetChildAccessible
    
    Switch from the custom FrameBorderCIter to a range-based
    for loop and return the child right from the loop if one is
    found.
    
    Change-Id: I9c6f02e799922d1aaddc19b21d3361a549976b99
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187320
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx
index 8e21a06e8c72..16cc40c3c838 100644
--- a/svx/source/dialog/frmsel.cxx
+++ b/svx/source/dialog/frmsel.cxx
@@ -1072,11 +1072,17 @@ Reference< XAccessible > 
FrameSelector::GetChildAccessible( sal_Int32 nIndex )
 
 Reference< XAccessible > FrameSelector::GetChildAccessible( const Point& rPos )
 {
-    Reference< XAccessible > xRet;
-    for( FrameBorderCIter aIt( mxImpl->maEnabBorders ); !xRet.is() && 
aIt.Is(); ++aIt )
-        if( (*aIt)->ContainsClickPoint( rPos ) )
-            xRet = GetChildAccessible( (*aIt)->GetType() ).get();
-    return xRet;
+    for (const FrameBorder* pBorder : mxImpl->maEnabBorders)
+    {
+        if (pBorder->ContainsClickPoint(rPos))
+        {
+            rtl::Reference<a11y::AccFrameSelectorChild> pChild = 
GetChildAccessible(pBorder->GetType());
+            if (pChild.is())
+                return pChild;
+        }
+    }
+
+    return {};
 }
 
 tools::Rectangle FrameSelector::GetClickBoundRect( FrameBorderType eBorder ) 
const
commit 81fad59c2d2cc6d0c6df921b2507bb4dc430869b
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Thu Jul 3 13:16:44 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Jul 4 06:36:11 2025 +0200

    svx: Drop FrameBorderIter, use range-based for instead
    
    While some of the other FrameBorderIterBase instantiations
    have extra logic (e.g. VisFrameBorderIter only iterates
    over visible borders), FrameBorderIter iterates over
    all borders in the vector.
    
    Use range-based for loops instead to simplify this
    and increase readability.
    
    Change-Id: I2314879f3d117723f0940708f1ba6cf0548d8e54
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187319
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx
index 4768693efada..8e21a06e8c72 100644
--- a/svx/source/dialog/frmsel.cxx
+++ b/svx/source/dialog/frmsel.cxx
@@ -288,11 +288,11 @@ void FrameSelectorImpl::Initialize( FrameSelFlags nFlags )
     mnFlags = nFlags;
 
     maEnabBorders.clear();
-    for( FrameBorderIter aIt( maAllBorders ); aIt.Is(); ++aIt )
+    for (FrameBorder* pBorder : maAllBorders)
     {
-        (*aIt)->Enable( mnFlags );
-        if( (*aIt)->IsEnabled() )
-            maEnabBorders.push_back( *aIt );
+        pBorder->Enable(mnFlags);
+        if (pBorder->IsEnabled())
+            maEnabBorders.push_back(pBorder);
     }
     mbHor = maHor.IsEnabled();
     mbVer = maVer.IsEnabled();
@@ -457,8 +457,8 @@ void FrameSelectorImpl::InitBorderGeometry()
     }
 
     // Click areas
-    for( FrameBorderIter aIt( maAllBorders ); aIt.Is(); ++aIt )
-        (*aIt)->ClearClickArea();
+    for (FrameBorder* pBorder : maAllBorders)
+        pBorder->ClearClickArea();
 
     /*  Additional space for click area: is added to the space available to 
draw
         the frame borders. For instance left frame border:
@@ -640,12 +640,12 @@ Color FrameSelectorImpl::GetDrawLineColor( const Color& 
rColor ) const
 void FrameSelectorImpl::DrawAllFrameBorders()
 {
     // Translate core colors to current UI colors (regards current background 
and HC mode).
-    for( FrameBorderIter aIt( maEnabBorders ); aIt.Is(); ++aIt )
+    for (FrameBorder* pBorder : maEnabBorders)
     {
-        Color aCoreColorPrim = ((*aIt)->GetState() == 
FrameBorderState::DontCare) ? maMarkCol : (*aIt)->GetCoreStyle().GetColorOut();
-        Color aCoreColorSecn = ((*aIt)->GetState() == 
FrameBorderState::DontCare) ? maMarkCol : (*aIt)->GetCoreStyle().GetColorIn();
-        (*aIt)->SetUIColorPrim( GetDrawLineColor( aCoreColorPrim ) );
-        (*aIt)->SetUIColorSecn( GetDrawLineColor( aCoreColorSecn ) );
+        Color aCoreColorPrim = (pBorder->GetState() == 
FrameBorderState::DontCare) ? maMarkCol : pBorder->GetCoreStyle().GetColorOut();
+        Color aCoreColorSecn = (pBorder->GetState() == 
FrameBorderState::DontCare) ? maMarkCol : pBorder->GetCoreStyle().GetColorIn();
+        pBorder->SetUIColorPrim(GetDrawLineColor(aCoreColorPrim));
+        pBorder->SetUIColorSecn(GetDrawLineColor(aCoreColorSecn));
     }
 
     // Copy all frame border styles to the helper array
@@ -924,8 +924,8 @@ bool FrameSelector::IsAnyBorderVisible() const
 
 void FrameSelector::HideAllBorders()
 {
-    for( FrameBorderIter aIt( mxImpl->maEnabBorders ); aIt.Is(); ++aIt )
-        mxImpl->SetBorderState( **aIt, FrameBorderState::Hide );
+    for (FrameBorder* pBorder : mxImpl->maEnabBorders)
+        mxImpl->SetBorderState(*pBorder, FrameBorderState::Hide);
 }
 
 bool FrameSelector::GetVisibleWidth( tools::Long& rnWidth, SvxBorderLineStyle& 
rnStyle ) const
@@ -1009,8 +1009,8 @@ bool FrameSelector::IsAnyBorderSelected() const
 
 void FrameSelector::SelectAllBorders( bool bSelect )
 {
-    for( FrameBorderIter aIt( mxImpl->maEnabBorders ); aIt.Is(); ++aIt )
-        mxImpl->SelectBorder( **aIt, bSelect );
+    for (FrameBorder* pBorder : mxImpl->maEnabBorders)
+        mxImpl->SelectBorder(*pBorder, bSelect);
 }
 
 void FrameSelector::SelectAllVisibleBorders()
@@ -1132,36 +1132,36 @@ bool FrameSelector::MouseButtonDown( const MouseEvent& 
rMEvt )
             DR 2004-01-30: Why are the borders set to "don't care" then?!? */
         bool bHideDontCare = !SupportsDontCareState();
 
-        for( FrameBorderIter aIt( mxImpl->maEnabBorders ); aIt.Is(); ++aIt )
+        for (FrameBorder* pBorder : mxImpl->maEnabBorders)
         {
-            if( (*aIt)->ContainsClickPoint( aPos ) )
+            if (pBorder->ContainsClickPoint(aPos))
             {
                 // frame border is clicked
                 bAnyClicked = true;
-                if( !(*aIt)->IsSelected() )
+                if (!pBorder->IsSelected())
                 {
                     bNewSelected = true;
                     //mxImpl->SelectBorder( **aIt, true );
-                    SelectBorder((**aIt).GetType());
+                    SelectBorder(pBorder->GetType());
                 }
             }
             else
             {
                 // hide a "don't care" frame border only if it is not clicked
-                if( bHideDontCare && ((*aIt)->GetState() == 
FrameBorderState::DontCare) )
-                    mxImpl->SetBorderState( **aIt, FrameBorderState::Hide );
+                if (bHideDontCare && (pBorder->GetState() == 
FrameBorderState::DontCare))
+                    mxImpl->SetBorderState(*pBorder, FrameBorderState::Hide);
 
                 // deselect frame borders not clicked (if SHIFT or CTRL are 
not pressed)
                 if( !rMEvt.IsShift() && !rMEvt.IsMod1() )
-                    aDeselectBorders.push_back( *aIt );
+                    aDeselectBorders.push_back(pBorder);
             }
         }
 
         if( bAnyClicked )
         {
             // any valid frame border clicked? -> deselect other frame borders
-            for( FrameBorderIter aIt( aDeselectBorders ); aIt.Is(); ++aIt )
-                mxImpl->SelectBorder( **aIt, false );
+            for (FrameBorder* pBorder : aDeselectBorders)
+                mxImpl->SelectBorder(*pBorder, false);
 
             if( bNewSelected || !mxImpl->SelectedBordersEqual() )
             {
diff --git a/svx/source/inc/frmselimpl.hxx b/svx/source/inc/frmselimpl.hxx
index 0d8139ad00e8..a1b768ad6a4b 100644
--- a/svx/source/inc/frmselimpl.hxx
+++ b/svx/source/inc/frmselimpl.hxx
@@ -257,10 +257,6 @@ private:
 typedef FrameBorderIterBase< const FrameBorderPtrVec, 
FrameBorderPtrVec::const_iterator, FrameBorderDummy_Pred >
     FrameBorderCIter;
 
-/** Iterator for mutable svx::FrameBorder containers, iterates over all 
borders. */
-typedef FrameBorderIterBase< FrameBorderPtrVec, FrameBorderPtrVec::iterator, 
FrameBorderDummy_Pred >
-    FrameBorderIter;
-
 /** Iterator for constant svx::FrameBorder containers, iterates over visible 
borders. */
 typedef FrameBorderIterBase< const FrameBorderPtrVec, 
FrameBorderPtrVec::const_iterator, FrameBorderVisible_Pred >
     VisFrameBorderCIter;
commit 06a9ee367424c020e1d41fbd9891d96a14432d41
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Thu Jul 3 12:25:57 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Jul 4 06:36:06 2025 +0200

    svx: Switch DBG_ASSERT -> assert
    
    Change-Id: Ie76ef9cde692f9bef11ebb1f8dd5e4ccfd9ee302
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187318
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx
index 8eb734c3bfb4..4768693efada 100644
--- a/svx/source/dialog/frmsel.cxx
+++ b/svx/source/dialog/frmsel.cxx
@@ -56,8 +56,8 @@ using namespace ::com::sun::star::accessibility;
 
 FrameBorderType GetFrameBorderTypeFromIndex( size_t nIndex )
 {
-    DBG_ASSERT( nIndex < o3tl::make_unsigned(FRAMEBORDERTYPE_COUNT),
-        "svx::GetFrameBorderTypeFromIndex - invalid index" );
+    assert(nIndex < o3tl::make_unsigned(FRAMEBORDERTYPE_COUNT)
+           && "svx::GetFrameBorderTypeFromIndex - invalid index");
     return static_cast< FrameBorderType >( nIndex + 1 );
 }
 

Reply via email to