svx/source/svdraw/svdedxv.cxx | 13 ++----- svx/source/svdraw/svdmodel.cxx | 76 +++++++++++++++++++---------------------- 2 files changed, 41 insertions(+), 48 deletions(-)
New commits: commit 6c16c0c7e9dc72c2ed15879f86c5b0cf39205af8 Author: Noel Grandin <[email protected]> AuthorDate: Wed Feb 25 18:13:36 2026 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Thu Feb 26 09:32:47 2026 +0100 use more SfxWhichIter Change-Id: Ieb8f300768d513b5048352c44770b57c04bba6d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200349 Reviewed-by: Noel Grandin <[email protected]> Tested-by: Jenkins diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index d81ecaea1a18..49068a4dac49 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -2469,15 +2469,12 @@ bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll) WhichRangesContainer pNewWhichTable = RemoveWhichRange(pSet->GetRanges(), EE_ITEMS_START, EE_ITEMS_END); SfxItemSet aSet(GetModel().GetItemPool(), std::move(pNewWhichTable)); - SfxWhichIter aIter(aSet); - sal_uInt16 nWhich = aIter.FirstWhich(); - while (nWhich != 0) + for (SfxItemIter aIter(aSet); !aIter.IsAtEnd(); aIter.Next()) { - const SfxPoolItem* pItem; - SfxItemState eState = pSet->GetItemState(nWhich, false, &pItem); - if (eState == SfxItemState::SET) - aSet.Put(*pItem); - nWhich = aIter.NextWhich(); + const SfxPoolItem* pItem = aIter.GetCurItem(); + if (IsDisabledItem(pItem)) + continue; + aSet.Put(*pItem); } if (mxSelectionController.is()) diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx index 814fcd5eba61..048350ca0164 100644 --- a/svx/source/svdraw/svdmodel.cxx +++ b/svx/source/svdraw/svdmodel.cxx @@ -27,7 +27,7 @@ #include <unotools/configmgr.hxx> #include <unotools/fontdefs.hxx> #include <unotools/pathoptions.hxx> -#include <svl/whiter.hxx> +#include <svl/itemiter.hxx> #include <svl/asiancfg.hxx> #include <svx/compatflags.hxx> #include <svx/xbtmpit.hxx> @@ -1684,49 +1684,45 @@ void SdrModel::MigrateItemSet( const SfxItemSet* pSourceSet, SfxItemSet* pDestSe if( !(pSourceSet && pDestSet && (pSourceSet != pDestSet )) ) return; - SfxWhichIter aWhichIter(*pSourceSet); - sal_uInt16 nWhich(aWhichIter.FirstWhich()); - const SfxPoolItem *pPoolItem; - - while(nWhich) + for (SfxItemIter aIter(*pSourceSet); !aIter.IsAtEnd(); aIter.Next()) { - if(SfxItemState::SET == aWhichIter.GetItemState(false, &pPoolItem)) - { - std::unique_ptr<SfxPoolItem> pResultItem; + const SfxPoolItem *pPoolItem = aIter.GetCurItem(); + if(IsDisabledItem(pPoolItem)) + continue; - switch( nWhich ) - { - case XATTR_FILLBITMAP: - pResultItem = static_cast<const XFillBitmapItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); - break; - case XATTR_LINEDASH: - pResultItem = static_cast<const XLineDashItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); - break; - case XATTR_LINESTART: - pResultItem = static_cast<const XLineStartItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); - break; - case XATTR_LINEEND: - pResultItem = static_cast<const XLineEndItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); - break; - case XATTR_FILLGRADIENT: - pResultItem = static_cast<const XFillGradientItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); - break; - case XATTR_FILLFLOATTRANSPARENCE: - // allow all kinds of XFillFloatTransparenceItem to be set - pResultItem = static_cast<const XFillFloatTransparenceItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); - break; - case XATTR_FILLHATCH: - pResultItem = static_cast<const XFillHatchItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); - break; - } + std::unique_ptr<SfxPoolItem> pResultItem; - // set item - if( pResultItem ) - pDestSet->Put(std::move(pResultItem)); - else - pDestSet->Put(*pPoolItem); + switch( aIter.GetCurWhich() ) + { + case XATTR_FILLBITMAP: + pResultItem = static_cast<const XFillBitmapItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); + break; + case XATTR_LINEDASH: + pResultItem = static_cast<const XLineDashItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); + break; + case XATTR_LINESTART: + pResultItem = static_cast<const XLineStartItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); + break; + case XATTR_LINEEND: + pResultItem = static_cast<const XLineEndItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); + break; + case XATTR_FILLGRADIENT: + pResultItem = static_cast<const XFillGradientItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); + break; + case XATTR_FILLFLOATTRANSPARENCE: + // allow all kinds of XFillFloatTransparenceItem to be set + pResultItem = static_cast<const XFillFloatTransparenceItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); + break; + case XATTR_FILLHATCH: + pResultItem = static_cast<const XFillHatchItem*>(pPoolItem)->checkForUniqueItem( rNewModel ); + break; } - nWhich = aWhichIter.NextWhich(); + + // set item + if( pResultItem ) + pDestSet->Put(std::move(pResultItem)); + else + pDestSet->Put(*pPoolItem); } }
