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

Reply via email to