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 ); }