summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2016-04-23 20:23:29 +0200
committerNoel Grandin <noelgrandin@gmail.com>2016-05-27 07:21:45 +0000
commit9eb2e683ab051edd0bce18841f0ac05df5038854 (patch)
tree71e7a4d4b8389c09ff17024fceaed94668751082
parentfd964e3b9f60bf2043fdc39ab8161a586049b481 (diff)
tdf#34465 remove calls to SfxItemSet::Put(const SfxPoolItem&, sal_uInt16)
and put an assert in SfxPoolItem::SetWhich() so nothing new creeps in. Change-Id: I6497650fa61ffb2b6941ffff2d471c8f117be1df Reviewed-on: https://gerrit.libreoffice.org/24324 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
-rw-r--r--chart2/source/controller/itemsetwrapper/ItemConverter.cxx3
-rw-r--r--cui/source/dialogs/cuihyperdlg.cxx4
-rw-r--r--cui/source/dialogs/hltpbase.cxx4
-rw-r--r--cui/source/options/connpooloptions.cxx4
-rw-r--r--cui/source/options/dbregister.cxx2
-rw-r--r--cui/source/tabpages/numpages.cxx12
-rw-r--r--cui/source/tabpages/tparea.cxx3
-rw-r--r--cui/source/tabpages/tphatch.cxx6
-rw-r--r--editeng/source/editeng/editdoc.cxx9
-rw-r--r--editeng/source/editeng/editview.cxx9
-rw-r--r--editeng/source/outliner/outlvw.cxx4
-rw-r--r--editeng/source/uno/unoipset.cxx3
-rw-r--r--extensions/source/propctrlr/fontdialog.cxx22
-rw-r--r--filter/source/msfilter/svdfppt.cxx4
-rw-r--r--include/svl/itemset.hxx2
-rw-r--r--include/svl/poolitem.hxx9
-rw-r--r--reportdesign/source/ui/misc/UITools.cxx3
-rw-r--r--sc/source/core/data/stlpool.cxx12
-rw-r--r--sc/source/core/data/stlsheet.cxx8
-rw-r--r--sc/source/core/tool/autoform.cxx24
-rw-r--r--sc/source/filter/excel/xlroot.cxx9
-rw-r--r--sc/source/filter/ftools/ftools.cxx5
-rw-r--r--sc/source/filter/rtf/eeimpars.cxx28
-rw-r--r--sc/source/filter/starcalc/scflt.cxx16
-rw-r--r--sc/source/ui/Accessibility/AccessibleText.cxx9
-rw-r--r--sc/source/ui/app/inputwin.cxx35
-rw-r--r--sc/source/ui/dbgui/csvgrid.cxx21
-rw-r--r--sc/source/ui/drawfunc/drawsh.cxx4
-rw-r--r--sc/source/ui/pagedlg/tphfedit.cxx9
-rw-r--r--sc/source/ui/unoobj/textuno.cxx9
-rw-r--r--sc/source/ui/view/formatsh.cxx3
-rw-r--r--sc/source/ui/view/printfun.cxx9
-rw-r--r--sc/source/ui/view/viewutil.cxx5
-rw-r--r--sd/source/ui/dlg/dlgolbul.cxx3
-rw-r--r--sd/source/ui/func/fubullet.cxx6
-rw-r--r--sd/source/ui/func/fuolbull.cxx5
-rw-r--r--sd/source/ui/view/drtxtob.cxx6
-rw-r--r--sd/source/ui/view/drviews9.cxx118
-rw-r--r--sd/source/ui/view/viewshel.cxx3
-rw-r--r--svl/source/items/itemprop.cxx2
-rw-r--r--svl/source/items/poolitem.cxx9
-rw-r--r--svx/source/dialog/imapwnd.cxx2
-rw-r--r--svx/source/unodraw/UnoNameItemTable.cxx3
-rw-r--r--svx/source/unodraw/unomtabl.cxx16
-rw-r--r--sw/source/core/attr/swatrset.cxx2
-rw-r--r--sw/source/core/doc/poolfmt.cxx10
-rw-r--r--sw/source/core/doc/tblafmt.cxx18
-rw-r--r--sw/source/filter/ascii/parasc.cxx12
-rw-r--r--sw/source/filter/ww8/ww8graf.cxx2
-rw-r--r--sw/source/ui/dbui/dbinsdlg.cxx6
-rw-r--r--sw/source/ui/frmdlg/wrap.cxx4
-rw-r--r--sw/source/uibase/app/appopt.cxx15
-rw-r--r--sw/source/uibase/lingu/olmenu.cxx2
-rw-r--r--sw/source/uibase/shells/annotsh.cxx41
-rw-r--r--sw/source/uibase/shells/basesh.cxx10
-rw-r--r--sw/source/uibase/shells/drwtxtex.cxx19
-rw-r--r--sw/source/uibase/shells/drwtxtsh.cxx12
-rw-r--r--sw/source/uibase/shells/langhelper.cxx2
-rw-r--r--sw/source/uibase/shells/tabsh.cxx13
-rw-r--r--sw/source/uibase/shells/textsh.cxx9
-rw-r--r--sw/source/uibase/shells/textsh1.cxx5
-rw-r--r--sw/source/uibase/uiview/formatclipboard.cxx13
-rw-r--r--sw/source/uibase/uiview/viewstat.cxx24
-rw-r--r--sw/source/uibase/uiview/viewtab.cxx18
64 files changed, 483 insertions, 236 deletions
diff --git a/chart2/source/controller/itemsetwrapper/ItemConverter.cxx b/chart2/source/controller/itemsetwrapper/ItemConverter.cxx
index 312eaeadecbb..20746e7b3c1a 100644
--- a/chart2/source/controller/itemsetwrapper/ItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/ItemConverter.cxx
@@ -114,7 +114,8 @@ void ItemConverter::FillItemSet( SfxItemSet & rOutItemSet ) const
}
else
{
- rOutItemSet.Put( *pItem, nWhich );
+ pItem->SetWhich(nWhich);
+ rOutItemSet.Put( *pItem );
delete pItem;
}
}
diff --git a/cui/source/dialogs/cuihyperdlg.cxx b/cui/source/dialogs/cuihyperdlg.cxx
index f0039c9428d5..262cde9cc42d 100644
--- a/cui/source/dialogs/cuihyperdlg.cxx
+++ b/cui/source/dialogs/cuihyperdlg.cxx
@@ -117,8 +117,8 @@ SvxHpLinkDlg::SvxHpLinkDlg (vcl::Window* pParent, SfxBindings* pBindings)
mpItemSet = new SfxItemSet( SfxGetpApp()->GetPool(), SID_HYPERLINK_GETLINK,
SID_HYPERLINK_SETLINK );
- SvxHyperlinkItem aItem;
- mpItemSet->Put (aItem, SID_HYPERLINK_GETLINK);
+ SvxHyperlinkItem aItem(SID_HYPERLINK_GETLINK);
+ mpItemSet->Put(aItem);
SetInputSet (mpItemSet);
diff --git a/cui/source/dialogs/hltpbase.cxx b/cui/source/dialogs/hltpbase.cxx
index cef6aecf9f58..84f0c50c9d6d 100644
--- a/cui/source/dialogs/hltpbase.cxx
+++ b/cui/source/dialogs/hltpbase.cxx
@@ -348,7 +348,7 @@ IMPL_LINK_NOARG_TYPED(SvxHyperlinkTabPageBase, ClickScriptHdl_Impl, Button*, voi
{
// get macros from itemset
const SvxMacroTableDtor* pMacroTbl = pHyperlinkItem->GetMacroTable();
- SvxMacroItem aItem ( GetWhich(SID_ATTR_MACROITEM) );
+ SvxMacroItem aItem ( SID_ATTR_MACROITEM );
if( pMacroTbl )
aItem.SetMacroTable( *pMacroTbl );
@@ -356,7 +356,7 @@ IMPL_LINK_NOARG_TYPED(SvxHyperlinkTabPageBase, ClickScriptHdl_Impl, Button*, voi
SfxItemSet* pItemSet = new SfxItemSet(SfxGetpApp()->GetPool(),
SID_ATTR_MACROITEM,
SID_ATTR_MACROITEM );
- pItemSet->Put ( aItem, SID_ATTR_MACROITEM );
+ pItemSet->Put ( aItem );
/* disable HyperLinkDlg for input while the MacroAssignDlg is working
because if no JAVA is installed an error box occurs and then it is possible
diff --git a/cui/source/options/connpooloptions.cxx b/cui/source/options/connpooloptions.cxx
index 9af9aec71dec..0cd9fb241577 100644
--- a/cui/source/options/connpooloptions.cxx
+++ b/cui/source/options/connpooloptions.cxx
@@ -381,14 +381,14 @@ namespace offapp
// the enabled flag
if (m_pEnablePooling->IsValueChangedFromSaved())
{
- _rSet->Put(SfxBoolItem(SID_SB_POOLING_ENABLED, m_pEnablePooling->IsChecked()), SID_SB_POOLING_ENABLED);
+ _rSet->Put(SfxBoolItem(SID_SB_POOLING_ENABLED, m_pEnablePooling->IsChecked()));
bModified = true;
}
// the settings for the single drivers
if (m_pDriverList->isModified())
{
- _rSet->Put(DriverPoolingSettingsItem(SID_SB_DRIVER_TIMEOUTS, m_pDriverList->getSettings()), SID_SB_DRIVER_TIMEOUTS);
+ _rSet->Put(DriverPoolingSettingsItem(SID_SB_DRIVER_TIMEOUTS, m_pDriverList->getSettings()));
bModified = true;
}
diff --git a/cui/source/options/dbregister.cxx b/cui/source/options/dbregister.cxx
index f0d16513d245..c3a422c0d6fe 100644
--- a/cui/source/options/dbregister.cxx
+++ b/cui/source/options/dbregister.cxx
@@ -204,7 +204,7 @@ bool DbRegistrationOptionsPage::FillItemSet( SfxItemSet* rCoreSet )
}
if ( m_nOldCount != aRegistrations.size() || m_bModified )
{
- rCoreSet->Put(DatabaseMapItem( SID_SB_DB_REGISTER, aRegistrations ), SID_SB_DB_REGISTER);
+ rCoreSet->Put(DatabaseMapItem( SID_SB_DB_REGISTER, aRegistrations ));
bModified = true;
}
diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index 22d23e0bb7e3..d4a7ad418ec0 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -250,7 +250,7 @@ bool SvxSingleNumPickTabPage::FillItemSet( SfxItemSet* rSet )
if( (bPreset || bModified) && pSaveNum)
{
*pSaveNum = *pActNum;
- rSet->Put(SvxNumBulletItem( *pSaveNum ), nNumItemId);
+ rSet->Put(SvxNumBulletItem( *pSaveNum, nNumItemId ));
rSet->Put(SfxBoolItem(SID_PARAM_NUM_PRESET, bPreset));
}
@@ -416,7 +416,7 @@ bool SvxBulletPickTabPage::FillItemSet( SfxItemSet* rSet )
if( (bPreset || bModified) && pActNum)
{
*pSaveNum = *pActNum;
- rSet->Put(SvxNumBulletItem( *pSaveNum ), nNumItemId);
+ rSet->Put(SvxNumBulletItem( *pSaveNum, nNumItemId ));
rSet->Put(SfxBoolItem(SID_PARAM_NUM_PRESET, bPreset));
}
return bModified;
@@ -618,7 +618,7 @@ bool SvxNumPickTabPage::FillItemSet( SfxItemSet* rSet )
if( (bPreset || bModified) && pActNum)
{
*pSaveNum = *pActNum;
- rSet->Put(SvxNumBulletItem( *pSaveNum ), nNumItemId);
+ rSet->Put(SvxNumBulletItem( *pSaveNum, nNumItemId ));
rSet->Put(SfxBoolItem(SID_PARAM_NUM_PRESET, bPreset));
}
return bModified;
@@ -916,7 +916,7 @@ bool SvxBitmapPickTabPage::FillItemSet( SfxItemSet* rSet )
if( (bPreset || bModified) && pActNum)
{
*pSaveNum = *pActNum;
- rSet->Put(SvxNumBulletItem( *pSaveNum ), nNumItemId);
+ rSet->Put(SvxNumBulletItem( *pSaveNum, nNumItemId ) );
rSet->Put(SfxBoolItem(SID_PARAM_NUM_PRESET, bPreset));
}
@@ -1375,7 +1375,7 @@ bool SvxNumOptionsTabPage::FillItemSet( SfxItemSet* rSet )
if(bModified && pActNum)
{
*pSaveNum = *pActNum;
- rSet->Put(SvxNumBulletItem( *pSaveNum ), nNumItemId);
+ rSet->Put(SvxNumBulletItem( *pSaveNum, nNumItemId ));
rSet->Put(SfxBoolItem(SID_PARAM_NUM_PRESET, false));
}
return bModified;
@@ -3153,7 +3153,7 @@ bool SvxNumPositionTabPage::FillItemSet( SfxItemSet* rSet )
if(bModified && pActNum)
{
*pSaveNum = *pActNum;
- rSet->Put(SvxNumBulletItem( *pSaveNum ), nNumItemId);
+ rSet->Put(SvxNumBulletItem( *pSaveNum, nNumItemId ));
rSet->Put(SfxBoolItem(SID_PARAM_NUM_PRESET, false));
}
return bModified;
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 29b34702068c..431e10614e54 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -1348,7 +1348,8 @@ IMPL_LINK_NOARG_TYPED(SvxAreaTabPage, ModifyHatchingHdl_Impl, ListBox&, void)
// fill Hatch background ItemSet
XFillBackgroundItem aItem(static_cast<const XFillBackgroundItem&>(m_rOutAttrs.Get( XATTR_FILLBACKGROUND )));
- m_rXFSet.Put( aItem, XATTR_FILLBACKGROUND );
+ aItem.SetWhich( XATTR_FILLBACKGROUND );
+ m_rXFSet.Put ( aItem );
if(aItem.GetValue())
{
if( SfxItemState::SET == m_rOutAttrs.GetItemState( GetWhich( XATTR_FILLCOLOR ), true, &pPoolItem ) )
diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx
index ac5af61e9b08..78e5fa84da03 100644
--- a/cui/source/tabpages/tphatch.cxx
+++ b/cui/source/tabpages/tphatch.cxx
@@ -338,7 +338,8 @@ bool SvxHatchTabPage::FillItemSet( SfxItemSet* rSet )
sal_uInt32 nPosBckColor = m_pLbBackgroundColor->GetSelectEntryPos();
XFillBackgroundItem aItem( m_pLbBackgroundColor->GetSelectEntryColor() != COL_WHITE );
- rSet->Put( aItem , XATTR_FILLBACKGROUND );
+ aItem.SetWhich( XATTR_FILLBACKGROUND );
+ rSet->Put( aItem );
if(aItem.GetValue())
{
OUString aBckColorString;
@@ -418,7 +419,8 @@ void SvxHatchTabPage::ModifiedHdl_Impl( void* p )
m_rXFSet.Put( XFillHatchItem( OUString(), aXHatch ) );
XFillBackgroundItem aItem( m_pLbBackgroundColor->GetSelectEntryColor() != COL_WHITE );
- m_rXFSet.Put( aItem, XATTR_FILLBACKGROUND );
+ aItem.SetWhich( XATTR_FILLBACKGROUND );
+ m_rXFSet.Put( aItem );
if(aItem.GetValue())
m_rXFSet.Put( XFillColorItem( OUString(), m_pLbBackgroundColor->GetSelectEntryColor() ) );
m_pCtlPreview->SetAttributes( m_aXFillAttr.GetItemSet() );
diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx
index c7b202733b74..78fa1f03b063 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -949,14 +949,15 @@ void ConvertAndPutItems( SfxItemSet& rDest, const SfxItemSet& rSource, const Map
if ( eSourceUnit != eDestUnit )
{
SfxPoolItem* pItem = rSource.Get( nSourceWhich ).Clone();
-// pItem->SetWhich( nWhich );
ConvertItem( *pItem, eSourceUnit, eDestUnit );
- rDest.Put( *pItem, nWhich );
+ pItem->SetWhich(nWhich);
+ rDest.Put( *pItem );
delete pItem;
}
else
{
- rDest.Put( rSource.Get( nSourceWhich ), nWhich );
+ std::unique_ptr<SfxPoolItem> pNewItem(rSource.Get( nSourceWhich ).CloneSetWhich(nWhich));
+ rDest.Put( *pNewItem );
}
}
}
@@ -2322,7 +2323,7 @@ EditPaM EditDoc::InsertParaBreak( EditPaM aPaM, bool bKeepEndingAttribs )
ContentAttribs aContentAttribs( aPaM.GetNode()->GetContentAttribs() );
// for a new paragraph we like to have the bullet/numbering visible by default
- aContentAttribs.GetItems().Put( SfxBoolItem( EE_PARA_BULLETSTATE, true), EE_PARA_BULLETSTATE );
+ aContentAttribs.GetItems().Put( SfxBoolItem( EE_PARA_BULLETSTATE, true) );
// ContentNode constructor copies also the paragraph attributes
ContentNode* pNode = new ContentNode( aStr, aContentAttribs );
diff --git a/editeng/source/editeng/editview.cxx b/editeng/source/editeng/editview.cxx
index 3c0852ea8168..e9a36bf7144a 100644
--- a/editeng/source/editeng/editview.cxx
+++ b/editeng/source/editeng/editview.cxx
@@ -1121,9 +1121,9 @@ static void ChangeFontSizeImpl( EditView* pEditView, bool bGrow, const ESelectio
if( EditView::ChangeFontSize( bGrow, aSet, pFontList ) )
{
SfxItemSet aNewSet( pEditView->GetEmptyItemSet() );
- aNewSet.Put( aSet.Get( EE_CHAR_FONTHEIGHT ), EE_CHAR_FONTHEIGHT );
- aNewSet.Put( aSet.Get( EE_CHAR_FONTHEIGHT_CJK ), EE_CHAR_FONTHEIGHT_CJK );
- aNewSet.Put( aSet.Get( EE_CHAR_FONTHEIGHT_CTL ), EE_CHAR_FONTHEIGHT_CTL );
+ aNewSet.Put( aSet.Get( EE_CHAR_FONTHEIGHT ) );
+ aNewSet.Put( aSet.Get( EE_CHAR_FONTHEIGHT_CJK ) );
+ aNewSet.Put( aSet.Get( EE_CHAR_FONTHEIGHT_CTL ) );
pEditView->SetAttribs( aNewSet );
}
}
@@ -1258,7 +1258,8 @@ bool EditView::ChangeFontSize( bool bGrow, SfxItemSet& rSet, const FontList* pFo
if( nHeight != (long)aFontHeightItem.GetHeight() )
{
aFontHeightItem.SetHeight( nHeight );
- rSet.Put( aFontHeightItem, *pWhich );
+ std::unique_ptr<SfxPoolItem> pNewItem(aFontHeightItem.CloneSetWhich(*pWhich));
+ rSet.Put( *pNewItem );
bRet = true;
}
}
diff --git a/editeng/source/outliner/outlvw.cxx b/editeng/source/outliner/outlvw.cxx
index 5f5a8d1b3df3..a64d85bc74e2 100644
--- a/editeng/source/outliner/outlvw.cxx
+++ b/editeng/source/outliner/outlvw.cxx
@@ -881,7 +881,7 @@ void OutlinerView::ToggleBullets()
{
SfxItemSet aAttrs( pOwner->GetParaAttribs( nPara ) );
SvxNumRule aNewNumRule( *pDefaultBulletNumRule );
- aAttrs.Put( SvxNumBulletItem( aNewNumRule ), EE_PARA_NUMBULLET );
+ aAttrs.Put( SvxNumBulletItem( aNewNumRule, EE_PARA_NUMBULLET ) );
pOwner->SetParaAttribs( nPara, aAttrs );
}
}
@@ -1089,7 +1089,7 @@ void OutlinerView::ApplyBulletsNumbering(
}
}
- aAttrs.Put(SvxNumBulletItem(aNewRule), EE_PARA_NUMBULLET);
+ aAttrs.Put(SvxNumBulletItem(aNewRule, EE_PARA_NUMBULLET));
}
}
pOwner->SetParaAttribs(nPara, aAttrs);
diff --git a/editeng/source/uno/unoipset.cxx b/editeng/source/uno/unoipset.cxx
index dc3f77477a42..40677da3d197 100644
--- a/editeng/source/uno/unoipset.cxx
+++ b/editeng/source/uno/unoipset.cxx
@@ -181,7 +181,8 @@ void SvxItemPropertySet::setPropertyValue( const SfxItemPropertySimpleEntry* pMa
if( pNewItem->PutValue( aValue, nMemberId ) )
{
// Set new item in item set
- rSet.Put( *pNewItem, pMap->nWID );
+ pNewItem->SetWhich( pMap->nWID );
+ rSet.Put( *pNewItem );
}
delete pNewItem;
}
diff --git a/extensions/source/propctrlr/fontdialog.cxx b/extensions/source/propctrlr/fontdialog.cxx
index 868260454b60..89461f28257f 100644
--- a/extensions/source/propctrlr/fontdialog.cxx
+++ b/extensions/source/propctrlr/fontdialog.cxx
@@ -248,17 +248,17 @@ namespace pcr
SvxCharReliefItem aFontReliefItem((FontRelief)nFontRelief, CFID_RELIEF);
SvxEmphasisMarkItem aEmphasisMarkitem((FontEmphasisMark)nFontEmphasisMark, CFID_EMPHASIS);
- _pSet->Put(aFontItem, CFID_FONT);
- _pSet->Put(aSvxFontHeightItem,CFID_HEIGHT);
- _pSet->Put(aWeightItem, CFID_WEIGHT);
- _pSet->Put(aPostureItem, CFID_POSTURE);
- _pSet->Put(aLanguageItem, CFID_LANGUAGE);
- _pSet->Put(aUnderlineItem,CFID_UNDERLINE);
- _pSet->Put(aCrossedOutItem,CFID_STRIKEOUT);
- _pSet->Put(aWordLineModeItem, CFID_WORDLINEMODE);
- _pSet->Put(aSvxColorItem, CFID_CHARCOLOR);
- _pSet->Put(aFontReliefItem, CFID_RELIEF);
- _pSet->Put(aEmphasisMarkitem, CFID_EMPHASIS);
+ _pSet->Put(aFontItem);
+ _pSet->Put(aSvxFontHeightItem);
+ _pSet->Put(aWeightItem);
+ _pSet->Put(aPostureItem);
+ _pSet->Put(aLanguageItem);
+ _pSet->Put(aUnderlineItem);
+ _pSet->Put(aCrossedOutItem);
+ _pSet->Put(aWordLineModeItem);
+ _pSet->Put(aSvxColorItem);
+ _pSet->Put(aFontReliefItem);
+ _pSet->Put(aEmphasisMarkitem);
aPropExtractor.invalidateItem(PROPERTY_FONT_NAME, CFID_FONT, *_pSet);
aPropExtractor.invalidateItem(PROPERTY_FONT_HEIGHT, CFID_HEIGHT, *_pSet);
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 9d23b39db224..39d15befbf7b 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -6283,7 +6283,9 @@ void PPTParagraphObj::ApplyTo( SfxItemSet& rSet, boost::optional< sal_Int16 >&
pPortion->GetAttrib( PPT_CharAttr_FontHeight, nFontHeight, nDestinationInstance );
nVal2 = -(sal_Int16)( ( nFontHeight * nVal * 8 ) / 100 );
}
- rSet.Put( SdrTextFixedCellHeightItem( true ), SDRATTR_TEXT_USEFIXEDCELLHEIGHT );
+ SdrTextFixedCellHeightItem aHeightItem(true);
+ aHeightItem.SetWhich(SDRATTR_TEXT_USEFIXEDCELLHEIGHT);
+ rSet.Put( aHeightItem );
SvxLineSpacingItem aItem( 200, EE_PARA_SBL );
if ( nVal2 <= 0 ) {
aItem.SetLineHeight( (sal_uInt16)( rManager.ScalePoint( -nVal2 ) / 8 ) );
diff --git a/include/svl/itemset.hxx b/include/svl/itemset.hxx
index adfcf0608d98..76511021567c 100644
--- a/include/svl/itemset.hxx
+++ b/include/svl/itemset.hxx
@@ -124,7 +124,9 @@ public:
inline void SetParent( const SfxItemSet* pNew );
// add, delete items, work on items
+protected:
virtual const SfxPoolItem* Put( const SfxPoolItem&, sal_uInt16 nWhich );
+public:
const SfxPoolItem* Put( const SfxPoolItem& rItem )
{ return Put(rItem, rItem.Which()); }
bool Put( const SfxItemSet&,
diff --git a/include/svl/poolitem.hxx b/include/svl/poolitem.hxx
index f1f47a3bae30..f2f9f2947f68 100644
--- a/include/svl/poolitem.hxx
+++ b/include/svl/poolitem.hxx
@@ -163,7 +163,12 @@ protected:
public:
virtual ~SfxPoolItem();
- void SetWhich( sal_uInt16 nId ) { m_nWhich = nId; }
+ void SetWhich( sal_uInt16 nId )
+ {
+ // can only change the Which before we are in a set
+ assert(m_nRefCount==0);
+ m_nWhich = nId;
+ }
sal_uInt16 Which() const { return m_nWhich; }
virtual bool operator==( const SfxPoolItem& ) const = 0;
bool operator!=( const SfxPoolItem& rItem ) const
@@ -186,6 +191,8 @@ public:
virtual SfxPoolItem* Create( SvStream &, sal_uInt16 nItemVersion ) const;
virtual SvStream& Store( SvStream &, sal_uInt16 nItemVersion ) const;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const = 0;
+ // clone and call SetWhich
+ SfxPoolItem* CloneSetWhich( sal_uInt16 nNewWhich ) const;
sal_uLong GetRefCount() const { return m_nRefCount; }
inline SfxItemKind GetKind() const { return m_nKind; }
diff --git a/reportdesign/source/ui/misc/UITools.cxx b/reportdesign/source/ui/misc/UITools.cxx
index d2e7f467fefe..c509a0d62bd1 100644
--- a/reportdesign/source/ui/misc/UITools.cxx
+++ b/reportdesign/source/ui/misc/UITools.cxx
@@ -277,7 +277,8 @@ namespace
{
::std::unique_ptr<SfxPoolItem> pClone(pItem->Clone());
pClone->PutValue(_xShape->getPropertyValue(aIt->sName), aIt->nMemberId);
- _rItemSet.Put(*pClone, aIt->nWID);
+ pClone->SetWhich(aIt->nWID);
+ _rItemSet.Put(*pClone);
}
}
++aIt;
diff --git a/sc/source/core/data/stlpool.cxx b/sc/source/core/data/stlpool.cxx
index c9acb13effe8..ec06c0887308 100644
--- a/sc/source/core/data/stlpool.cxx
+++ b/sc/source/core/data/stlpool.cxx
@@ -329,8 +329,10 @@ void ScStyleSheetPool::CreateStandardStyles()
// distance to header/footer for the sheet
pHFSetItem = new SvxSetItem( static_cast<const SvxSetItem&>(pSet->Get( ATTR_PAGE_HEADERSET ) ) );
- pSet->Put( *pHFSetItem, ATTR_PAGE_HEADERSET );
- pSet->Put( *pHFSetItem, ATTR_PAGE_FOOTERSET );
+ pHFSetItem->SetWhich(ATTR_PAGE_HEADERSET);
+ pSet->Put( *pHFSetItem );
+ pHFSetItem->SetWhich(ATTR_PAGE_FOOTERSET);
+ pSet->Put( *pHFSetItem );
delete pHFSetItem;
// Header:
@@ -387,8 +389,10 @@ void ScStyleSheetPool::CreateStandardStyles()
pHFSet->Put( SvxBrushItem( aColGrey, ATTR_BACKGROUND ) );
pHFSet->Put( aBoxItem );
pHFSet->Put( aBoxInfoItem );
- pSet->Put( *pHFSetItem, ATTR_PAGE_HEADERSET );
- pSet->Put( *pHFSetItem, ATTR_PAGE_FOOTERSET );
+ pHFSetItem->SetWhich(ATTR_PAGE_HEADERSET);
+ pSet->Put( *pHFSetItem );
+ pHFSetItem->SetWhich(ATTR_PAGE_FOOTERSET);
+ pSet->Put( *pHFSetItem );
delete pHFSetItem;
// Footer:
diff --git a/sc/source/core/data/stlsheet.cxx b/sc/source/core/data/stlsheet.cxx
index 77078ead7652..30f302df011b 100644
--- a/sc/source/core/data/stlsheet.cxx
+++ b/sc/source/core/data/stlsheet.cxx
@@ -192,8 +192,10 @@ SfxItemSet& ScStyleSheet::GetItemSet()
rHFSet.Put( aHFDistItem );
rHFSet.Put( SvxLRSpaceItem( 0,0,0,0, ATTR_LRSPACE ) ); // Set border to Null
- pSet->Put( aHFSetItem, ATTR_PAGE_HEADERSET );
- pSet->Put( aHFSetItem, ATTR_PAGE_FOOTERSET );
+ aHFSetItem.SetWhich(ATTR_PAGE_HEADERSET);
+ pSet->Put( aHFSetItem );
+ aHFSetItem.SetWhich(ATTR_PAGE_FOOTERSET);
+ pSet->Put( aHFSetItem );
pSet->Put( aBoxInfoItem ); // Do not overwrite PoolDefault
// due to format templates
@@ -204,7 +206,7 @@ SfxItemSet& ScStyleSheet::GetItemSet()
// The page default depends on the system language.
SvxFrameDirection eDirection = ScGlobal::IsSystemRTL() ?
FRMDIR_HORI_RIGHT_TOP : FRMDIR_HORI_LEFT_TOP;
- pSet->Put( SvxFrameDirectionItem( eDirection, ATTR_WRITINGDIR ), ATTR_WRITINGDIR );
+ pSet->Put( SvxFrameDirectionItem( eDirection, ATTR_WRITINGDIR ) );
rItemPool.SetPoolDefaultItem( aPageItem );
rItemPool.SetPoolDefaultItem( aPaperSizeItem );
diff --git a/sc/source/core/tool/autoform.cxx b/sc/source/core/tool/autoform.cxx
index 69dfd23b3309..5f03d87da5b5 100644
--- a/sc/source/core/tool/autoform.cxx
+++ b/sc/source/core/tool/autoform.cxx
@@ -657,9 +657,15 @@ void ScAutoFormatData::FillToItemSet( sal_uInt16 nIndex, SfxItemSet& rItemSet, S
}
else
{
- rItemSet.Put( rField.GetHeight(), ATTR_CJK_FONT_HEIGHT );
- rItemSet.Put( rField.GetWeight(), ATTR_CJK_FONT_WEIGHT );
- rItemSet.Put( rField.GetPosture(), ATTR_CJK_FONT_POSTURE );
+ SvxFontHeightItem aFontHeightItem(rField.GetHeight());
+ aFontHeightItem.SetWhich(ATTR_CJK_FONT_HEIGHT);
+ rItemSet.Put( aFontHeightItem );
+ SvxWeightItem aWeightItem(rField.GetWeight());
+ aWeightItem.SetWhich(ATTR_CJK_FONT_WEIGHT);
+ rItemSet.Put( aWeightItem );
+ SvxPostureItem aPostureItem(rField.GetPosture());
+ aPostureItem.SetWhich(ATTR_CJK_FONT_POSTURE);
+ rItemSet.Put( aPostureItem );
}
// do not insert empty CTL font
const SvxFontItem& rCTLFont = rField.GetCTLFont();
@@ -672,9 +678,15 @@ void ScAutoFormatData::FillToItemSet( sal_uInt16 nIndex, SfxItemSet& rItemSet, S
}
else
{
- rItemSet.Put( rField.GetHeight(), ATTR_CTL_FONT_HEIGHT );
- rItemSet.Put( rField.GetWeight(), ATTR_CTL_FONT_WEIGHT );
- rItemSet.Put( rField.GetPosture(), ATTR_CTL_FONT_POSTURE );
+ SvxFontHeightItem aFontHeightItem(rField.GetHeight());
+ aFontHeightItem.SetWhich(ATTR_CTL_FONT_HEIGHT);
+ rItemSet.Put( aFontHeightItem );
+ SvxWeightItem aWeightItem(rField.GetWeight());
+ aWeightItem.SetWhich(ATTR_CTL_FONT_WEIGHT);
+ rItemSet.Put( aWeightItem );
+ SvxPostureItem aPostureItem(rField.GetPosture());
+ aPostureItem.SetWhich(ATTR_CTL_FONT_POSTURE);
+ rItemSet.Put( aPostureItem );
}
rItemSet.Put( rField.GetUnderline() );
rItemSet.Put( rField.GetOverline() );
diff --git a/sc/source/filter/excel/xlroot.cxx b/sc/source/filter/excel/xlroot.cxx
index 46d9d28c2ad8..80a9a63f033c 100644
--- a/sc/source/filter/excel/xlroot.cxx
+++ b/sc/source/filter/excel/xlroot.cxx
@@ -369,9 +369,12 @@ ScHeaderEditEngine& XclRoot::GetHFEditEngine() const
SfxItemSet aItemSet( *GetDoc().GetPool(), ATTR_PATTERN_START, ATTR_PATTERN_END );
ScPatternAttr::FillToEditItemSet( *pEditSet, aItemSet );
// FillToEditItemSet() adjusts font height to 1/100th mm, we need twips
- pEditSet->Put( aItemSet.Get( ATTR_FONT_HEIGHT ), EE_CHAR_FONTHEIGHT );
- pEditSet->Put( aItemSet.Get( ATTR_CJK_FONT_HEIGHT ), EE_CHAR_FONTHEIGHT_CJK );
- pEditSet->Put( aItemSet.Get( ATTR_CTL_FONT_HEIGHT ), EE_CHAR_FONTHEIGHT_CTL );
+ std::unique_ptr<SfxPoolItem> pNewItem( aItemSet.Get( ATTR_FONT_HEIGHT ).CloneSetWhich(EE_CHAR_FONTHEIGHT));
+ pEditSet->Put( *pNewItem );
+ pNewItem.reset( aItemSet.Get( ATTR_CJK_FONT_HEIGHT ).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK));
+ pEditSet->Put( *pNewItem );
+ pNewItem.reset( aItemSet.Get( ATTR_CTL_FONT_HEIGHT ).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL));
+ pEditSet->Put( *pNewItem );
rEE.SetDefaults( pEditSet ); // takes ownership
}
return *mrData.mxHFEditEngine;
diff --git a/sc/source/filter/ftools/ftools.cxx b/sc/source/filter/ftools/ftools.cxx
index e40967b1e143..19616c52b664 100644
--- a/sc/source/filter/ftools/ftools.cxx
+++ b/sc/source/filter/ftools/ftools.cxx
@@ -217,7 +217,10 @@ bool ScfTools::CheckItems( const SfxItemSet& rItemSet, const sal_uInt16* pnWhich
void ScfTools::PutItem( SfxItemSet& rItemSet, const SfxPoolItem& rItem, sal_uInt16 nWhichId, bool bSkipPoolDef )
{
if( !bSkipPoolDef || (rItem != rItemSet.GetPool()->GetDefaultItem( nWhichId )) )
- rItemSet.Put( rItem, nWhichId );
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(rItem.CloneSetWhich(nWhichId));
+ rItemSet.Put( *pNewItem );
+ }
}
void ScfTools::PutItem( SfxItemSet& rItemSet, const SfxPoolItem& rItem, bool bSkipPoolDef )
diff --git a/sc/source/filter/rtf/eeimpars.cxx b/sc/source/filter/rtf/eeimpars.cxx
index 77e0c9bc0d2d..da9bb2f23753 100644
--- a/sc/source/filter/rtf/eeimpars.cxx
+++ b/sc/source/filter/rtf/eeimpars.cxx
@@ -267,17 +267,29 @@ void ScEEImport::WriteToDocument( bool bSizeColsRows, double nOutputFactor, SvNu
if ( nScriptType & nScript )
{
if ( pFont )
- rSet.Put( *pFont, ScGlobal::GetScriptedWhichID(
- nScript, ATTR_FONT ));
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pFont->CloneSetWhich(
+ ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT )));
+ rSet.Put( *pNewItem );
+ }
if ( pHeight )
- rSet.Put( *pHeight, ScGlobal::GetScriptedWhichID(
- nScript, ATTR_FONT_HEIGHT ));
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pHeight->CloneSetWhich(
+ ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT_HEIGHT )));
+ rSet.Put( *pNewItem );
+ }
if ( pWeight )
- rSet.Put( *pWeight, ScGlobal::GetScriptedWhichID(
- nScript, ATTR_FONT_WEIGHT ));
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pWeight->CloneSetWhich(
+ ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT_WEIGHT )));
+ rSet.Put( *pNewItem );
+ }
if ( pPosture )
- rSet.Put( *pPosture, ScGlobal::GetScriptedWhichID(
- nScript, ATTR_FONT_POSTURE ));
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pPosture->CloneSetWhich(
+ ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT_POSTURE )));
+ rSet.Put( *pNewItem );
+ }
}
}
}
diff --git a/sc/source/filter/starcalc/scflt.cxx b/sc/source/filter/starcalc/scflt.cxx
index bfac4b03da1f..0d7f37c0028a 100644
--- a/sc/source/filter/starcalc/scflt.cxx
+++ b/sc/source/filter/starcalc/scflt.cxx
@@ -715,23 +715,21 @@ void Sc10PageCollection::PutToDoc( ScDocument* pDoc )
aEditAttribs.Put( SvxFontItem(
eFam,
SC10TOSTRING( pHeadFootLine->LogFont.lfFaceName ), EMPTY_OUSTRING,
- PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW, EE_CHAR_FONTINFO ),
- EE_CHAR_FONTINFO );
- aEditAttribs.Put( SvxFontHeightItem( std::abs( pHeadFootLine->LogFont.lfHeight ), 100, EE_CHAR_FONTHEIGHT ),
- EE_CHAR_FONTHEIGHT);
+ PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW, EE_CHAR_FONTINFO ) );
+ aEditAttribs.Put( SvxFontHeightItem( std::abs( pHeadFootLine->LogFont.lfHeight ), 100, EE_CHAR_FONTHEIGHT ) );
Sc10Color nColor = pHeadFootLine->TextColor;
Color TextColor( nColor.Red, nColor.Green, nColor.Blue );
- aEditAttribs.Put(SvxColorItem(TextColor, EE_CHAR_COLOR), EE_CHAR_COLOR);
+ aEditAttribs.Put(SvxColorItem(TextColor, EE_CHAR_COLOR));
// FontAttr
if (pHeadFootLine->LogFont.lfWeight != fwNormal)
- aEditAttribs.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT), EE_CHAR_WEIGHT);
+ aEditAttribs.Put(SvxWeightItem(WEIGHT_BOLD, EE_CHAR_WEIGHT));
if (pHeadFootLine->LogFont.lfItalic != 0)
- aEditAttribs.Put(SvxPostureItem(ITALIC_NORMAL, EE_CHAR_ITALIC), EE_CHAR_ITALIC);
+ aEditAttribs.Put(SvxPostureItem(ITALIC_NORMAL, EE_CHAR_ITALIC));
if (pHeadFootLine->LogFont.lfUnderline != 0)
- aEditAttribs.Put(SvxUnderlineItem(LINESTYLE_SINGLE, EE_CHAR_UNDERLINE), EE_CHAR_UNDERLINE);
+ aEditAttribs.Put(SvxUnderlineItem(LINESTYLE_SINGLE, EE_CHAR_UNDERLINE));
if (pHeadFootLine->LogFont.lfStrikeOut != 0)
- aEditAttribs.Put(SvxCrossedOutItem(STRIKEOUT_SINGLE, EE_CHAR_STRIKEOUT), EE_CHAR_STRIKEOUT);
+ aEditAttribs.Put(SvxCrossedOutItem(STRIKEOUT_SINGLE, EE_CHAR_STRIKEOUT));
OUString aText( pHeadFootLine->Title, strlen(pHeadFootLine->Title), DEFCHARSET );
aEditEngine.SetText( aText );
aEditEngine.QuickSetAttribs( aEditAttribs, ESelection( 0, 0, 0, aText.getLength() ) );
diff --git a/sc/source/ui/Accessibility/AccessibleText.cxx b/sc/source/ui/Accessibility/AccessibleText.cxx
index 17eb94d2ca80..5c4e0c1a82d1 100644
--- a/sc/source/ui/Accessibility/AccessibleText.cxx
+++ b/sc/source/ui/Accessibility/AccessibleText.cxx
@@ -1427,9 +1427,12 @@ SvxTextForwarder* ScAccessibleHeaderTextData::GetTextForwarder()
rPattern.FillEditItemSet( &aDefaults );
// FillEditItemSet adjusts font height to 1/100th mm,
// but for header/footer twips is needed, as in the PatternAttr:
- aDefaults.Put( rPattern.GetItem(ATTR_FONT_HEIGHT), EE_CHAR_FONTHEIGHT );
- aDefaults.Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CJK );
- aDefaults.Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CTL );
+ std::unique_ptr<SfxPoolItem> pNewItem(rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT));
+ aDefaults.Put( *pNewItem );
+ pNewItem.reset(rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK));
+ aDefaults.Put( *pNewItem );
+ pNewItem.reset(rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL));
+ aDefaults.Put( *pNewItem );
aDefaults.Put( SvxAdjustItem( meAdjust, EE_PARA_JUST ) );
pHdrEngine->SetDefaults( aDefaults );
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 86cf7061fdd5..882dfdd367ae 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -1237,20 +1237,35 @@ void ScTextWnd::StartEditEngine()
static void lcl_ExtendEditFontAttribs( SfxItemSet& rSet )
{
const SfxPoolItem& rFontItem = rSet.Get( EE_CHAR_FONTINFO );
- rSet.Put( rFontItem, EE_CHAR_FONTINFO_CJK );
- rSet.Put( rFontItem, EE_CHAR_FONTINFO_CTL );
+ std::unique_ptr<SfxPoolItem> pNewItem(rFontItem.Clone());
+ pNewItem->SetWhich(EE_CHAR_FONTINFO_CJK);
+ rSet.Put( *pNewItem );
+ pNewItem->SetWhich(EE_CHAR_FONTINFO_CTL);
+ rSet.Put( *pNewItem );
const SfxPoolItem& rHeightItem = rSet.Get( EE_CHAR_FONTHEIGHT );
- rSet.Put( rHeightItem, EE_CHAR_FONTHEIGHT_CJK );
- rSet.Put( rHeightItem, EE_CHAR_FONTHEIGHT_CTL );
+ pNewItem.reset(rHeightItem.Clone());
+ pNewItem->SetWhich(EE_CHAR_FONTHEIGHT_CJK);
+ rSet.Put( *pNewItem );
+ pNewItem->SetWhich(EE_CHAR_FONTHEIGHT_CTL);
+ rSet.Put( *pNewItem );
const SfxPoolItem& rWeightItem = rSet.Get( EE_CHAR_WEIGHT );
- rSet.Put( rWeightItem, EE_CHAR_WEIGHT_CJK );
- rSet.Put( rWeightItem, EE_CHAR_WEIGHT_CTL );
+ pNewItem.reset(rWeightItem.Clone());
+ pNewItem->SetWhich(EE_CHAR_WEIGHT_CJK);
+ rSet.Put( *pNewItem );
+ pNewItem->SetWhich(EE_CHAR_WEIGHT_CTL);
+ rSet.Put( *pNewItem );
const SfxPoolItem& rItalicItem = rSet.Get( EE_CHAR_ITALIC );
- rSet.Put( rItalicItem, EE_CHAR_ITALIC_CJK );
- rSet.Put( rItalicItem, EE_CHAR_ITALIC_CTL );
+ pNewItem.reset(rItalicItem.Clone());
+ pNewItem->SetWhich(EE_CHAR_ITALIC_CJK);
+ rSet.Put( *pNewItem );
+ pNewItem->SetWhich(EE_CHAR_ITALIC_CTL);
+ rSet.Put( *pNewItem );
const SfxPoolItem& rLangItem = rSet.Get( EE_CHAR_LANGUAGE );
- rSet.Put( rLangItem, EE_CHAR_LANGUAGE_CJK );
- rSet.Put( rLangItem, EE_CHAR_LANGUAGE_CTL );
+ pNewItem.reset(rLangItem.Clone());
+ pNewItem->SetWhich(EE_CHAR_LANGUAGE_CJK);
+ rSet.Put( *pNewItem );
+ pNewItem->SetWhich(EE_CHAR_LANGUAGE_CTL);
+ rSet.Put( *pNewItem );
}
static void lcl_ModifyRTLDefaults( SfxItemSet& rSet )
diff --git a/sc/source/ui/dbgui/csvgrid.cxx b/sc/source/ui/dbgui/csvgrid.cxx
index 10ac5464cc4e..e2a8ec2b75e8 100644
--- a/sc/source/ui/dbgui/csvgrid.cxx
+++ b/sc/source/ui/dbgui/csvgrid.cxx
@@ -251,14 +251,23 @@ void ScCsvGrid::InitFonts()
// copy other items from default font
const SfxPoolItem& rWeightItem = aDefSet.Get( EE_CHAR_WEIGHT );
- aDefSet.Put( rWeightItem, EE_CHAR_WEIGHT_CJK );
- aDefSet.Put( rWeightItem, EE_CHAR_WEIGHT_CTL );
+ std::unique_ptr<SfxPoolItem> pNewItem(rWeightItem.Clone());
+ pNewItem->SetWhich(EE_CHAR_WEIGHT_CJK);
+ aDefSet.Put( *pNewItem );
+ pNewItem->SetWhich(EE_CHAR_WEIGHT_CTL);
+ aDefSet.Put( *pNewItem );
const SfxPoolItem& rItalicItem = aDefSet.Get( EE_CHAR_ITALIC );
- aDefSet.Put( rItalicItem, EE_CHAR_ITALIC_CJK );
- aDefSet.Put( rItalicItem, EE_CHAR_ITALIC_CTL );
+ pNewItem.reset(rItalicItem.Clone());
+ pNewItem->SetWhich(EE_CHAR_ITALIC_CJK);
+ aDefSet.Put( *pNewItem );
+ pNewItem->SetWhich(EE_CHAR_ITALIC_CTL);
+ aDefSet.Put( *pNewItem );
const SfxPoolItem& rLangItem = aDefSet.Get( EE_CHAR_LANGUAGE );
- aDefSet.Put( rLangItem, EE_CHAR_LANGUAGE_CJK );
- aDefSet.Put( rLangItem, EE_CHAR_LANGUAGE_CTL );
+ pNewItem.reset(rLangItem.Clone());
+ pNewItem->SetWhich(EE_CHAR_LANGUAGE_CJK);
+ aDefSet.Put( *pNewItem );
+ pNewItem->SetWhich(EE_CHAR_LANGUAGE_CTL);
+ aDefSet.Put( *pNewItem );
mpEditEngine->SetDefaults( aDefSet );
InvalidateGfx();
diff --git a/sc/source/ui/drawfunc/drawsh.cxx b/sc/source/ui/drawfunc/drawsh.cxx
index 200d5a9b8a47..35a063941a35 100644
--- a/sc/source/ui/drawfunc/drawsh.cxx
+++ b/sc/source/ui/drawfunc/drawsh.cxx
@@ -334,11 +334,11 @@ void ScDrawShell::ExecuteMacroAssign( SdrObject* pObj, vcl::Window* pWin )
// create empty itemset for macro-dlg
std::unique_ptr<SfxItemSet> pItemSet(new SfxItemSet(SfxGetpApp()->GetPool(), SID_ATTR_MACROITEM, SID_ATTR_MACROITEM, SID_EVENTCONFIG, SID_EVENTCONFIG, 0 ));
- pItemSet->Put ( aItem, SID_ATTR_MACROITEM );
+ pItemSet->Put ( aItem );
SfxEventNamesItem aNamesItem(SID_EVENTCONFIG);
aNamesItem.AddEvent( ScResId(RID_SCSTR_ONCLICK), OUString(), SFX_EVENT_MOUSECLICK_OBJECT );
- pItemSet->Put( aNamesItem, SID_EVENTCONFIG );
+ pItemSet->Put( aNamesItem );
css::uno::Reference < css::frame::XFrame > xFrame;
if (GetViewShell())
diff --git a/sc/source/ui/pagedlg/tphfedit.cxx b/sc/source/ui/pagedlg/tphfedit.cxx
index 8bccbccd13be..f9eaeac73e0f 100644
--- a/sc/source/ui/pagedlg/tphfedit.cxx
+++ b/sc/source/ui/pagedlg/tphfedit.cxx
@@ -160,9 +160,12 @@ void ScEditWindow::SetFont( const ScPatternAttr& rPattern )
rPattern.FillEditItemSet( pSet );
// FillEditItemSet adjusts font height to 1/100th mm,
// but for header/footer twips is needed, as in the PatternAttr:
- pSet->Put( rPattern.GetItem(ATTR_FONT_HEIGHT), EE_CHAR_FONTHEIGHT );
- pSet->Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CJK );
- pSet->Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CTL );
+ std::unique_ptr<SfxPoolItem> pNewItem(rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT));
+ pSet->Put( *pNewItem );
+ pNewItem.reset(rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK));
+ pSet->Put( *pNewItem );
+ pNewItem.reset(rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL));
+ pSet->Put( *pNewItem );
if (mbRTL)
pSet->Put( SvxAdjustItem( SVX_ADJUST_RIGHT, EE_PARA_JUST ) );
pEdEngine->SetDefaults( pSet );
diff --git a/sc/source/ui/unoobj/textuno.cxx b/sc/source/ui/unoobj/textuno.cxx
index 3c9cbf318a66..67e2acb578b7 100644
--- a/sc/source/ui/unoobj/textuno.cxx
+++ b/sc/source/ui/unoobj/textuno.cxx
@@ -221,9 +221,12 @@ SvxTextForwarder* ScHeaderFooterTextData::GetTextForwarder()
rPattern.FillEditItemSet( &aDefaults );
// FillEditItemSet adjusts font height to 1/100th mm,
// but for header/footer twips is needed, as in the PatternAttr:
- aDefaults.Put( rPattern.GetItem(ATTR_FONT_HEIGHT), EE_CHAR_FONTHEIGHT );
- aDefaults.Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CJK );
- aDefaults.Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CTL );
+ std::unique_ptr<SfxPoolItem> pNewItem( rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT) );
+ aDefaults.Put( *pNewItem );
+ pNewItem.reset( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK) );
+ aDefaults.Put( *pNewItem );
+ pNewItem.reset( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL) );
+ aDefaults.Put( *pNewItem );
pHdrEngine->SetDefaults( aDefaults );
ScHeaderFieldData aData;
diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index b7af7e0ec8ae..3fb44d5bebae 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -2183,7 +2183,8 @@ void ScFormatShell::GetAttrState( SfxItemSet& rSet )
break;
case SID_ATTR_BRUSH:
{
- rSet.Put( rBrushItem, GetPool().GetWhich(nWhich) );
+ std::unique_ptr<SfxPoolItem> pNewItem(rBrushItem.CloneSetWhich(GetPool().GetWhich(nWhich)));
+ rSet.Put( *pNewItem );
}
break;
}
diff --git a/sc/source/ui/view/printfun.cxx b/sc/source/ui/view/printfun.cxx
index 292b9d1de392..a1ec9e6a7ed1 100644
--- a/sc/source/ui/view/printfun.cxx
+++ b/sc/source/ui/view/printfun.cxx
@@ -1701,9 +1701,12 @@ void ScPrintFunc::MakeEditEngine()
rPattern.FillEditItemSet( pEditDefaults );
// FillEditItemSet adjusts font height to 1/100th mm,
// but for header/footer twips is needed, as in the PatternAttr:
- pEditDefaults->Put( rPattern.GetItem(ATTR_FONT_HEIGHT), EE_CHAR_FONTHEIGHT );
- pEditDefaults->Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CJK );
- pEditDefaults->Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT), EE_CHAR_FONTHEIGHT_CTL );
+ std::unique_ptr<SfxPoolItem> pNewItem(rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT));
+ pEditDefaults->Put( *pNewItem );
+ pNewItem.reset(rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK));
+ pEditDefaults->Put( *pNewItem );
+ pNewItem.reset(rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL));
+ pEditDefaults->Put( *pNewItem );
// don't use font color, because background color is not used
//! there's no way to set the background for note pages
pEditDefaults->ClearItem( EE_CHAR_COLOR );
diff --git a/sc/source/ui/view/viewutil.cxx b/sc/source/ui/view/viewutil.cxx
index 3b289998cf32..958a0424f339 100644
--- a/sc/source/ui/view/viewutil.cxx
+++ b/sc/source/ui/view/viewutil.cxx
@@ -64,7 +64,10 @@ void ScViewUtil::PutItemScript( SfxItemSet& rShellSet, const SfxItemSet& rCoreSe
aSetItem.GetItemSet().PutExtended( rCoreSet, SfxItemState::DONTCARE, SfxItemState::SET );
const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScript );
if (pI)
- rShellSet.Put( *pI, nWhichId );
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhichId));
+ rShellSet.Put( *pNewItem );
+ }
else
rShellSet.InvalidateItem( nWhichId );
}
diff --git a/sd/source/ui/dlg/dlgolbul.cxx b/sd/source/ui/dlg/dlgolbul.cxx
index 89ee17d726e3..4fbeeb673a6b 100644
--- a/sd/source/ui/dlg/dlgolbul.cxx
+++ b/sd/source/ui/dlg/dlgolbul.cxx
@@ -106,7 +106,8 @@ OutlineBulletDlg::OutlineBulletDlg(
DBG_ASSERT( pItem, "No EE_PARA_NUMBULLET in Pool! [CL]" );
- aInputSet.Put(*pItem, EE_PARA_NUMBULLET);
+ std::unique_ptr<SfxPoolItem> pNewItem(pItem->CloneSetWhich(EE_PARA_NUMBULLET));
+ aInputSet.Put(*pNewItem);
}
if(bTitle && aInputSet.GetItemState(EE_PARA_NUMBULLET) == SfxItemState::SET )
diff --git a/sd/source/ui/func/fubullet.cxx b/sd/source/ui/func/fubullet.cxx
index 6ff754acd531..666952a9ebf6 100644
--- a/sd/source/ui/func/fubullet.cxx
+++ b/sd/source/ui/func/fubullet.cxx
@@ -266,8 +266,10 @@ void FuBullet::InsertSpecialCharacter( SfxRequest& rReq )
aFont.GetCharSet(),
EE_CHAR_FONTINFO);
aSet.Put(aFontItem);
- aSet.Put(aFontItem, EE_CHAR_FONTINFO_CJK);
- aSet.Put(aFontItem, EE_CHAR_FONTINFO_CTL);
+ aFontItem.SetWhich(EE_CHAR_FONTINFO_CJK);
+ aSet.Put(aFontItem);
+ aFontItem.SetWhich(EE_CHAR_FONTINFO_CTL);
+ aSet.Put(aFontItem);
pOV->SetAttribs(aSet);
ESelection aSel = pOV->GetSelection();
diff --git a/sd/source/ui/func/fuolbull.cxx b/sd/source/ui/func/fuolbull.cxx
index a67537f6053c..064c6b85ea7a 100644
--- a/sd/source/ui/func/fuolbull.cxx
+++ b/sd/source/ui/func/fuolbull.cxx
@@ -269,7 +269,7 @@ void FuOutlineBullet::SetCurrentBulletsNumbering(SfxRequest& rReq)
if ( bInMasterView )
{
SfxItemSet aSetAttr( mpViewShell->GetPool(), EE_ITEMS_START, EE_ITEMS_END );
- aSetAttr.Put(SvxNumBulletItem( *pNumRule ), nNumItemId);
+ aSetAttr.Put(SvxNumBulletItem( *pNumRule, nNumItemId ));
mpView->SetAttributes(aSetAttr);
}
@@ -344,7 +344,8 @@ const SfxPoolItem* FuOutlineBullet::GetNumBulletItem(SfxItemSet& aNewAttr, sal_u
//DBG_ASSERT( pItem, "No EE_PARA_NUMBULLET in the Pool!" );
- aNewAttr.Put(*pItem, EE_PARA_NUMBULLET);
+ std::unique_ptr<SfxPoolItem> pNewItem(pItem->CloneSetWhich(EE_PARA_NUMBULLET));
+ aNewAttr.Put(*pNewItem);
if(bTitle && aNewAttr.GetItemState(EE_PARA_NUMBULLET) == SfxItemState::SET )
{
diff --git a/sd/source/ui/view/drtxtob.cxx b/sd/source/ui/view/drtxtob.cxx
index 25e0e44f39ab..237a451c007e 100644
--- a/sd/source/ui/view/drtxtob.cxx
+++ b/sd/source/ui/view/drtxtob.cxx
@@ -215,11 +215,13 @@ void TextObjectBar::GetAttrState( SfxItemSet& rSet )
{
SvxFontHeightItem aFontItem = dynamic_cast<const SvxFontHeightItem&>(*pI);
aFontItem.SetHeight(aFontItem.GetHeight(), stretchX, aFontItem.GetPropUnit());
- aAttrSet.Put( aFontItem, nWhich );
+ aFontItem.SetWhich(nWhich);
+ aAttrSet.Put( aFontItem );
}
else
{
- aAttrSet.Put( *pI, nWhich );
+ std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhich));
+ aAttrSet.Put( *pNewItem );
}
}
else
diff --git a/sd/source/ui/view/drviews9.cxx b/sd/source/ui/view/drviews9.cxx
index 1678b78b256d..2e0b5dbb7a6b 100644
--- a/sd/source/ui/view/drviews9.cxx
+++ b/sd/source/ui/view/drviews9.cxx
@@ -219,7 +219,9 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
if (CHECK_RANGE (drawing::FillStyle_NONE, (sal_Int32)pFillStyle->GetValue (), drawing::FillStyle_BITMAP))
{
pAttr->ClearItem (XATTR_FILLSTYLE);
- pAttr->Put (XFillStyleItem ((drawing::FillStyle) pFillStyle->GetValue ()), XATTR_FILLSTYLE);
+ XFillStyleItem aStyleItem((drawing::FillStyle) pFillStyle->GetValue ());
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put (aStyleItem);
rBindings.Invalidate (SID_ATTR_FILL_STYLE);
rBindings.Invalidate (SID_ATTR_PAGE_FILLSTYLE);
}
@@ -242,7 +244,9 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
if (CHECK_RANGE (drawing::LineStyle_NONE, (sal_Int32)pLineStyle->GetValue (), drawing::LineStyle_DASH))
{
pAttr->ClearItem (XATTR_LINESTYLE);
- pAttr->Put (XLineStyleItem ((drawing::LineStyle) pLineStyle->GetValue ()), XATTR_LINESTYLE);
+ XLineStyleItem aStyleItem((drawing::LineStyle) pLineStyle->GetValue());
+ aStyleItem.SetWhich(XATTR_LINESTYLE);
+ pAttr->Put(aStyleItem);
rBindings.Invalidate (SID_ATTR_LINE_STYLE);
}
#if HAVE_FEATURE_SCRIPTING
@@ -262,7 +266,9 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
{
const SfxUInt32Item* pLineWidth = rReq.GetArg<SfxUInt32Item>(ID_VAL_WIDTH);
pAttr->ClearItem (XATTR_LINEWIDTH);
- pAttr->Put (XLineWidthItem (pLineWidth->GetValue ()), XATTR_LINEWIDTH);
+ XLineWidthItem aWidthItem(pLineWidth->GetValue());
+ aWidthItem.SetWhich(XATTR_LINEWIDTH);
+ pAttr->Put(aWidthItem);
rBindings.Invalidate (SID_ATTR_LINE_WIDTH);
break;
}
@@ -281,11 +287,11 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
pAttr->ClearItem (XATTR_FILLCOLOR);
pAttr->ClearItem (XATTR_FILLSTYLE);
- pAttr->Put (XFillColorItem (-1, Color ((sal_uInt8) pRed->GetValue (),
+ XFillColorItem aColorItem(-1, Color ((sal_uInt8) pRed->GetValue (),
(sal_uInt8) pGreen->GetValue (),
- (sal_uInt8) pBlue->GetValue ())),
- XATTR_FILLCOLOR);
- pAttr->Put (XFillStyleItem (drawing::FillStyle_SOLID), XATTR_FILLSTYLE);
+ (sal_uInt8) pBlue->GetValue ()));
+ aColorItem.SetWhich(XATTR_FILLCOLOR);
+ pAttr->Put(aColorItem);
rBindings.Invalidate (SID_ATTR_FILL_COLOR);
rBindings.Invalidate (SID_ATTR_PAGE_COLOR);
rBindings.Invalidate (SID_ATTR_FILL_STYLE);
@@ -306,10 +312,11 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
const SfxUInt32Item* pBlue = rReq.GetArg<SfxUInt32Item>(ID_VAL_BLUE);
pAttr->ClearItem (XATTR_LINECOLOR);
- pAttr->Put (XLineColorItem (-1, Color ((sal_uInt8) pRed->GetValue (),
- (sal_uInt8) pGreen->GetValue (),
- (sal_uInt8) pBlue->GetValue ())),
- XATTR_LINECOLOR);
+ XLineColorItem aColorItem(-1, Color((sal_uInt8) pRed->GetValue(),
+ (sal_uInt8) pGreen->GetValue(),
+ (sal_uInt8) pBlue->GetValue()));
+ aColorItem.SetWhich(XATTR_LINECOLOR);
+ pAttr->Put(aColorItem);
rBindings.Invalidate (SID_ATTR_LINE_COLOR);
break;
}
@@ -349,8 +356,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
if (rReq.GetSlot () == SID_SETGRADSTARTCOLOR) aGradient.SetStartColor (aColor);
else aGradient.SetEndColor (aColor);
- pAttr->Put (XFillStyleItem (drawing::FillStyle_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), aGradient), XATTR_FILLGRADIENT);
+ XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillGradientItem aGradientItem(pName->GetValue (), aGradient);
+ aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+ pAttr->Put(aGradientItem);
break;
}
}
@@ -367,8 +378,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
GetDoc()->GetGradientList ()->Insert (new XGradientEntry (aGradient, pName->GetValue ()));
- pAttr->Put (XFillStyleItem (drawing::FillStyle_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), aGradient), XATTR_FILLGRADIENT);
+ XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillGradientItem aGradientItem(pName->GetValue(), aGradient);
+ aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+ pAttr->Put(aGradientItem);
}
rBindings.Invalidate (SID_ATTR_FILL_STYLE);
@@ -411,8 +426,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
aHatch.SetColor (aColor);
- pAttr->Put (XFillStyleItem (drawing::FillStyle_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), aHatch), XATTR_FILLHATCH);
+ XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillHatchItem aHatchItem(pName->GetValue(), aHatch);
+ aHatchItem.SetWhich(XATTR_FILLHATCH);
+ pAttr->Put(aHatchItem);
break;
}
}
@@ -423,8 +442,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
GetDoc()->GetHatchList ()->Insert (new XHatchEntry (aHatch, pName->GetValue ()));
- pAttr->Put (XFillStyleItem (drawing::FillStyle_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), aHatch), XATTR_FILLHATCH);
+ XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillHatchItem aHatchItem(pName->GetValue (), aHatch);
+ aHatchItem.SetWhich(XATTR_FILLHATCH);
+ pAttr->Put(aHatchItem);
}
rBindings.Invalidate (SID_ATTR_FILL_HATCH);
@@ -473,8 +496,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
else
pDashList->Insert (pEntry);
- pAttr->Put (XLineDashItem (pName->GetValue (), aNewDash), XATTR_LINEDASH);
- pAttr->Put (XLineStyleItem (drawing::LineStyle_DASH), XATTR_LINESTYLE);
+ XLineDashItem aDashItem(pName->GetValue(), aNewDash);
+ aDashItem.SetWhich(XATTR_LINEDASH);
+ pAttr->Put(aDashItem);
+ XLineStyleItem aStyleItem(drawing::LineStyle_DASH);
+ aStyleItem.SetWhich(XATTR_LINESTYLE);
+ pAttr->Put(aStyleItem);
rBindings.Invalidate (SID_ATTR_LINE_DASH);
rBindings.Invalidate (SID_ATTR_FILL_STYLE);
}
@@ -533,8 +560,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
aGradient.SetStartIntens ((short) pStart->GetValue ());
aGradient.SetEndIntens ((short) pEnd->GetValue ());
- pAttr->Put (XFillStyleItem (drawing::FillStyle_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), aGradient), XATTR_FILLGRADIENT);
+ XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillGradientItem aGradientItem(pName->GetValue (), aGradient);
+ aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+ pAttr->Put(aGradientItem);
break;
}
}
@@ -548,8 +579,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
(short) pStart->GetValue (), (short) pEnd->GetValue ());
pGradientList->Insert (new XGradientEntry (aGradient, pName->GetValue ()));
- pAttr->Put (XFillStyleItem (drawing::FillStyle_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), aGradient), XATTR_FILLGRADIENT);
+ XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillGradientItem aGradientItem(pName->GetValue (), aGradient);
+ aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+ pAttr->Put(aGradientItem);;
}
rBindings.Invalidate (SID_ATTR_FILL_GRADIENT);
@@ -599,8 +634,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
aHatch.SetDistance (pDistance->GetValue ());
aHatch.SetAngle (pAngle->GetValue () * 10);
- pAttr->Put (XFillStyleItem (drawing::FillStyle_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), aHatch), XATTR_FILLHATCH);
+ XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillHatchItem aHatchItem(pName->GetValue (), aHatch);
+ aHatchItem.SetWhich(XATTR_FILLHATCH);
+ pAttr->Put(aHatchItem);
break;
}
}
@@ -612,8 +651,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
pAngle->GetValue () * 10);
pHatchList->Insert (new XHatchEntry (aHatch, pName->GetValue ()));
- pAttr->Put (XFillStyleItem (drawing::FillStyle_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), aHatch), XATTR_FILLHATCH);
+ XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillHatchItem aHatchItem(pName->GetValue (), aHatch);
+ aHatchItem.SetWhich(XATTR_FILLHATCH);
+ pAttr->Put(aHatchItem);
}
rBindings.Invalidate (SID_ATTR_FILL_HATCH);
@@ -648,9 +691,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
{
pAttr->ClearItem (XATTR_FILLGRADIENT);
pAttr->ClearItem (XATTR_FILLSTYLE);
- pAttr->Put (XFillStyleItem (drawing::FillStyle_GRADIENT), XATTR_FILLSTYLE);
- pAttr->Put (XFillGradientItem (pName->GetValue (), pEntry->GetGradient ()), XATTR_FILLGRADIENT);
-
+ XFillStyleItem aStyleItem(drawing::FillStyle_GRADIENT);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillGradientItem aGradientItem(pName->GetValue (), pEntry->GetGradient ());
+ aGradientItem.SetWhich(XATTR_FILLGRADIENT);
+ pAttr->Put(aGradientItem);
rBindings.Invalidate (SID_ATTR_FILL_GRADIENT);
rBindings.Invalidate (SID_ATTR_PAGE_GRADIENT);
rBindings.Invalidate (SID_ATTR_FILL_STYLE);
@@ -685,8 +731,12 @@ void DrawViewShell::AttrExec (SfxRequest &rReq)
{
pAttr->ClearItem (XATTR_FILLHATCH);
pAttr->ClearItem (XATTR_FILLSTYLE);
- pAttr->Put (XFillStyleItem (drawing::FillStyle_HATCH), XATTR_FILLSTYLE);
- pAttr->Put (XFillHatchItem (pName->GetValue (), pEntry->GetHatch ()), XATTR_FILLHATCH);
+ XFillStyleItem aStyleItem(drawing::FillStyle_HATCH);
+ aStyleItem.SetWhich(XATTR_FILLSTYLE);
+ pAttr->Put(aStyleItem);
+ XFillHatchItem aHatchItem(pName->GetValue (), pEntry->GetHatch ());
+ aHatchItem.SetWhich(XATTR_FILLHATCH);
+ pAttr->Put(aHatchItem);
rBindings.Invalidate (SID_ATTR_FILL_HATCH);
rBindings.Invalidate (SID_ATTR_PAGE_HATCH);
diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx
index f76536beb97a..07c238254854 100644
--- a/sd/source/ui/view/viewshel.cxx
+++ b/sd/source/ui/view/viewshel.cxx
@@ -920,7 +920,8 @@ const SfxPoolItem* ViewShell::GetNumBulletItem(SfxItemSet& aNewAttr, sal_uInt16&
if( pItem == nullptr )
pItem = static_cast<const SvxNumBulletItem*>( aNewAttr.GetPool()->GetSecondaryPool()->GetPoolDefaultItem(EE_PARA_NUMBULLET) );
- aNewAttr.Put(*pItem, EE_PARA_NUMBULLET);
+ std::unique_ptr<SfxPoolItem> pNewItem(pItem->CloneSetWhich(EE_PARA_NUMBULLET));
+ aNewAttr.Put(*pNewItem);
if(bTitle && aNewAttr.GetItemState(EE_PARA_NUMBULLET) == SfxItemState::SET )
{
diff --git a/svl/source/items/itemprop.cxx b/svl/source/items/itemprop.cxx
index 2fe99b544210..639c1f357153 100644
--- a/svl/source/items/itemprop.cxx
+++ b/svl/source/items/itemprop.cxx
@@ -251,7 +251,7 @@ void SfxItemPropertySet::setPropertyValue( const SfxItemPropertySimpleEntry& rEn
throw IllegalArgumentException();
}
// apply new item
- rSet.Put( *pNewItem, rEntry.nWID );
+ rSet.Put( *pNewItem );
}
}
diff --git a/svl/source/items/poolitem.cxx b/svl/source/items/poolitem.cxx
index 4c3bb3415e1b..c5595615d2d2 100644
--- a/svl/source/items/poolitem.cxx
+++ b/svl/source/items/poolitem.cxx
@@ -195,6 +195,15 @@ void SfxPoolItem::dumpAsXml(xmlTextWriterPtr pWriter) const
xmlTextWriterWriteAttribute(pWriter, BAD_CAST("whichId"), BAD_CAST(OString::number(Which()).getStr()));
xmlTextWriterEndElement(pWriter);
}
+
+SfxPoolItem* SfxPoolItem::CloneSetWhich( sal_uInt16 nNewWhich ) const
+{
+ SfxPoolItem* pItem = Clone();
+ pItem->SetWhich(nNewWhich);
+ return pItem;
+}
+
+
SfxPoolItem* SfxVoidItem::CreateDefault()
{
return new SfxVoidItem(0);
diff --git a/svx/source/dialog/imapwnd.cxx b/svx/source/dialog/imapwnd.cxx
index 3adfe2828d3c..6d38b347e55a 100644
--- a/svx/source/dialog/imapwnd.cxx
+++ b/svx/source/dialog/imapwnd.cxx
@@ -652,7 +652,7 @@ void IMapWindow::DoMacroAssign()
SvxMacroItem aMacroItem(SID_ATTR_MACROITEM);
IMapObject* pIMapObj = GetIMapObj( pSdrObj );
aMacroItem.SetMacroTable( pIMapObj->GetMacroTable() );
- aSet.Put( aMacroItem, SID_ATTR_MACROITEM );
+ aSet.Put( aMacroItem );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
std::unique_ptr<SfxAbstractDialog> pMacroDlg(pFact->CreateSfxDialog( this, aSet, mxDocumentFrame, SID_EVENTCONFIG ));
diff --git a/svx/source/unodraw/UnoNameItemTable.cxx b/svx/source/unodraw/UnoNameItemTable.cxx
index 1ecba10f7180..7107b9d16d31 100644
--- a/svx/source/unodraw/UnoNameItemTable.cxx
+++ b/svx/source/unodraw/UnoNameItemTable.cxx
@@ -85,7 +85,8 @@ void SAL_CALL SvxUnoNameItemTable::ImplInsertByName( const OUString& aName, cons
std::unique_ptr<NameOrIndex> pNewItem(createItem());
pNewItem->SetName( aName );
pNewItem->PutValue( aElement, mnMemberId );
- maItemSetVector.back()->Put( *pNewItem, mnWhich );
+ pNewItem->SetWhich(mnWhich);
+ maItemSetVector.back()->Put( *pNewItem );
}
// XNameContainer
diff --git a/svx/source/unodraw/unomtabl.cxx b/svx/source/unodraw/unomtabl.cxx
index dc2eb3c808a8..5ed42a790cc2 100644
--- a/svx/source/unodraw/unomtabl.cxx
+++ b/svx/source/unodraw/unomtabl.cxx
@@ -151,17 +151,17 @@ void SAL_CALL SvxUnoMarkerTable::ImplInsertByName( const OUString& aName, const
SfxItemSet* pInSet = new SfxItemSet( *mpModelPool, XATTR_LINESTART, XATTR_LINEEND );
maItemSetVector.push_back( pInSet );
- XLineEndItem aEndMarker;
+ XLineEndItem aEndMarker(XATTR_LINEEND);
aEndMarker.SetName( aName );
aEndMarker.PutValue( aElement, 0 );
- pInSet->Put( aEndMarker, XATTR_LINEEND );
+ pInSet->Put( aEndMarker );
- XLineStartItem aStartMarker;
+ XLineStartItem aStartMarker(XATTR_LINESTART);
aStartMarker.SetName( aName );
aStartMarker.PutValue( aElement, 0 );
- pInSet->Put( aStartMarker, XATTR_LINESTART );
+ pInSet->Put( aStartMarker );
}
// XNameContainer
@@ -228,18 +228,18 @@ void SAL_CALL SvxUnoMarkerTable::replaceByName( const OUString& aApiName, const
const NameOrIndex *pItem = static_cast<const NameOrIndex *>(&((*aIter)->Get( XATTR_LINEEND ) ));
if( pItem->GetName() == aName )
{
- XLineEndItem aEndMarker;
+ XLineEndItem aEndMarker(XATTR_LINEEND);
aEndMarker.SetName( aName );
if( !aEndMarker.PutValue( aElement, 0 ) )
throw lang::IllegalArgumentException();
- (*aIter)->Put( aEndMarker, XATTR_LINEEND );
+ (*aIter)->Put( aEndMarker );
- XLineStartItem aStartMarker;
+ XLineStartItem aStartMarker(XATTR_LINESTART);
aStartMarker.SetName( aName );
aStartMarker.PutValue( aElement, 0 );
- (*aIter)->Put( aStartMarker, XATTR_LINESTART );
+ (*aIter)->Put( aStartMarker );
return;
}
++aIter;
diff --git a/sw/source/core/attr/swatrset.cxx b/sw/source/core/attr/swatrset.cxx
index 2f88ebf0bed3..2b8ab0f94b36 100644
--- a/sw/source/core/attr/swatrset.cxx
+++ b/sw/source/core/attr/swatrset.cxx
@@ -178,7 +178,7 @@ SfxItemSet* SwAttrSet::Clone( bool bItems, SfxItemPool *pToPool ) const
{
const SfxPoolItem* pItem;
if ( SfxItemState::SET == GetItemState( nWhich, false, &pItem ) )
- pTmpSet->Put( *pItem, pItem->Which() );
+ pTmpSet->Put( *pItem );
nWhich = aIter.NextWhich();
}
}
diff --git a/sw/source/core/doc/poolfmt.cxx b/sw/source/core/doc/poolfmt.cxx
index 4c812b51d657..c780f811aa6e 100644
--- a/sw/source/core/doc/poolfmt.cxx
+++ b/sw/source/core/doc/poolfmt.cxx
@@ -102,9 +102,15 @@ void SetAllScriptItem( SfxItemSet& rSet, const SfxPoolItem& rItem )
}
if( nWhCJK )
- rSet.Put( rItem, nWhCJK );
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(rItem.CloneSetWhich(nWhCJK));
+ rSet.Put( *pNewItem );
+ }
if( nWhCTL )
- rSet.Put( rItem, nWhCTL );
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(rItem.CloneSetWhich(nWhCTL));
+ rSet.Put( *pNewItem );
+ }
}
/// Return the AutoCollection by its Id. If it doesn't
diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx
index c27194c40ee4..6c55d0b8304f 100644
--- a/sw/source/core/doc/tblafmt.cxx
+++ b/sw/source/core/doc/tblafmt.cxx
@@ -779,9 +779,12 @@ void SwTableAutoFormat::UpdateToSet(sal_uInt8 nPos, SfxItemSet& rSet,
}
else
{
- rSet.Put( rChg.GetHeight(), RES_CHRATR_CJK_FONTSIZE );
- rSet.Put( rChg.GetWeight(), RES_CHRATR_CJK_WEIGHT );
- rSet.Put( rChg.GetPosture(), RES_CHRATR_CJK_POSTURE );
+ std::unique_ptr<SfxPoolItem> pNewItem(rChg.GetHeight().CloneSetWhich(RES_CHRATR_CJK_FONTSIZE));
+ rSet.Put( *pNewItem);
+ pNewItem.reset(rChg.GetWeight().CloneSetWhich(RES_CHRATR_CJK_WEIGHT));
+ rSet.Put( *pNewItem);
+ pNewItem.reset(rChg.GetPosture().CloneSetWhich(RES_CHRATR_CJK_POSTURE));
+ rSet.Put( *pNewItem);
}
// do not insert empty CTL font
const SvxFontItem& rCTLFont = rChg.GetCTLFont();
@@ -794,9 +797,12 @@ void SwTableAutoFormat::UpdateToSet(sal_uInt8 nPos, SfxItemSet& rSet,
}
else
{
- rSet.Put( rChg.GetHeight(), RES_CHRATR_CTL_FONTSIZE );
- rSet.Put( rChg.GetWeight(), RES_CHRATR_CTL_WEIGHT );
- rSet.Put( rChg.GetPosture(), RES_CHRATR_CTL_POSTURE );
+ std::unique_ptr<SfxPoolItem> pNewItem(rChg.GetHeight().CloneSetWhich(RES_CHRATR_CTL_FONTSIZE));
+ rSet.Put( *pNewItem);
+ pNewItem.reset(rChg.GetWeight().CloneSetWhich(RES_CHRATR_CTL_WEIGHT));
+ rSet.Put( *pNewItem);
+ pNewItem.reset(rChg.GetPosture().CloneSetWhich(RES_CHRATR_CTL_POSTURE));
+ rSet.Put( *pNewItem);
}
rSet.Put( rChg.GetUnderline() );
rSet.Put( rChg.GetOverline() );
diff --git a/sw/source/filter/ascii/parasc.cxx b/sw/source/filter/ascii/parasc.cxx
index 852b5b5432f0..8857990cbf33 100644
--- a/sw/source/filter/ascii/parasc.cxx
+++ b/sw/source/filter/ascii/parasc.cxx
@@ -108,8 +108,10 @@ SwASCIIParser::SwASCIIParser(SwDoc* pD, const SwPaM& rCursor, SvStream& rIn,
SvxLanguageItem aLang( (LanguageType)rOpt.GetLanguage(),
RES_CHRATR_LANGUAGE );
pItemSet->Put( aLang );
- pItemSet->Put( aLang, RES_CHRATR_CJK_LANGUAGE );
- pItemSet->Put( aLang, RES_CHRATR_CTL_LANGUAGE );
+ aLang.SetWhich(RES_CHRATR_CJK_LANGUAGE);
+ pItemSet->Put( aLang );
+ aLang.SetWhich(RES_CHRATR_CTL_LANGUAGE);
+ pItemSet->Put( aLang );
}
if( !rOpt.GetFontName().isEmpty() )
{
@@ -119,8 +121,10 @@ SwASCIIParser::SwASCIIParser(SwDoc* pD, const SwPaM& rCursor, SvStream& rIn,
SvxFontItem aFont( aTextFont.GetFamilyType(), aTextFont.GetFamilyName(),
OUString(), aTextFont.GetPitch(), aTextFont.GetCharSet(), RES_CHRATR_FONT );
pItemSet->Put( aFont );
- pItemSet->Put( aFont, RES_CHRATR_CJK_FONT );
- pItemSet->Put( aFont, RES_CHRATR_CTL_FONT );
+ aFont.SetWhich(RES_CHRATR_CJK_FONT);
+ pItemSet->Put( aFont );
+ aFont.SetWhich(RES_CHRATR_CTL_FONT);
+ pItemSet->Put( aFont );
}
}
diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index 0fe0bf5287cf..37cb677378e2 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -1864,7 +1864,7 @@ void SwWW8ImplReader::MatchSdrItemsIntoFlySet( SdrObject* pSdrObj,
}
if (bBrushItemOk)
- rFlySet.Put(aBrushItem, RES_BACKGROUND);
+ rFlySet.Put(aBrushItem);
}
void SwWW8ImplReader::AdjustLRWrapForWordMargins(
diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx
index c1babe196bbf..f97036d88dfd 100644
--- a/sw/source/ui/dbui/dbinsdlg.cxx
+++ b/sw/source/ui/dbui/dbinsdlg.cxx
@@ -670,8 +670,10 @@ IMPL_LINK_TYPED( SwInsertDBColAutoPilot, TableFormatHdl, Button*, pButton, void
SvxBrushItem aBrush( RES_BACKGROUND );
pTableSet->Put( aBrush );
- pTableSet->Put( aBrush, SID_ATTR_BRUSH_ROW );
- pTableSet->Put( aBrush, SID_ATTR_BRUSH_TABLE );
+ aBrush.SetWhich(SID_ATTR_BRUSH_ROW);
+ pTableSet->Put( aBrush );
+ aBrush.SetWhich(SID_ATTR_BRUSH_TABLE);
+ pTableSet->Put( aBrush );
SvxBoxInfoItem aBoxInfo( SID_ATTR_BORDER_INNER );
// table variant, when multiple table cells are selected
diff --git a/sw/source/ui/frmdlg/wrap.cxx b/sw/source/ui/frmdlg/wrap.cxx
index e738e7ca04ab..d20fa3b880ae 100644
--- a/sw/source/ui/frmdlg/wrap.cxx
+++ b/sw/source/ui/frmdlg/wrap.cxx
@@ -360,7 +360,7 @@ bool SwWrapTabPage::FillItemSet(SfxItemSet *rSet)
if(nullptr == (pOldItem = GetOldItem(*rSet, RES_UL_SPACE)) ||
aUL != *pOldItem )
{
- rSet->Put( aUL, RES_UL_SPACE );
+ rSet->Put( aUL );
bModified = true;
}
}
@@ -377,7 +377,7 @@ bool SwWrapTabPage::FillItemSet(SfxItemSet *rSet)
if( nullptr == (pOldItem = GetOldItem(*rSet, RES_LR_SPACE)) ||
aLR != *pOldItem )
{
- rSet->Put(aLR, RES_LR_SPACE);
+ rSet->Put(aLR);
bModified = true;
}
}
diff --git a/sw/source/uibase/app/appopt.cxx b/sw/source/uibase/app/appopt.cxx
index f4f31a2d9fd6..f1c01ee726a8 100644
--- a/sw/source/uibase/app/appopt.cxx
+++ b/sw/source/uibase/app/appopt.cxx
@@ -136,14 +136,17 @@ SfxItemSet* SwModule::CreateItemSet( sal_uInt16 nId )
pRet->Put(SwPtrItem(FN_PARAM_PRINTER, pPrt));
pRet->Put(SwPtrItem(FN_PARAM_WRTSHELL, &rWrtShell));
- pRet->Put(static_cast<const SvxLanguageItem&>(
- rWrtShell.GetDefault(RES_CHRATR_LANGUAGE)), SID_ATTR_LANGUAGE);
+ std::unique_ptr<SfxPoolItem> pNewItem( static_cast<const SvxLanguageItem&>(
+ rWrtShell.GetDefault(RES_CHRATR_LANGUAGE)).CloneSetWhich(SID_ATTR_LANGUAGE) );
+ pRet->Put(*pNewItem);
- pRet->Put(static_cast<const SvxLanguageItem&>(
- rWrtShell.GetDefault(RES_CHRATR_CJK_LANGUAGE)), SID_ATTR_CHAR_CJK_LANGUAGE);
+ pNewItem.reset(static_cast<const SvxLanguageItem&>(
+ rWrtShell.GetDefault(RES_CHRATR_CJK_LANGUAGE)).CloneSetWhich(SID_ATTR_CHAR_CJK_LANGUAGE));
+ pRet->Put(*pNewItem);
- pRet->Put(static_cast<const SvxLanguageItem&>(
- rWrtShell.GetDefault(RES_CHRATR_CTL_LANGUAGE)), SID_ATTR_CHAR_CTL_LANGUAGE);
+ pNewItem.reset(static_cast<const SvxLanguageItem&>(
+ rWrtShell.GetDefault(RES_CHRATR_CTL_LANGUAGE)).CloneSetWhich(SID_ATTR_CHAR_CTL_LANGUAGE));
+ pRet->Put(*pNewItem);
}
else
{
diff --git a/sw/source/uibase/lingu/olmenu.cxx b/sw/source/uibase/lingu/olmenu.cxx
index 0eff29ad9929..d4b1aceea5e2 100644
--- a/sw/source/uibase/lingu/olmenu.cxx
+++ b/sw/source/uibase/lingu/olmenu.cxx
@@ -616,7 +616,7 @@ void SwSpellPopup::checkRedline()
SfxItemSet aSet(pDoc->GetAttrPool(), FN_REDLINE_ACCEPT_DIRECT, FN_REDLINE_PREV_CHANGE);
for (sal_uInt16 nWhich : pRedlineIds)
{
- aSet.Put(SfxVoidItem(nWhich), nWhich);
+ aSet.Put(SfxVoidItem(nWhich));
}
m_pSh->GetView().GetState(aSet);
diff --git a/sw/source/uibase/shells/annotsh.cxx b/sw/source/uibase/shells/annotsh.cxx
index c156d6e5bc47..d9b8d9fba8c6 100644
--- a/sw/source/uibase/shells/annotsh.cxx
+++ b/sw/source/uibase/shells/annotsh.cxx
@@ -366,7 +366,7 @@ void SwAnnotationShell::Exec( SfxRequest &rReq )
aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
else
aItem.SetEscapement( SVX_ESCAPEMENT_SUPERSCRIPT );
- aNewAttr.Put( aItem, EE_CHAR_ESCAPEMENT );
+ aNewAttr.Put( aItem );
}
break;
case FN_SET_SUB_SCRIPT:
@@ -379,7 +379,7 @@ void SwAnnotationShell::Exec( SfxRequest &rReq )
aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
else
aItem.SetEscapement( SVX_ESCAPEMENT_SUBSCRIPT );
- aNewAttr.Put( aItem, EE_CHAR_ESCAPEMENT );
+ aNewAttr.Put( aItem );
}
break;
case SID_HYPERLINK_SETLINK:
@@ -603,7 +603,10 @@ void SwAnnotationShell::Exec( SfxRequest &rReq )
}
if(nEEWhich && pNewAttrs)
- aNewAttr.Put(pNewAttrs->Get(nWhich), nEEWhich);
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pNewAttrs->Get(nWhich).CloneSetWhich(nEEWhich));
+ aNewAttr.Put(*pNewItem);
+ }
Rectangle aNullRect;
Rectangle aOutRect = pOLV->GetOutputArea();
@@ -702,7 +705,10 @@ void SwAnnotationShell::GetState(SfxItemSet& rSet)
aSetItem.GetItemSet().Put( aEditAttr, false );
const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScriptType );
if( pI )
- rSet.Put( *pI, nWhich );
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhich));
+ rSet.Put( *pNewItem );
+ }
else
rSet.InvalidateItem( nWhich );
}
@@ -851,16 +857,17 @@ void SwAnnotationShell::GetState(SfxItemSet& rSet)
if(nEEWhich)
{
- rSet.Put(aEditAttr.Get(nEEWhich), nWhich);
- if(nEEWhich == EE_CHAR_KERNING)
- {
- SfxItemState eState = aEditAttr.GetItemState( EE_CHAR_KERNING );
- if ( eState == SfxItemState::DONTCARE )
+ std::unique_ptr<SfxPoolItem> pNewItem(aEditAttr.Get(nEEWhich).CloneSetWhich(nWhich));
+ rSet.Put(*pNewItem);
+ if(nEEWhich == EE_CHAR_KERNING)
{
- rSet.InvalidateItem(EE_CHAR_KERNING);
+ SfxItemState eState = aEditAttr.GetItemState( EE_CHAR_KERNING );
+ if ( eState == SfxItemState::DONTCARE )
+ {
+ rSet.InvalidateItem(EE_CHAR_KERNING);
+ }
}
}
- }
if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()==SwPostItHelper::DELETED)
rSet.DisableItem( nWhich );
@@ -1774,11 +1781,17 @@ void SwAnnotationShell::InsertSymbol(SfxRequest& rReq)
EE_CHAR_FONTINFO );
SvtScriptType nScriptBreak = g_pBreakIt->GetAllScriptsOfText( sSym );
if( SvtScriptType::LATIN & nScriptBreak )
- aSetFont.Put( aFontItem, EE_CHAR_FONTINFO );
+ aSetFont.Put( aFontItem );
if( SvtScriptType::ASIAN & nScriptBreak )
- aSetFont.Put( aFontItem, EE_CHAR_FONTINFO_CJK );
+ {
+ aFontItem.SetWhich(EE_CHAR_FONTINFO_CJK);
+ aSetFont.Put( aFontItem );
+ }
if( SvtScriptType::COMPLEX & nScriptBreak )
- aSetFont.Put( aFontItem, EE_CHAR_FONTINFO_CTL );
+ {
+ aFontItem.SetWhich(EE_CHAR_FONTINFO_CTL);
+ aSetFont.Put( aFontItem );
+ }
pOLV->SetAttribs(aSetFont);
// Erase selection
diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx
index 03572fcc3809..eb70ed6bb6cb 100644
--- a/sw/source/uibase/shells/basesh.cxx
+++ b/sw/source/uibase/shells/basesh.cxx
@@ -2117,7 +2117,10 @@ void SwBaseShell::GetTextFontCtrlState( SfxItemSet& rSet )
aSetItem.GetItemSet().Put( *pFntCoreSet, false );
const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScriptType );
if( pI )
- rSet.Put( *pI, nWhich );
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhich));
+ rSet.Put( *pNewItem );
+ }
else
rSet.InvalidateItem( nWhich );
// Set input context of the SwEditWin according to the selected font and script type
@@ -2191,13 +2194,14 @@ void SwBaseShell::GetBckColState(SfxItemSet &rSet)
case SID_BACKGROUND_COLOR:
{
SvxColorItem aColorItem(aBrushItem.GetColor(),SID_BACKGROUND_COLOR);
- rSet.Put(aColorItem,SID_BACKGROUND_COLOR);
+ rSet.Put(aColorItem);
break;
}
case SID_ATTR_BRUSH:
case RES_BACKGROUND:
{
- rSet.Put(aBrushItem,GetPool().GetWhich(nWhich));
+ std::unique_ptr<SfxPoolItem> pNewItem(aBrushItem.CloneSetWhich(GetPool().GetWhich(nWhich)));
+ rSet.Put(*pNewItem);
break;
}
}
diff --git a/sw/source/uibase/shells/drwtxtex.cxx b/sw/source/uibase/shells/drwtxtex.cxx
index 4bbd6a958dce..0943a1ffd111 100644
--- a/sw/source/uibase/shells/drwtxtex.cxx
+++ b/sw/source/uibase/shells/drwtxtex.cxx
@@ -297,7 +297,7 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
else
aItem.SetEscapement( SVX_ESCAPEMENT_SUPERSCRIPT );
- aNewAttr.Put( aItem, EE_CHAR_ESCAPEMENT );
+ aNewAttr.Put( aItem );
}
break;
case FN_SET_SUB_SCRIPT:
@@ -310,7 +310,7 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
aItem.SetEscapement( SVX_ESCAPEMENT_OFF );
else
aItem.SetEscapement( SVX_ESCAPEMENT_SUBSCRIPT );
- aNewAttr.Put( aItem, EE_CHAR_ESCAPEMENT );
+ aNewAttr.Put( aItem );
}
break;
@@ -564,7 +564,10 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
return;
}
if(nEEWhich && pNewAttrs)
- aNewAttr.Put(pNewAttrs->Get(nWhich), nEEWhich);
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pNewAttrs->Get(nWhich).CloneSetWhich(nEEWhich));
+ aNewAttr.Put(*pNewItem);
+ }
SetAttrToMarked(aNewAttr);
@@ -891,7 +894,10 @@ void SwDrawTextShell::GetDrawTextCtrlState(SfxItemSet& rSet)
aSetItem.GetItemSet().Put( aEditAttr, false );
const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScriptType );
if( pI )
- rSet.Put( *pI, nWhich );
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhich));
+ rSet.Put( *pNewItem );
+ }
else
rSet.InvalidateItem( nWhich );
}
@@ -941,7 +947,10 @@ void SwDrawTextShell::GetDrawTextCtrlState(SfxItemSet& rSet)
}
}
if(nEEWhich)
- rSet.Put(aEditAttr.Get(nEEWhich), nWhich);
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(aEditAttr.Get(nEEWhich).CloneSetWhich(nWhich));
+ rSet.Put(*pNewItem);
+ }
nWhich = aIter.NextWhich();
}
diff --git a/sw/source/uibase/shells/drwtxtsh.cxx b/sw/source/uibase/shells/drwtxtsh.cxx
index 15fb8fb11aa2..df2dbda4f856 100644
--- a/sw/source/uibase/shells/drwtxtsh.cxx
+++ b/sw/source/uibase/shells/drwtxtsh.cxx
@@ -792,11 +792,17 @@ void SwDrawTextShell::InsertSymbol(SfxRequest& rReq)
EE_CHAR_FONTINFO );
nScript = g_pBreakIt->GetAllScriptsOfText( sSym );
if( SvtScriptType::LATIN & nScript )
- aFontAttribSet.Put( aFontItem, EE_CHAR_FONTINFO );
+ aFontAttribSet.Put( aFontItem );
if( SvtScriptType::ASIAN & nScript )
- aFontAttribSet.Put( aFontItem, EE_CHAR_FONTINFO_CJK );
+ {
+ aFontItem.SetWhich(EE_CHAR_FONTINFO_CJK);
+ aFontAttribSet.Put( aFontItem );
+ }
if( SvtScriptType::COMPLEX & nScript )
- aFontAttribSet.Put( aFontItem, EE_CHAR_FONTINFO_CTL );
+ {
+ aFontItem.SetWhich(EE_CHAR_FONTINFO_CTL);
+ aFontAttribSet.Put( aFontItem );
+ }
pOLV->SetAttribs(aFontAttribSet);
// Remove selection
diff --git a/sw/source/uibase/shells/langhelper.cxx b/sw/source/uibase/shells/langhelper.cxx
index bc9aa3268445..2a328ab9f4ca 100644
--- a/sw/source/uibase/shells/langhelper.cxx
+++ b/sw/source/uibase/shells/langhelper.cxx
@@ -96,7 +96,7 @@ namespace SwLangHelper
// set sequence as status value
SfxStringListItem aItem( SID_LANGUAGE_STATUS );
aItem.SetStringList( aSeq );
- rSet.Put( aItem, SID_LANGUAGE_STATUS );
+ rSet.Put( aItem );
return 0;
}
diff --git a/sw/source/uibase/shells/tabsh.cxx b/sw/source/uibase/shells/tabsh.cxx
index ef4d98abd9a7..ac84b529ed93 100644
--- a/sw/source/uibase/shells/tabsh.cxx
+++ b/sw/source/uibase/shells/tabsh.cxx
@@ -159,16 +159,23 @@ static SwTableRep* lcl_TableParamToItemSet( SfxItemSet& rSet, SwWrtShell &rSh )
rSet.Put(SwBackgroundDestinationItem(SID_BACKGRND_DESTINATION, nBackgroundDestination ));
SvxBrushItem aBrush( RES_BACKGROUND );
if(rSh.GetRowBackground(aBrush))
- rSet.Put( aBrush, SID_ATTR_BRUSH_ROW );
+ {
+ aBrush.SetWhich(SID_ATTR_BRUSH_ROW);
+ rSet.Put( aBrush );
+ }
else
rSet.InvalidateItem(SID_ATTR_BRUSH_ROW);
rSh.GetTabBackground(aBrush);
- rSet.Put( aBrush, SID_ATTR_BRUSH_TABLE );
+ aBrush.SetWhich(SID_ATTR_BRUSH_TABLE);
+ rSet.Put( aBrush );
// text direction in boxes
SvxFrameDirectionItem aBoxDirection( FRMDIR_ENVIRONMENT, RES_FRAMEDIR );
if(rSh.GetBoxDirection( aBoxDirection ))
- rSet.Put(aBoxDirection, FN_TABLE_BOX_TEXTORIENTATION);
+ {
+ aBoxDirection.SetWhich(FN_TABLE_BOX_TEXTORIENTATION);
+ rSet.Put(aBoxDirection);
+ }
bool bSelectAll = rSh.StartsWithTable() && rSh.ExtendedSelectedAll();
bool bTableSel = rSh.IsTableMode() || bSelectAll;
diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx
index fe8b8277bfa5..392e42c1f88a 100644
--- a/sw/source/uibase/shells/textsh.cxx
+++ b/sw/source/uibase/shells/textsh.cxx
@@ -1006,17 +1006,20 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq )
if( SvtScriptType::LATIN & nScript )
{
aRestoreSet.Put( aSet.Get( RES_CHRATR_FONT ) );
- aSet.Put( aNewFontItem, RES_CHRATR_FONT);
+ aNewFontItem.SetWhich(RES_CHRATR_FONT);
+ aSet.Put( aNewFontItem );
}
if( SvtScriptType::ASIAN & nScript )
{
aRestoreSet.Put( aSet.Get( RES_CHRATR_CJK_FONT ) );
- aSet.Put( aNewFontItem, RES_CHRATR_CJK_FONT );
+ aNewFontItem.SetWhich(RES_CHRATR_CJK_FONT);
+ aSet.Put( aNewFontItem );
}
if( SvtScriptType::COMPLEX & nScript )
{
aRestoreSet.Put( aSet.Get( RES_CHRATR_CTL_FONT ) );
- aSet.Put( aNewFontItem, RES_CHRATR_CTL_FONT );
+ aNewFontItem.SetWhich(RES_CHRATR_CTL_FONT);
+ aSet.Put( aNewFontItem );
}
rSh.SetMark();
diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx
index c56621e65f8e..6e7d1645c196 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -1457,7 +1457,7 @@ void SwTextShell::GetState( SfxItemSet &rSet )
// set sequence as status value
SfxStringListItem aItem( SID_LANGUAGE_STATUS );
aItem.SetStringList( aSeq );
- rSet.Put( aItem, SID_LANGUAGE_STATUS );
+ rSet.Put( aItem );
}
break;
@@ -1615,7 +1615,8 @@ void SwTextShell::GetState( SfxItemSet &rSet )
SfxItemSet aSet( GetPool() );
rSh.GetCurAttr( aSet );
const SvxColorItem& aColorItem = static_cast< const SvxColorItem& >( aSet.Get(RES_CHRATR_COLOR) );
- rSet.Put( aColorItem, SID_ATTR_CHAR_COLOR2 );
+ std::unique_ptr<SfxPoolItem> pNewItem(aColorItem.CloneSetWhich(SID_ATTR_CHAR_COLOR2));
+ rSet.Put( *pNewItem );
}
break;
case SID_ATTR_CHAR_COLOR_BACKGROUND:
diff --git a/sw/source/uibase/uiview/formatclipboard.cxx b/sw/source/uibase/uiview/formatclipboard.cxx
index 8ded8620e9dd..cab5e7bbee24 100644
--- a/sw/source/uibase/uiview/formatclipboard.cxx
+++ b/sw/source/uibase/uiview/formatclipboard.cxx
@@ -92,11 +92,15 @@ void lcl_getTableAttributes( SfxItemSet& rSet, SwWrtShell &rSh )
rSh.GetBoxBackground(aBrush);
rSet.Put( aBrush );
if(rSh.GetRowBackground(aBrush))
- rSet.Put( aBrush, SID_ATTR_BRUSH_ROW );
+ {
+ aBrush.SetWhich(SID_ATTR_BRUSH_ROW);
+ rSet.Put( aBrush );
+ }
else
rSet.InvalidateItem(SID_ATTR_BRUSH_ROW);
rSh.GetTabBackground(aBrush);
- rSet.Put( aBrush, SID_ATTR_BRUSH_TABLE );
+ aBrush.SetWhich(SID_ATTR_BRUSH_TABLE);
+ rSet.Put( aBrush );
SvxBoxInfoItem aBoxInfo( SID_ATTR_BORDER_INNER );
rSet.Put(aBoxInfo);
@@ -104,7 +108,10 @@ void lcl_getTableAttributes( SfxItemSet& rSet, SwWrtShell &rSh )
SvxFrameDirectionItem aBoxDirection( FRMDIR_ENVIRONMENT, RES_FRAMEDIR );
if(rSh.GetBoxDirection( aBoxDirection ))
- rSet.Put(aBoxDirection, FN_TABLE_BOX_TEXTORIENTATION);
+ {
+ aBoxDirection.SetWhich(FN_TABLE_BOX_TEXTORIENTATION);
+ rSet.Put(aBoxDirection);
+ }
rSet.Put(SfxUInt16Item(FN_TABLE_SET_VERT_ALIGN, rSh.GetBoxAlign()));
diff --git a/sw/source/uibase/uiview/viewstat.cxx b/sw/source/uibase/uiview/viewstat.cxx
index ecb23027bb46..57230888045c 100644
--- a/sw/source/uibase/uiview/viewstat.cxx
+++ b/sw/source/uibase/uiview/viewstat.cxx
@@ -237,17 +237,24 @@ void SwView::GetState(SfxItemSet &rSet)
break;
case SID_ATTR_LANGUAGE:
{
- rSet.Put(static_cast<const SvxLanguageItem&>(
- m_pWrtShell->GetDefault(RES_CHRATR_LANGUAGE)), SID_ATTR_LANGUAGE);
+ std::unique_ptr<SfxPoolItem> pNewItem(static_cast<const SvxLanguageItem&>(
+ m_pWrtShell->GetDefault(RES_CHRATR_LANGUAGE)).CloneSetWhich(SID_ATTR_LANGUAGE));
+ rSet.Put(*pNewItem);
}
break;
case RES_CHRATR_CJK_LANGUAGE:
- rSet.Put(static_cast<const SvxLanguageItem&>(
- m_pWrtShell->GetDefault(RES_CHRATR_CJK_LANGUAGE)), RES_CHRATR_CJK_LANGUAGE);
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(static_cast<const SvxLanguageItem&>(
+ m_pWrtShell->GetDefault(RES_CHRATR_CJK_LANGUAGE)).CloneSetWhich(RES_CHRATR_CJK_LANGUAGE));
+ rSet.Put(*pNewItem);
+ }
break;
case RES_CHRATR_CTL_LANGUAGE:
- rSet.Put(static_cast<const SvxLanguageItem&>(
- m_pWrtShell->GetDefault(RES_CHRATR_CTL_LANGUAGE)), RES_CHRATR_CTL_LANGUAGE);
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(static_cast<const SvxLanguageItem&>(
+ m_pWrtShell->GetDefault(RES_CHRATR_CTL_LANGUAGE)).CloneSetWhich(RES_CHRATR_CTL_LANGUAGE));
+ rSet.Put(*pNewItem);
+ }
break;
case FN_REDLINE_ON:
rSet.Put( SfxBoolItem( nWhich, GetDocShell()->IsChangeRecording() ) );
@@ -449,7 +456,10 @@ void SwView::GetState(SfxItemSet &rSet)
if(nAlias)
GetViewFrame()->GetDispatcher()->QueryState( nAlias, pState );
if(pState)
- rSet.Put(*pState, nWhich);
+ {
+ std::unique_ptr<SfxPoolItem> pNewItem(pState->CloneSetWhich(nWhich));
+ rSet.Put(*pNewItem);
+ }
else if(!bDraw)
rSet.DisableItem(nWhich);
}
diff --git a/sw/source/uibase/uiview/viewtab.cxx b/sw/source/uibase/uiview/viewtab.cxx
index b4d865c0786a..7ab973dc82e2 100644
--- a/sw/source/uibase/uiview/viewtab.cxx
+++ b/sw/source/uibase/uiview/viewtab.cxx
@@ -1239,7 +1239,8 @@ void SwView::StateTabWin(SfxItemSet& rSet)
m_pHRuler->SetDefTabDist( nDefTabDist );
m_pVRuler->SetDefTabDist( nDefTabDist );
::lcl_EraseDefTabs(aTabStops);
- rSet.Put(aTabStops, nWhich);
+ aTabStops.SetWhich(nWhich);
+ rSet.Put(aTabStops);
}
break;
}
@@ -1535,7 +1536,8 @@ void SwView::StateTabWin(SfxItemSet& rSet)
0, 0, true);
aColItem.Append(aColDesc);
}
- rSet.Put(aColItem, nWhich);
+ aColItem.SetWhich(nWhich);
+ rSet.Put(aColItem);
}
else if ( bFrameSelection || nFrameType & ( FrameTypeFlags::COLUMN | FrameTypeFlags::COLSECT ) )
{
@@ -1589,7 +1591,8 @@ void SwView::StateTabWin(SfxItemSet& rSet)
}
aColItem.SetOrtho(aColItem.CalcOrtho());
- rSet.Put(aColItem, nWhich);
+ aColItem.SetWhich(nWhich);
+ rSet.Put(aColItem);
}
}
else if( bFrameSelection || nFrameType & FrameTypeFlags::FLY_ANY )
@@ -1629,7 +1632,8 @@ void SwView::StateTabWin(SfxItemSet& rSet)
aColItem.SetOrtho(aColItem.CalcOrtho());
- rSet.Put(aColItem, nWhich);
+ aColItem.SetWhich(nWhich);
+ rSet.Put(aColItem);
}
else
rSet.DisableItem(nWhich);
@@ -1682,7 +1686,8 @@ void SwView::StateTabWin(SfxItemSet& rSet)
}
aColItem.SetOrtho(aColItem.CalcOrtho());
- rSet.Put(aColItem, nWhich);
+ aColItem.SetWhich(nWhich);
+ rSet.Put(aColItem);
}
}
else
@@ -1770,7 +1775,8 @@ void SwView::StateTabWin(SfxItemSet& rSet)
false );
aColItem.Append(aColDesc);
- rSet.Put(aColItem, nWhich);
+ aColItem.SetWhich(nWhich);
+ rSet.Put(aColItem);
}
else
rSet.DisableItem(nWhich);