summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArmin Le Grand <Armin.Le.Grand@me.com>2019-04-18 19:25:06 +0200
committerArmin Le Grand <Armin.Le.Grand@me.com>2019-04-25 19:59:04 +0200
commit1e2682235cded9a7cd90e55f0bfc60a1285e9a46 (patch)
tree17457bc49d6faf37270c8a481b94765f58a5f434
parenttdf#117891 base table icons in main window tables (diff)
downloadcore-1e2682235cded9a7cd90e55f0bfc60a1285e9a46.tar.gz
core-1e2682235cded9a7cd90e55f0bfc60a1285e9a46.zip
WIP: Further preparations for deeper Item changes
(1) Migrated all still existing binary load/save stuff in SfxPoolItem to legacy files. Isolated from Item implementations. Adapted all usages. No more methods Create/Store needed, also GetVersion removed (2) Removed operator= for SfxPoolItem. Adapted all usages. Goal ist to handle Items more as Objects ('Object-Oriented') in the sense to move/handle instances, not to copy one instance over another one (which is more and more problematic with hard to copy content as UNO API stuff or similar). This lead to much more usages of std::shared_ptr which correlates well with future plans fr Items (see dev branch). Next logic step will be to also remove copy constructor Linux build and corrections done Fixed Writer test and removed unused defines Fixed another unused m,acro Started to unify the AutoFormat stuff Changes to OUString constructor usages, tests completely No idea why, but SfxStringItem constructor which takes a OUString& now insists of not getting ::OUString's handed in - changed all 'SfxStringItem.*OUString.*".*"' accordingly Change-Id: Ibed7358b18fb019994a7490332b9d797a6694c29 Reviewed-on: https://gerrit.libreoffice.org/71075 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
-rw-r--r--chart2/source/view/main/ChartItemPool.cxx4
-rw-r--r--cui/source/dialogs/hldocntp.cxx4
-rw-r--r--cui/source/inc/tabstpge.hxx2
-rw-r--r--cui/source/tabpages/backgrnd.cxx83
-rw-r--r--cui/source/tabpages/grfpage.cxx19
-rw-r--r--cui/source/tabpages/tabstpge.cxx91
-rw-r--r--dbaccess/source/ui/dlg/dbadmin.cxx2
-rw-r--r--dbaccess/source/ui/dlg/generalpage.cxx2
-rw-r--r--editeng/Library_editeng.mk1
-rw-r--r--editeng/source/editeng/editdoc.cxx32
-rw-r--r--editeng/source/editeng/impedit.hxx2
-rw-r--r--editeng/source/editeng/impedit4.cxx2
-rw-r--r--editeng/source/items/bulitem.cxx9
-rw-r--r--editeng/source/items/frmitems.cxx505
-rw-r--r--editeng/source/items/justifyitem.cxx17
-rwxr-xr-xediteng/source/items/legacyitem.cxx807
-rw-r--r--editeng/source/items/numitem.cxx12
-rw-r--r--editeng/source/items/paraitem.cxx92
-rw-r--r--editeng/source/items/textitem.cxx312
-rw-r--r--editeng/source/items/writingmodeitem.cxx5
-rw-r--r--editeng/source/items/xmlcnitm.cxx6
-rw-r--r--editeng/source/rtf/rtfitem.cxx91
-rw-r--r--include/editeng/adjustitem.hxx22
-rw-r--r--include/editeng/boxitem.hxx5
-rw-r--r--include/editeng/brushitem.hxx9
-rw-r--r--include/editeng/bulletitem.hxx1
-rw-r--r--include/editeng/charreliefitem.hxx1
-rw-r--r--include/editeng/charrotateitem.hxx2
-rw-r--r--include/editeng/charscaleitem.hxx1
-rw-r--r--include/editeng/colritem.hxx10
-rw-r--r--include/editeng/contouritem.hxx9
-rw-r--r--include/editeng/crossedoutitem.hxx7
-rw-r--r--include/editeng/emphasismarkitem.hxx1
-rw-r--r--include/editeng/fhgtitem.hxx18
-rw-r--r--include/editeng/fontitem.hxx5
-rw-r--r--include/editeng/forbiddenruleitem.hxx1
-rw-r--r--include/editeng/formatbreakitem.hxx11
-rw-r--r--include/editeng/frmdiritem.hxx9
-rw-r--r--include/editeng/hngpnctitem.hxx1
-rw-r--r--include/editeng/justifyitem.hxx12
-rw-r--r--include/editeng/keepitem.hxx9
-rw-r--r--include/editeng/langitem.hxx5
-rwxr-xr-xinclude/editeng/legacyitem.hxx192
-rw-r--r--include/editeng/lineitem.hxx3
-rw-r--r--include/editeng/lrspitem.hxx17
-rw-r--r--include/editeng/numitem.hxx1
-rw-r--r--include/editeng/opaqitem.hxx9
-rw-r--r--include/editeng/paravertalignitem.hxx1
-rw-r--r--include/editeng/pgrditem.hxx1
-rw-r--r--include/editeng/postitem.hxx8
-rw-r--r--include/editeng/protitem.hxx10
-rw-r--r--include/editeng/scriptspaceitem.hxx1
-rw-r--r--include/editeng/scripttypeitem.hxx1
-rw-r--r--include/editeng/shaditem.hxx13
-rw-r--r--include/editeng/shdditem.hxx6
-rw-r--r--include/editeng/sizeitem.hxx9
-rw-r--r--include/editeng/tstpitem.hxx2
-rw-r--r--include/editeng/twolinesitem.hxx2
-rw-r--r--include/editeng/udlnitem.hxx12
-rw-r--r--include/editeng/ulspitem.hxx13
-rw-r--r--include/editeng/wghtitem.hxx8
-rw-r--r--include/editeng/writingmodeitem.hxx1
-rw-r--r--include/editeng/xmlcnitm.hxx2
-rw-r--r--include/sfx2/evntconf.hxx1
-rw-r--r--include/sfx2/tabdlg.hxx1
-rw-r--r--include/svl/aeitem.hxx6
-rw-r--r--include/svl/cintitem.hxx22
-rw-r--r--include/svl/eitem.hxx19
-rw-r--r--include/svl/flagitem.hxx2
-rw-r--r--include/svl/int64item.hxx5
-rw-r--r--include/svl/intitem.hxx26
-rw-r--r--include/svl/lckbitem.hxx3
-rwxr-xr-xinclude/svl/legacyitem.hxx52
-rw-r--r--include/svl/macitem.hxx1
-rw-r--r--include/svl/poolitem.hxx4
-rw-r--r--include/svl/ptitem.hxx2
-rw-r--r--include/svl/rectitem.hxx2
-rw-r--r--include/svl/rngitem.hxx2
-rw-r--r--include/svl/slstitm.hxx3
-rw-r--r--include/svl/stritem.hxx6
-rw-r--r--include/svl/visitem.hxx6
-rw-r--r--include/svx/algitem.hxx21
-rwxr-xr-xinclude/svx/autoformathelper.hxx218
-rw-r--r--include/svx/chrtitem.hxx5
-rw-r--r--include/svx/e3ditem.hxx2
-rw-r--r--include/svx/hlnkitem.hxx2
-rwxr-xr-xinclude/svx/legacyitem.hxx60
-rw-r--r--include/svx/rotmodit.hxx2
-rw-r--r--include/svx/sdasitm.hxx1
-rw-r--r--include/svx/sdgcpitm.hxx1
-rw-r--r--include/svx/sdtacitm.hxx4
-rw-r--r--include/svx/sdtfchim.hxx1
-rw-r--r--include/svx/svx3ditems.hxx6
-rw-r--r--include/svx/unobrushitemhelper.hxx2
-rw-r--r--include/svx/xbtmpit.hxx1
-rw-r--r--include/svx/xflftrit.hxx1
-rw-r--r--include/svx/xflgrit.hxx1
-rw-r--r--include/svx/xlinjoit.hxx1
-rw-r--r--include/svx/xlncapit.hxx1
-rw-r--r--include/svx/xsflclit.hxx3
-rw-r--r--sc/inc/attrib.hxx1
-rw-r--r--sc/inc/autoform.hxx141
-rw-r--r--sc/qa/unit/subsequent_filters-test.cxx2
-rw-r--r--sc/source/core/data/attrib.cxx5
-rw-r--r--sc/source/core/data/patattr.cxx55
-rw-r--r--sc/source/core/tool/autoform.cxx343
-rw-r--r--sc/source/ui/docshell/docsh4.cxx4
-rw-r--r--sc/source/ui/drawfunc/drtxtob.cxx15
-rw-r--r--sc/source/ui/inc/viewfunc.hxx5
-rw-r--r--sc/source/ui/view/cellsh.cxx2
-rw-r--r--sc/source/ui/view/editsh.cxx17
-rw-r--r--sc/source/ui/view/formatsh.cxx92
-rw-r--r--sc/source/ui/view/output2.cxx12
-rw-r--r--sc/source/ui/view/tabvwsha.cxx29
-rw-r--r--sc/source/ui/view/viewfun2.cxx2
-rw-r--r--sc/source/ui/view/viewfun4.cxx2
-rw-r--r--sc/source/ui/view/viewfunc.cxx20
-rw-r--r--sd/qa/unit/import-tests.cxx2
-rw-r--r--sd/source/ui/table/TableDesignPane.cxx10
-rw-r--r--sfx2/source/appl/appserv.cxx8
-rw-r--r--sfx2/source/appl/linkmgr2.cxx2
-rw-r--r--sfx2/source/config/evntconf.cxx6
-rw-r--r--sfx2/source/dialog/tabdlg.cxx6
-rw-r--r--solenv/clang-format/blacklist10
-rw-r--r--svl/Library_svl.mk1
-rw-r--r--svl/source/items/aeitem.cxx11
-rw-r--r--svl/source/items/cenumitm.cxx13
-rw-r--r--svl/source/items/cintitem.cxx77
-rw-r--r--svl/source/items/flagitem.cxx14
-rw-r--r--svl/source/items/int64item.cxx16
-rw-r--r--svl/source/items/intitem.cxx29
-rw-r--r--svl/source/items/lckbitem.cxx47
-rwxr-xr-xsvl/source/items/legacyitem.cxx69
-rw-r--r--svl/source/items/macitem.cxx7
-rw-r--r--svl/source/items/poolitem.cxx463
-rw-r--r--svl/source/items/ptitem.cxx15
-rw-r--r--svl/source/items/rectitem.cxx15
-rw-r--r--svl/source/items/rngitem.cxx17
-rw-r--r--svl/source/items/slstitm.cxx42
-rw-r--r--svl/source/items/stritem.cxx21
-rw-r--r--svl/source/items/visitem.cxx21
-rw-r--r--svx/Library_svx.mk2
-rw-r--r--svx/source/dialog/svxruler.cxx31
-rw-r--r--svx/source/engine3d/svx3ditems.cxx30
-rw-r--r--svx/source/items/algitem.cxx32
-rwxr-xr-xsvx/source/items/autoformathelper.cxx380
-rw-r--r--svx/source/items/chrtitem.cxx22
-rw-r--r--svx/source/items/customshapeitem.cxx5
-rw-r--r--svx/source/items/e3ditem.cxx5
-rwxr-xr-xsvx/source/items/legacyitem.cxx105
-rw-r--r--svx/source/items/rotmodit.cxx12
-rw-r--r--svx/source/svdraw/svdattr.cxx10
-rw-r--r--svx/source/unodraw/unobrushitemhelper.cxx18
-rw-r--r--svx/source/xoutdev/xattr.cxx20
-rw-r--r--svx/source/xoutdev/xattr2.cxx10
-rw-r--r--svx/source/xoutdev/xattrbmp.cxx5
-rw-r--r--sw/CppunitTest_sw_uiwriter.mk1
-rw-r--r--sw/Library_sw.mk1
-rw-r--r--sw/inc/doc.hxx4
-rw-r--r--sw/inc/fesh.hxx8
-rw-r--r--sw/inc/fmtornt.hxx21
-rw-r--r--sw/inc/format.hxx4
-rwxr-xr-xsw/inc/legacyitem.hxx44
-rw-r--r--sw/inc/ndtxt.hxx2
-rw-r--r--sw/inc/paratr.hxx2
-rw-r--r--sw/inc/tblafmt.hxx132
-rw-r--r--sw/qa/core/filters-test.cxx2
-rw-r--r--sw/qa/core/uwriter.cxx78
-rw-r--r--sw/source/core/attr/format.cxx17
-rw-r--r--sw/source/core/doc/DocumentContentOperationsManager.cxx31
-rw-r--r--sw/source/core/doc/DocumentStylePoolManager.cxx37
-rw-r--r--sw/source/core/doc/doclay.cxx14
-rw-r--r--sw/source/core/doc/tblafmt.cxx478
-rw-r--r--sw/source/core/doc/tblrwcl.cxx35
-rw-r--r--sw/source/core/docnode/ndtbl1.cxx48
-rw-r--r--sw/source/core/frmedt/fefly1.cxx12
-rw-r--r--sw/source/core/frmedt/fetab.cxx18
-rw-r--r--sw/source/core/inc/frmtool.hxx2
-rw-r--r--sw/source/core/layout/atrfrm.cxx58
-rw-r--r--sw/source/core/layout/flylay.cxx4
-rw-r--r--sw/source/core/layout/frmtool.cxx12
-rwxr-xr-xsw/source/core/layout/legacyitem.cxx82
-rw-r--r--sw/source/core/layout/pagedesc.cxx2
-rw-r--r--sw/source/core/layout/paintfrm.cxx7
-rw-r--r--sw/source/core/layout/tabfrm.cxx4
-rw-r--r--sw/source/core/layout/wsfrm.cxx12
-rw-r--r--sw/source/core/text/porfld.cxx2
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx5
-rw-r--r--sw/source/core/unocore/unoframe.cxx26
-rw-r--r--sw/source/core/unocore/unoparagraph.cxx4
-rw-r--r--sw/source/core/unocore/unostyle.cxx44
-rw-r--r--sw/source/core/unocore/unotbl.cxx42
-rw-r--r--sw/source/filter/basflt/fltini.cxx18
-rw-r--r--sw/source/filter/html/css1atr.cxx10
-rw-r--r--sw/source/filter/html/htmlcss1.cxx22
-rw-r--r--sw/source/filter/html/htmlflywriter.cxx9
-rw-r--r--sw/source/filter/html/htmlgrin.cxx22
-rw-r--r--sw/source/filter/html/htmltabw.cxx12
-rw-r--r--sw/source/filter/html/svxcss1.cxx20
-rw-r--r--sw/source/filter/html/swcss1.hxx2
-rw-r--r--sw/source/filter/html/swhtml.cxx12
-rw-r--r--sw/source/filter/html/wrthtml.cxx5
-rw-r--r--sw/source/filter/writer/wrt_fn.cxx4
-rw-r--r--sw/source/filter/ww8/docxexport.cxx4
-rw-r--r--sw/source/filter/ww8/rtfexport.cxx2
-rw-r--r--sw/source/filter/ww8/wrtw8esh.cxx24
-rw-r--r--sw/source/filter/ww8/wrtw8nds.cxx9
-rw-r--r--sw/source/filter/ww8/wrtww8.cxx8
-rw-r--r--sw/source/filter/ww8/wrtww8.hxx4
-rw-r--r--sw/source/filter/ww8/ww8atr.cxx6
-rw-r--r--sw/source/filter/ww8/ww8par.cxx20
-rw-r--r--sw/source/filter/ww8/ww8par.hxx4
-rw-r--r--sw/source/filter/ww8/ww8par3.cxx13
-rw-r--r--sw/source/filter/ww8/ww8par6.cxx49
-rw-r--r--sw/source/ui/dialog/uiregionsw.cxx48
-rw-r--r--sw/source/ui/frmdlg/wrap.cxx13
-rw-r--r--sw/source/uibase/app/apphdl.cxx2
-rw-r--r--sw/source/uibase/app/docsh2.cxx4
-rw-r--r--sw/source/uibase/docvw/romenu.cxx20
-rw-r--r--sw/source/uibase/docvw/romenu.hxx2
-rw-r--r--sw/source/uibase/shells/annotsh.cxx17
-rw-r--r--sw/source/uibase/shells/basesh.cxx30
-rw-r--r--sw/source/uibase/shells/drwtxtsh.cxx12
-rw-r--r--sw/source/uibase/shells/frmsh.cxx110
-rw-r--r--sw/source/uibase/shells/tabsh.cxx86
-rw-r--r--sw/source/uibase/shells/textsh.cxx54
-rw-r--r--sw/source/uibase/uiview/formatclipboard.cxx30
-rw-r--r--sw/source/uibase/uiview/viewtab.cxx25
-rw-r--r--sw/source/uibase/utlui/navipi.cxx2
-rw-r--r--sw/source/uibase/utlui/uitool.cxx48
230 files changed, 3745 insertions, 3735 deletions
diff --git a/chart2/source/view/main/ChartItemPool.cxx b/chart2/source/view/main/ChartItemPool.cxx
index 894955bc10dd..d0a7b5ce87d7 100644
--- a/chart2/source/view/main/ChartItemPool.cxx
+++ b/chart2/source/view/main/ChartItemPool.cxx
@@ -157,8 +157,8 @@ ChartItemPool::ChartItemPool():
rPoolDefaults[SCHATTR_REGRESSION_SET_INTERCEPT - SCHATTR_START] = new SfxBoolItem(SCHATTR_REGRESSION_SET_INTERCEPT, false);
rPoolDefaults[SCHATTR_REGRESSION_INTERCEPT_VALUE - SCHATTR_START] = new SvxDoubleItem(0.0, SCHATTR_REGRESSION_INTERCEPT_VALUE);
rPoolDefaults[SCHATTR_REGRESSION_CURVE_NAME - SCHATTR_START] = new SfxStringItem(SCHATTR_REGRESSION_CURVE_NAME, OUString());
- rPoolDefaults[SCHATTR_REGRESSION_XNAME - SCHATTR_START] = new SfxStringItem(SCHATTR_REGRESSION_XNAME, OUString("x"));
- rPoolDefaults[SCHATTR_REGRESSION_YNAME - SCHATTR_START] = new SfxStringItem(SCHATTR_REGRESSION_YNAME, OUString("f(x)"));
+ rPoolDefaults[SCHATTR_REGRESSION_XNAME - SCHATTR_START] = new SfxStringItem(SCHATTR_REGRESSION_XNAME, "x");
+ rPoolDefaults[SCHATTR_REGRESSION_YNAME - SCHATTR_START] = new SfxStringItem(SCHATTR_REGRESSION_YNAME, "f(x)");
/**************************************************************************
* ItemInfos
diff --git a/cui/source/dialogs/hldocntp.cxx b/cui/source/dialogs/hldocntp.cxx
index 063b7ede1b8a..20f67d2e570d 100644
--- a/cui/source/dialogs/hldocntp.cxx
+++ b/cui/source/dialogs/hldocntp.cxx
@@ -309,8 +309,8 @@ IMPL_STATIC_LINK(SvxHyperlinkNewDocTp, DispatchDocument, void*, p, void)
// create items
SfxStringItem aName( SID_FILE_NAME, xExecuteInfo->aStrDocName );
- SfxStringItem aReferer( SID_REFERER, OUString("private:user") );
- SfxStringItem aFrame( SID_TARGETNAME, OUString("_blank") );
+ SfxStringItem aReferer( SID_REFERER, "private:user" );
+ SfxStringItem aFrame( SID_TARGETNAME, "_blank");
OUString aStrFlags('S');
if (xExecuteInfo->bRbtEditLater)
diff --git a/cui/source/inc/tabstpge.hxx b/cui/source/inc/tabstpge.hxx
index 3288e0536ffb..949877077bd2 100644
--- a/cui/source/inc/tabstpge.hxx
+++ b/cui/source/inc/tabstpge.hxx
@@ -82,7 +82,7 @@ private:
// local variables, internal functions
SvxTabStop aCurrentTab;
- SvxTabStopItem aNewTabs;
+ std::unique_ptr<SvxTabStopItem> aNewTabs;
long nDefDist;
TabWin_Impl m_aLeftWin;
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index dc15fb3a0cf6..bcfa66d42132 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -396,12 +396,14 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
if (USHRT_MAX == nDestValue && m_xTblLBox->get_visible())
nDestValue = 0;
sal_uInt16 nWhich = GetWhich(nSlot);
- SvxBrushItem aBgdAttr(nWhich);
+ std::shared_ptr<SvxBrushItem> aBgdAttr(std::make_shared<SvxBrushItem>(nWhich));
if (rSet->GetItemState( nWhich, false ) >= SfxItemState::DEFAULT)
{
if (!bCharBackColor)
- aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(nWhich));
+ {
+ aBgdAttr.reset(static_cast<SvxBrushItem*>(rSet->Get(nWhich).Clone()));
+ }
else
{
// EE_CHAR_BKGCOLOR is SvxBackgroundColorItem, but char background tabpage
@@ -409,7 +411,7 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
// extract Color out of SvxBackColorItem
Color aBackColor = static_cast<const SvxBackgroundColorItem&>(rSet->Get(nWhich)).GetValue();
// make new SvxBrushItem with this Color
- aBgdAttr = SvxBrushItem(aBackColor, SID_ATTR_BRUSH_CHAR);
+ aBgdAttr = std::make_shared<SvxBrushItem>(aBackColor, SID_ATTR_BRUSH_CHAR);
}
bBrushItemSet = true;
}
@@ -418,8 +420,8 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
if (bBrushItemSet)
{
- FillControls_Impl(aBgdAttr, aUserData);
- aBgdColor = aBgdAttr.GetColor();
+ FillControls_Impl(*aBgdAttr, aUserData);
+ aBgdColor = aBgdAttr->GetColor();
}
else
{
@@ -446,22 +448,19 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
nWhich = GetWhich( SID_ATTR_BRUSH );
if ( rSet->GetItemState( nWhich, false ) >= SfxItemState::DEFAULT )
{
- aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(nWhich));
- m_pCellBrush.reset(new SvxBrushItem(aBgdAttr));
+ m_pCellBrush.reset(static_cast<SvxBrushItem*>(rSet->Get(nWhich).Clone()));
}
m_nCellWhich = nWhich;
if ( rSet->GetItemState( SID_ATTR_BRUSH_ROW, false ) >= SfxItemState::DEFAULT )
{
- aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(SID_ATTR_BRUSH_ROW));
- m_pRowBrush.reset(new SvxBrushItem(aBgdAttr));
+ m_pRowBrush.reset(static_cast<SvxBrushItem*>(rSet->Get(SID_ATTR_BRUSH_ROW).Clone()));
}
m_nRowWhich = SID_ATTR_BRUSH_ROW;
if ( rSet->GetItemState( SID_ATTR_BRUSH_TABLE, false ) >= SfxItemState::DEFAULT )
{
- aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(SID_ATTR_BRUSH_TABLE));
- m_pTableBrush.reset(new SvxBrushItem(aBgdAttr));
+ m_pTableBrush.reset(static_cast<SvxBrushItem*>(rSet->Get(SID_ATTR_BRUSH_TABLE).Clone()));
}
m_nTableWhich = SID_ATTR_BRUSH_TABLE;
@@ -473,8 +472,7 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
nWhich = GetWhich( SID_ATTR_BRUSH_CHAR );
if ( rSet->GetItemState( nWhich, false ) >= SfxItemState::DEFAULT )
{
- aBgdAttr = static_cast<const SvxBrushItem&>(rSet->Get(nWhich));
- pHighlighting.reset(new SvxBrushItem(aBgdAttr));
+ pHighlighting.reset(static_cast<SvxBrushItem*>(rSet->Get(nWhich).Clone()));
}
}
else if( bCharBackColor )
@@ -487,8 +485,7 @@ void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
// extract Color out of SvxBackColorItem
Color aBackColor = static_cast<const SvxBackgroundColorItem&>(rSet->Get(nWhich)).GetValue();
// make new SvxBrushItem with this Color
- aBgdAttr = SvxBrushItem(aBackColor, SID_ATTR_BRUSH_CHAR);
- pHighlighting.reset(new SvxBrushItem(aBgdAttr));
+ pHighlighting = std::make_unique<SvxBrushItem>(aBackColor, SID_ATTR_BRUSH_CHAR);
}
}
}
@@ -596,21 +593,23 @@ bool SvxBackgroundTabPage::FillItemSet( SfxItemSet* rCoreSet )
if (bModifyBrush)
{
bModified = true;
+ std::unique_ptr<SvxBrushItem> aTmpBrush;
- SvxBrushItem aTmpBrush(nWhich);
if ( bIsLink )
{
- aTmpBrush = SvxBrushItem( aBgdGraphicPath,
+ aTmpBrush.reset(new SvxBrushItem( aBgdGraphicPath,
aBgdGraphicFilter,
eNewPos,
- nWhich );
+ nWhich ));
}
else
- aTmpBrush = SvxBrushItem( aBgdGraphic,
+ {
+ aTmpBrush.reset(new SvxBrushItem( aBgdGraphic,
eNewPos,
- nWhich );
+ nWhich ));
+ }
- rCoreSet->Put(aTmpBrush);
+ rCoreSet->Put(*aTmpBrush);
}
else if ( SfxItemState::DEFAULT == rOldSet.GetItemState( nWhich, false ) )
rCoreSet->ClearItem( nWhich );
@@ -1133,20 +1132,20 @@ IMPL_LINK(SvxBackgroundTabPage, TblDestinationHdl_Impl, weld::ComboBox&, rBox, v
if( m_nActPos != nSelPos)
{
std::unique_ptr<SvxBrushItem> xItemHolder;
- SvxBrushItem* pActItem = nullptr;
+ std::unique_ptr<SvxBrushItem>* pActItem = nullptr;
sal_uInt16 nWhich = 0;
switch(m_nActPos)
{
case TBL_DEST_CELL:
- pActItem = m_pCellBrush.get();
+ pActItem = &m_pCellBrush;
nWhich = m_nCellWhich;
break;
case TBL_DEST_ROW:
- pActItem = m_pRowBrush.get();
+ pActItem = &m_pRowBrush;
nWhich = m_nRowWhich;
break;
case TBL_DEST_TBL:
- pActItem = m_pTableBrush.get();
+ pActItem = &m_pTableBrush;
nWhich = m_nTableWhich;
break;
default:
@@ -1157,11 +1156,11 @@ IMPL_LINK(SvxBackgroundTabPage, TblDestinationHdl_Impl, weld::ComboBox&, rBox, v
if(!pActItem)
{
xItemHolder.reset(new SvxBrushItem(nWhich));
- pActItem = xItemHolder.get();
+ pActItem = &xItemHolder;
}
if(drawing::FillStyle_SOLID == lcl_getFillStyle(*m_xLbSelect)) // brush selected
{
- *pActItem = SvxBrushItem( aBgdColor, nWhich );
+ *pActItem = std::make_unique<SvxBrushItem>(aBgdColor, nWhich);
}
else
{
@@ -1172,28 +1171,32 @@ IMPL_LINK(SvxBackgroundTabPage, TblDestinationHdl_Impl, weld::ComboBox&, rBox, v
bIsGraphicValid = LoadLinkedGraphic_Impl();
if ( bIsLink )
- *pActItem = SvxBrushItem( aBgdGraphicPath,
+ {
+ *pActItem = std::make_unique<SvxBrushItem>( aBgdGraphicPath,
aBgdGraphicFilter,
eNewPos,
- pActItem->Which() );
+ (*pActItem)->Which() );
+ }
else
- *pActItem = SvxBrushItem( aBgdGraphic,
+ {
+ *pActItem = std::make_unique<SvxBrushItem>( aBgdGraphic,
eNewPos,
- pActItem->Which() );
+ (*pActItem)->Which() );
+ }
}
switch(nSelPos)
{
case TBL_DEST_CELL:
- pActItem = m_pCellBrush.get();
+ pActItem = &m_pCellBrush;
m_xLbSelect->set_sensitive(true);
nWhich = m_nCellWhich;
break;
case TBL_DEST_ROW:
- pActItem = m_pRowBrush.get();
+ pActItem = &m_pRowBrush;
nWhich = m_nRowWhich;
break;
case TBL_DEST_TBL:
- pActItem = m_pTableBrush.get();
+ pActItem = &m_pTableBrush;
m_xLbSelect->set_sensitive(true);
nWhich = m_nTableWhich;
break;
@@ -1208,9 +1211,9 @@ IMPL_LINK(SvxBackgroundTabPage, TblDestinationHdl_Impl, weld::ComboBox&, rBox, v
if (!pActItem)
{
xItemHolder.reset(new SvxBrushItem(nWhich));
- pActItem = xItemHolder.get();
+ pActItem = &xItemHolder;
}
- FillControls_Impl(*pActItem, aUserData);
+ FillControls_Impl(**pActItem, aUserData);
}
}
@@ -1492,9 +1495,9 @@ bool SvxBkgTabPage::FillItemSet( SfxItemSet* rCoreSet )
}
case drawing::FillStyle_BITMAP:
{
- SvxBrushItem aBrushItem( getSvxBrushItemFromSourceSet( maSet, nWhich ) );
- if ( GraphicType::NONE != aBrushItem.GetGraphicObject()->GetType() )
- rCoreSet->Put( aBrushItem );
+ std::shared_ptr<SvxBrushItem> aBrushItem( getSvxBrushItemFromSourceSet( maSet, nWhich ) );
+ if ( GraphicType::NONE != aBrushItem->GetGraphicObject()->GetType() )
+ rCoreSet->Put( *aBrushItem );
break;
}
default:
@@ -1597,7 +1600,7 @@ IMPL_LINK(SvxBkgTabPage, TblDestinationHdl_Impl, weld::ComboBox&, rBox, void)
// fill local item set with XATTR_FILL settings gathered from tab page
// and convert to SvxBrushItem and store in table destination slot Which
SvxAreaTabPage::FillItemSet(&maSet);
- maSet.Put(getSvxBrushItemFromSourceSet(maSet, maSet.GetPool()->GetWhich(lcl_GetTableDestSlot(m_nActPos))));
+ maSet.Put(*getSvxBrushItemFromSourceSet(maSet, maSet.GetPool()->GetWhich(lcl_GetTableDestSlot(m_nActPos))));
}
sal_Int32 nSelPos = rBox.get_active();
diff --git a/cui/source/tabpages/grfpage.cxx b/cui/source/tabpages/grfpage.cxx
index 648c6c6c366e..b9e04205f6af 100644
--- a/cui/source/tabpages/grfpage.cxx
+++ b/cui/source/tabpages/grfpage.cxx
@@ -229,27 +229,30 @@ bool SvxGrfCropPage::FillItemSet(SfxItemSet *rSet)
sal_uInt16 nW = rPool.GetWhich( SID_ATTR_GRAF_FRMSIZE );
FieldUnit eUnit = MapToFieldUnit( rSet->GetPool()->GetMetric( nW ));
- SvxSizeItem aSz( nW );
+ std::shared_ptr<SvxSizeItem> aSz(std::make_shared<SvxSizeItem>(nW));
// size could already have been set from another page
const SfxItemSet* pExSet = GetDialogExampleSet();
const SfxPoolItem* pItem = nullptr;
- if( pExSet && SfxItemState::SET ==
- pExSet->GetItemState( nW, false, &pItem ) )
- aSz = *static_cast<const SvxSizeItem*>(pItem);
+ if( pExSet && SfxItemState::SET ==pExSet->GetItemState( nW, false, &pItem ) )
+ {
+ aSz.reset(static_cast< SvxSizeItem*>(pItem->Clone()));
+ }
else
- aSz = static_cast<const SvxSizeItem&>(GetItemSet().Get( nW ));
+ {
+ aSz.reset(static_cast< SvxSizeItem*>(GetItemSet().Get(nW).Clone()));
+ }
- Size aTmpSz( aSz.GetSize() );
+ Size aTmpSz( aSz->GetSize() );
if( m_xWidthMF->get_value_changed_from_saved() )
aTmpSz.setWidth( lcl_GetValue( *m_xWidthMF, eUnit ) );
if( m_xHeightMF->get_value_changed_from_saved() )
aTmpSz.setHeight( lcl_GetValue( *m_xHeightMF, eUnit ) );
- aSz.SetSize( aTmpSz );
+ aSz->SetSize( aTmpSz );
m_xWidthMF->save_value();
m_xHeightMF->save_value();
- bModified |= nullptr != rSet->Put( aSz );
+ bModified |= nullptr != rSet->Put( *aSz );
if( bSetOrigSize )
{
diff --git a/cui/source/tabpages/tabstpge.cxx b/cui/source/tabpages/tabstpge.cxx
index e4e92fc1c90b..3ff07765f8af 100644
--- a/cui/source/tabpages/tabstpge.cxx
+++ b/cui/source/tabpages/tabstpge.cxx
@@ -64,7 +64,7 @@ void TabWin_Impl::Paint(vcl::RenderContext& rRenderContext, const ::tools::Recta
SvxTabulatorTabPage::SvxTabulatorTabPage(TabPageParent pParent, const SfxItemSet& rAttr)
: SfxTabPage(pParent, "cui/ui/paratabspage.ui", "ParagraphTabsPage", &rAttr)
, aCurrentTab(0)
- , aNewTabs(0, 0, SvxTabAdjust::Left, GetWhich(SID_ATTR_TABSTOP))
+ , aNewTabs(std::make_unique<SvxTabStopItem>(0, 0, SvxTabAdjust::Left, GetWhich(SID_ATTR_TABSTOP)))
, nDefDist(0)
, m_xTabSpin(m_xBuilder->weld_metric_spin_button("SP_TABPOS", FieldUnit::CM))
, m_xTabBox(m_xBuilder->weld_entry_tree_view("tabgrid", "ED_TABPOS", "LB_TABPOS"))
@@ -171,7 +171,7 @@ bool SvxTabulatorTabPage::FillItemSet(SfxItemSet* rSet)
GetDezCharHdl_Impl(*m_xDezChar);
GetFillCharHdl_Impl(*m_xFillChar);
- FillUpWithDefTabs_Impl(nDefDist, aNewTabs);
+ FillUpWithDefTabs_Impl(nDefDist, *aNewTabs);
SfxItemPool* pPool = rSet->GetPool();
MapUnit eUnit = pPool->GetMetric(GetWhich(SID_ATTR_TABSTOP));
const SfxPoolItem* pOld = GetOldItem(*rSet, SID_ATTR_TABSTOP);
@@ -188,28 +188,28 @@ bool SvxTabulatorTabPage::FillItemSet(SfxItemSet* rSet)
if (pLRSpace && static_cast<const SvxLRSpaceItem*>(pLRSpace)->GetTextFirstLineOfst() < 0)
{
SvxTabStop aNull(0, SvxTabAdjust::Default);
- aNewTabs.Insert(aNull);
+ aNewTabs->Insert(aNull);
}
- SvxTabStopItem aTmp(aNewTabs);
- aTmp.Remove(0, aTmp.Count());
+ std::unique_ptr<SvxTabStopItem> aTmp(static_cast<SvxTabStopItem*>(aNewTabs->Clone()));
+ aTmp->Remove(0, aTmp->Count());
- for (sal_uInt16 i = 0; i < aNewTabs.Count(); ++i)
+ for (sal_uInt16 i = 0; i < aNewTabs->Count(); ++i)
{
- SvxTabStop aTmpStop = aNewTabs[i];
+ SvxTabStop aTmpStop = (*aNewTabs)[i];
aTmpStop.GetTabPos() = LogicToLogic(aTmpStop.GetTabPos(), MapUnit::Map100thMM, eUnit);
- aTmp.Insert(aTmpStop);
+ aTmp->Insert(aTmpStop);
}
- if (!pOld || *static_cast<const SvxTabStopItem*>(pOld) != aTmp)
+ if (!pOld || *static_cast<const SvxTabStopItem*>(pOld) != *aTmp)
{
- rSet->Put(aTmp);
+ rSet->Put(*aTmp);
bModified = true;
}
}
- else if (!pOld || *static_cast<const SvxTabStopItem*>(pOld) != aNewTabs)
+ else if (!pOld || *static_cast<const SvxTabStopItem*>(pOld) != *aNewTabs)
{
- rSet->Put(aNewTabs);
+ rSet->Put(*aNewTabs);
bModified = true;
}
@@ -233,21 +233,25 @@ void SvxTabulatorTabPage::Reset(const SfxItemSet* rSet)
{
if (MapUnit::Map100thMM != eUnit)
{
- SvxTabStopItem aTmp(*static_cast<const SvxTabStopItem*>(pItem));
- aNewTabs.Remove(0, aNewTabs.Count());
+ std::unique_ptr<SvxTabStopItem> aTmp(static_cast<SvxTabStopItem*>(pItem->Clone()));
+ aNewTabs->Remove(0, aNewTabs->Count());
- for (sal_uInt16 i = 0; i < aTmp.Count(); ++i)
+ for (sal_uInt16 i = 0; i < aTmp->Count(); ++i)
{
- SvxTabStop aTmpStop = aTmp[i];
+ SvxTabStop aTmpStop = (*aTmp)[i];
aTmpStop.GetTabPos() = LogicToLogic(aTmpStop.GetTabPos(), eUnit, MapUnit::Map100thMM);
- aNewTabs.Insert(aTmpStop);
+ aNewTabs->Insert(aTmpStop);
}
}
else
- aNewTabs = *static_cast<const SvxTabStopItem*>(pItem);
+ {
+ aNewTabs.reset(static_cast<SvxTabStopItem*>(pItem->Clone()));
+ }
}
else
- aNewTabs.Remove(0, aNewTabs.Count());
+ {
+ aNewTabs->Remove(0, aNewTabs->Count());
+ }
// Default tab distance
nDefDist = SVX_TAB_DEFDIST;
@@ -330,20 +334,21 @@ void SvxTabulatorTabPage::InitTabPos_Impl( sal_uInt16 nTabPos )
}
// Correct current TabPos and default tabs
- for ( sal_uInt16 i = 0; i < aNewTabs.Count(); i++ )
+ for ( sal_uInt16 i = 0; i < aNewTabs->Count(); i++ )
{
- if ( aNewTabs[i].GetAdjustment() != SvxTabAdjust::Default )
+ if ( (*aNewTabs)[i].GetAdjustment() != SvxTabAdjust::Default )
{
- m_xTabSpin->set_value(m_xTabSpin->normalize(
- aNewTabs[i].GetTabPos() + nOffset ), eDefUnit);
+ m_xTabSpin->set_value(m_xTabSpin->normalize((*aNewTabs)[i].GetTabPos() + nOffset ), eDefUnit);
m_xTabBox->append_text(m_xTabSpin->get_text());
}
else
- aNewTabs.Remove( i-- );
+ {
+ aNewTabs->Remove( i-- );
+ }
}
// Select current tabulator
- const sal_uInt16 nSize = aNewTabs.Count();
+ const sal_uInt16 nSize = aNewTabs->Count();
if ( nTabPos >= nSize )
nTabPos = 0;
@@ -355,7 +360,7 @@ void SvxTabulatorTabPage::InitTabPos_Impl( sal_uInt16 nTabPos )
if (m_xTabBox->get_count() > 0)
{
m_xTabBox->set_active(nTabPos);
- aCurrentTab = aNewTabs[nTabPos];
+ aCurrentTab = (*aNewTabs)[nTabPos];
SetFillAndTabType_Impl();
m_xNewBtn->set_sensitive(false);
@@ -449,7 +454,7 @@ void SvxTabulatorTabPage::NewHdl_Impl(const weld::Button* pBtn)
sal_Int32 i;
for( i = 0; i < nSize; i++ )
{
- if ( nReal < aNewTabs[i].GetTabPos() )
+ if ( nReal < (*aNewTabs)[i].GetTabPos() )
break;
}
@@ -468,7 +473,7 @@ void SvxTabulatorTabPage::NewHdl_Impl(const weld::Button* pBtn)
eAdj = SvxTabAdjust::Decimal;
aCurrentTab.GetAdjustment() = eAdj;
- aNewTabs.Insert( aCurrentTab );
+ aNewTabs->Insert( aCurrentTab );
m_xNewBtn->set_sensitive(false);
m_xDelBtn->set_sensitive(true);
@@ -497,17 +502,17 @@ IMPL_LINK_NOARG(SvxTabulatorTabPage, DelHdl_Impl, weld::Button&, void)
// Delete Tab
m_xTabBox->remove(nPos);
- aNewTabs.Remove( nPos );
+ aNewTabs->Remove( nPos );
// Reset aCurrentTab
- const sal_uInt16 nSize = aNewTabs.Count();
+ const sal_uInt16 nSize = aNewTabs->Count();
if ( nSize > 0 )
{
// Correct Pos
nPos = ( ( nSize - 1 ) >= nPos) ? nPos : nPos - 1;
m_xTabBox->set_active(nPos);
- aCurrentTab = aNewTabs[nPos];
+ aCurrentTab = (*aNewTabs)[nPos];
}
// If no Tabs Enable Disable Controls
@@ -521,9 +526,9 @@ IMPL_LINK_NOARG(SvxTabulatorTabPage, DelHdl_Impl, weld::Button&, void)
IMPL_LINK_NOARG(SvxTabulatorTabPage, DelAllHdl_Impl, weld::Button&, void)
{
- if ( aNewTabs.Count() )
+ if ( aNewTabs->Count() )
{
- aNewTabs = SvxTabStopItem( 0 );
+ aNewTabs = std::make_unique<SvxTabStopItem>( 0 );
InitTabPos_Impl();
}
}
@@ -553,8 +558,8 @@ IMPL_LINK(SvxTabulatorTabPage, TabTypeCheckHdl_Impl, weld::Button&, rBox, void)
int nPos = FindCurrentTab();
if (nPos != -1)
{
- aNewTabs.Remove( nPos );
- aNewTabs.Insert( aCurrentTab );
+ aNewTabs->Remove( nPos );
+ aNewTabs->Insert( aCurrentTab );
}
}
@@ -579,8 +584,8 @@ IMPL_LINK(SvxTabulatorTabPage, FillTypeCheckHdl_Impl, weld::Button&, rBox, void)
int nPos = FindCurrentTab();
if (nPos != -1)
{
- aNewTabs.Remove( nPos );
- aNewTabs.Insert( aCurrentTab );
+ aNewTabs->Remove( nPos );
+ aNewTabs->Insert( aCurrentTab );
}
}
@@ -593,8 +598,8 @@ IMPL_LINK_NOARG(SvxTabulatorTabPage, GetFillCharHdl_Impl, weld::Widget&, void)
const int nPos = FindCurrentTab();
if (nPos != -1)
{
- aNewTabs.Remove( nPos );
- aNewTabs.Insert( aCurrentTab );
+ aNewTabs->Remove( nPos );
+ aNewTabs->Insert( aCurrentTab );
}
}
@@ -607,8 +612,8 @@ IMPL_LINK_NOARG(SvxTabulatorTabPage, GetDezCharHdl_Impl, weld::Widget&, void)
const int nPos = FindCurrentTab();
if (nPos != -1)
{
- aNewTabs.Remove( nPos );
- aNewTabs.Insert( aCurrentTab );
+ aNewTabs->Remove( nPos );
+ aNewTabs->Insert( aCurrentTab );
}
}
@@ -617,7 +622,7 @@ IMPL_LINK_NOARG(SvxTabulatorTabPage, SelectHdl_Impl, weld::TreeView&, void)
const int nPos = FindCurrentTab();
if (nPos != -1)
{
- aCurrentTab = aNewTabs[nPos];
+ aCurrentTab = (*aNewTabs)[nPos];
m_xNewBtn->set_sensitive(false);
SetFillAndTabType_Impl();
}
@@ -640,7 +645,7 @@ IMPL_LINK_NOARG(SvxTabulatorTabPage, ModifyHdl_Impl, weld::ComboBox&, void)
const int nPos = FindCurrentTab();
if (nPos != -1)
{
- aCurrentTab = aNewTabs[nPos];
+ aCurrentTab = (*aNewTabs)[nPos];
SetFillAndTabType_Impl();
m_xTabSpin->set_text(m_xTabBox->get_active_text());
diff --git a/dbaccess/source/ui/dlg/dbadmin.cxx b/dbaccess/source/ui/dlg/dbadmin.cxx
index bf6b8ec4a149..83b8bf1c2ce4 100644
--- a/dbaccess/source/ui/dlg/dbadmin.cxx
+++ b/dbaccess/source/ui/dlg/dbadmin.cxx
@@ -294,7 +294,7 @@ void ODbAdminDialog::createItemSet(std::unique_ptr<SfxItemSet>& _rpSet, SfxItemP
*pCounter++ = new SfxStringItem(DSID_TEXTDELIMITER, OUString('"'));
*pCounter++ = new SfxStringItem(DSID_DECIMALDELIMITER, OUString('.'));
*pCounter++ = new SfxStringItem(DSID_THOUSANDSDELIMITER, OUString());
- *pCounter++ = new SfxStringItem(DSID_TEXTFILEEXTENSION, OUString("txt"));
+ *pCounter++ = new SfxStringItem(DSID_TEXTFILEEXTENSION, "txt");
*pCounter++ = new SfxBoolItem(DSID_TEXTFILEHEADER, true);
*pCounter++ = new SfxBoolItem(DSID_PARAMETERNAMESUBST, false);
*pCounter++ = new SfxInt32Item(DSID_CONN_PORTNUMBER, 8100);
diff --git a/dbaccess/source/ui/dlg/generalpage.cxx b/dbaccess/source/ui/dlg/generalpage.cxx
index f9328b841d29..829333294d05 100644
--- a/dbaccess/source/ui/dlg/generalpage.cxx
+++ b/dbaccess/source/ui/dlg/generalpage.cxx
@@ -617,7 +617,7 @@ namespace dbaui
if ( m_pRB_CreateDatabase->IsChecked() )
{
- _rCoreAttrs->Put( SfxStringItem( DSID_CONNECTURL, OUString( "sdbc:dbase:" ) ) );
+ _rCoreAttrs->Put( SfxStringItem( DSID_CONNECTURL, "sdbc:dbase:" ) );
bChangedSomething = true;
bCommitTypeSelection = false;
}
diff --git a/editeng/Library_editeng.mk b/editeng/Library_editeng.mk
index 87e23b8628da..9354071b3a70 100644
--- a/editeng/Library_editeng.mk
+++ b/editeng/Library_editeng.mk
@@ -77,6 +77,7 @@ $(eval $(call gb_Library_add_exception_objects,editeng,\
editeng/source/items/itemtype \
editeng/source/items/justifyitem \
editeng/source/items/numitem \
+ editeng/source/items/legacyitem \
editeng/source/items/optitems \
editeng/source/items/paperinf \
editeng/source/items/paraitem \
diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx
index 8c27e0dbf09a..ef5964c822f5 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -816,16 +816,16 @@ void ContentAttribsInfo::AppendCharAttrib(EditCharAttrib* pNew)
aPrevCharAttribs.push_back(std::unique_ptr<EditCharAttrib>(pNew));
}
-void ConvertItem( SfxPoolItem& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit )
+void ConvertItem( std::unique_ptr<SfxPoolItem>& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit )
{
DBG_ASSERT( eSourceUnit != eDestUnit, "ConvertItem - Why?!" );
- switch ( rPoolItem.Which() )
+ switch ( rPoolItem->Which() )
{
case EE_PARA_LRSPACE:
{
- assert(dynamic_cast<const SvxLRSpaceItem *>(&rPoolItem) != nullptr);
- SvxLRSpaceItem& rItem = static_cast<SvxLRSpaceItem&>(rPoolItem);
+ assert(dynamic_cast<const SvxLRSpaceItem *>(rPoolItem.get()) != nullptr);
+ SvxLRSpaceItem& rItem = static_cast<SvxLRSpaceItem&>(*rPoolItem);
rItem.SetTextFirstLineOfst( sal::static_int_cast< short >( OutputDevice::LogicToLogic( rItem.GetTextFirstLineOfst(), eSourceUnit, eDestUnit ) ) );
rItem.SetTextLeft( OutputDevice::LogicToLogic( rItem.GetTextLeft(), eSourceUnit, eDestUnit ) );
rItem.SetRight( OutputDevice::LogicToLogic( rItem.GetRight(), eSourceUnit, eDestUnit ) );
@@ -833,16 +833,16 @@ void ConvertItem( SfxPoolItem& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit
break;
case EE_PARA_ULSPACE:
{
- assert(dynamic_cast<const SvxULSpaceItem *>(&rPoolItem) != nullptr);
- SvxULSpaceItem& rItem = static_cast<SvxULSpaceItem&>(rPoolItem);
+ assert(dynamic_cast<const SvxULSpaceItem *>(rPoolItem.get()) != nullptr);
+ SvxULSpaceItem& rItem = static_cast<SvxULSpaceItem&>(*rPoolItem);
rItem.SetUpper( sal::static_int_cast< sal_uInt16 >( OutputDevice::LogicToLogic( rItem.GetUpper(), eSourceUnit, eDestUnit ) ) );
rItem.SetLower( sal::static_int_cast< sal_uInt16 >( OutputDevice::LogicToLogic( rItem.GetLower(), eSourceUnit, eDestUnit ) ) );
}
break;
case EE_PARA_SBL:
{
- assert(dynamic_cast<const SvxLineSpacingItem *>(&rPoolItem) != nullptr);
- SvxLineSpacingItem& rItem = static_cast<SvxLineSpacingItem&>(rPoolItem);
+ assert(dynamic_cast<const SvxLineSpacingItem *>(rPoolItem.get()) != nullptr);
+ SvxLineSpacingItem& rItem = static_cast<SvxLineSpacingItem&>(*rPoolItem);
// SetLineHeight changes also eLineSpace!
if ( rItem.GetLineSpaceRule() == SvxLineSpaceRule::Min )
rItem.SetLineHeight( sal::static_int_cast< sal_uInt16 >( OutputDevice::LogicToLogic( rItem.GetLineHeight(), eSourceUnit, eDestUnit ) ) );
@@ -850,24 +850,24 @@ void ConvertItem( SfxPoolItem& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit
break;
case EE_PARA_TABS:
{
- assert(dynamic_cast<const SvxTabStopItem *>(&rPoolItem) != nullptr);
- SvxTabStopItem& rItem = static_cast<SvxTabStopItem&>(rPoolItem);
- SvxTabStopItem aNewItem( EE_PARA_TABS );
+ assert(dynamic_cast<const SvxTabStopItem *>(rPoolItem.get()) != nullptr);
+ SvxTabStopItem& rItem = static_cast<SvxTabStopItem&>(*rPoolItem);
+ SvxTabStopItem* pNewItem(new SvxTabStopItem(EE_PARA_TABS));
for ( sal_uInt16 i = 0; i < rItem.Count(); i++ )
{
const SvxTabStop& rTab = rItem[i];
SvxTabStop aNewStop( OutputDevice::LogicToLogic( rTab.GetTabPos(), eSourceUnit, eDestUnit ), rTab.GetAdjustment(), rTab.GetDecimal(), rTab.GetFill() );
- aNewItem.Insert( aNewStop );
+ pNewItem->Insert( aNewStop );
}
- rItem = aNewItem;
+ rPoolItem.reset(pNewItem);
}
break;
case EE_CHAR_FONTHEIGHT:
case EE_CHAR_FONTHEIGHT_CJK:
case EE_CHAR_FONTHEIGHT_CTL:
{
- assert(dynamic_cast<const SvxFontHeightItem *>(&rPoolItem) != nullptr);
- SvxFontHeightItem& rItem = static_cast<SvxFontHeightItem&>(rPoolItem);
+ assert(dynamic_cast<const SvxFontHeightItem *>(rPoolItem.get()) != nullptr);
+ SvxFontHeightItem& rItem = static_cast<SvxFontHeightItem&>(*rPoolItem);
rItem.SetHeight( OutputDevice::LogicToLogic( rItem.GetHeight(), eSourceUnit, eDestUnit ) );
}
break;
@@ -899,7 +899,7 @@ void ConvertAndPutItems( SfxItemSet& rDest, const SfxItemSet& rSource, const Map
if ( eSourceUnit != eDestUnit )
{
std::unique_ptr<SfxPoolItem> pItem(rSource.Get( nSourceWhich ).Clone());
- ConvertItem( *pItem, eSourceUnit, eDestUnit );
+ ConvertItem( pItem, eSourceUnit, eDestUnit );
pItem->SetWhich(nWhich);
rDest.Put( *pItem );
}
diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx
index 9d7ea22183e3..9f0e27909515 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -1225,7 +1225,7 @@ inline vcl::Cursor* ImpEditView::GetCursor()
return pCursor.get();
}
-void ConvertItem( SfxPoolItem& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit );
+void ConvertItem( std::unique_ptr<SfxPoolItem>& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit );
void ConvertAndPutItems( SfxItemSet& rDest, const SfxItemSet& rSource, const MapUnit* pSourceUnit = nullptr, const MapUnit* pDestUnit = nullptr );
AsianCompressionFlags GetCharTypeForCompression( sal_Unicode cChar );
Point Rotate( const Point& rPoint, short nOrientation, const Point& rOrigin );
diff --git a/editeng/source/editeng/impedit4.cxx b/editeng/source/editeng/impedit4.cxx
index 1838a063359e..79ac6acbc61d 100644
--- a/editeng/source/editeng/impedit4.cxx
+++ b/editeng/source/editeng/impedit4.cxx
@@ -1230,7 +1230,7 @@ EditSelection ImpEditEngine::InsertTextObject( const EditTextObject& rTextObject
else
{
std::unique_ptr<SfxPoolItem> pNew(rX.GetItem()->Clone());
- ConvertItem( *pNew, eSourceUnit, eDestUnit );
+ ConvertItem( pNew, eSourceUnit, eDestUnit );
pAttr = MakeCharAttrib( aEditDoc.GetItemPool(), *pNew, rX.GetStart()+nStartPos, rX.GetEnd()+nStartPos );
}
DBG_ASSERT( pAttr->GetEnd() <= aPaM.GetNode()->Len(), "InsertBinTextObject: Attribute does not fit! (1)" );
diff --git a/editeng/source/items/bulitem.cxx b/editeng/source/items/bulitem.cxx
index 04c844e99bdd..97c6f76457db 100644
--- a/editeng/source/items/bulitem.cxx
+++ b/editeng/source/items/bulitem.cxx
@@ -26,9 +26,6 @@
#include <tools/debug.hxx>
#include <vcl/dibtools.hxx>
-#define BULITEM_VERSION (sal_uInt16(2))
-
-
SvxBulletItem::SvxBulletItem( sal_uInt16 _nWhich )
: SfxPoolItem(_nWhich)
, aFont(OutputDevice::GetDefaultFont( DefaultFontType::FIXED, LANGUAGE_SYSTEM, GetDefaultFontFlags::NONE ))
@@ -69,12 +66,6 @@ SfxPoolItem* SvxBulletItem::Clone( SfxItemPool * /*pPool*/ ) const
}
-sal_uInt16 SvxBulletItem::GetVersion( sal_uInt16 /*nVersion*/ ) const
-{
- return BULITEM_VERSION;
-}
-
-
void SvxBulletItem::CopyValidProperties( const SvxBulletItem& rCopyFrom )
{
vcl::Font _aFont = GetFont();
diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx
index e384f8503d74..ac78520bdaa8 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -96,58 +96,6 @@ using namespace ::com::sun::star::drawing;
using namespace ::com::sun::star::table::BorderLineStyle;
-/*
-SvxBorderLine is not an SfxPoolItem, and has no Store/Create serialization/deserialization methods.
-Since border line information needs to be serialized by the table autoformat code, these file-local
-methods are defined to encapsulate the necessary serialization logic.
-*/
-namespace
-{
- /// Item version for saved border lines. The old version saves the line without style information.
- const int BORDER_LINE_OLD_VERSION = 0;
- /// Item version for saved border lies. The new version includes line style.
- const int BORDER_LINE_WITH_STYLE_VERSION = 1;
-
- /// Store a border line to a stream.
- SvStream& StoreBorderLine(SvStream &stream, const SvxBorderLine &l, sal_uInt16 version)
- {
- WriteColor( stream, l.GetColor() );
- stream.WriteUInt16( l.GetOutWidth() )
- .WriteUInt16( l.GetInWidth() )
- .WriteUInt16( l.GetDistance() );
-
- if (version >= BORDER_LINE_WITH_STYLE_VERSION)
- stream.WriteUInt16( static_cast<sal_uInt16>(l.GetBorderLineStyle()) );
-
- return stream;
- }
-
-
- /// Creates a border line from a stream.
- SvxBorderLine CreateBorderLine(SvStream &stream, sal_uInt16 version)
- {
- sal_uInt16 nOutline, nInline, nDistance;
- sal_uInt16 nStyle = css::table::BorderLineStyle::NONE;
- Color aColor;
- ReadColor( stream, aColor ).ReadUInt16( nOutline ).ReadUInt16( nInline ).ReadUInt16( nDistance );
-
- if (version >= BORDER_LINE_WITH_STYLE_VERSION)
- stream.ReadUInt16( nStyle );
-
- SvxBorderLine border(&aColor);
- border.GuessLinesWidths(static_cast<SvxBorderLineStyle>(nStyle), nOutline, nInline, nDistance);
- return border;
- }
-
-
- /// Retrieves a BORDER_LINE_* version from a BOX_BORDER_* version.
- sal_uInt16 BorderLineVersionFromBoxVersion(sal_uInt16 boxVersion)
- {
- return (boxVersion >= BOX_BORDER_STYLE_VERSION)? BORDER_LINE_WITH_STYLE_VERSION : BORDER_LINE_OLD_VERSION;
- }
-}
-
-
SfxPoolItem* SvxPaperBinItem::CreateDefault() { return new SvxPaperBinItem(0);}
SfxPoolItem* SvxSizeItem::CreateDefault() { return new SvxSizeItem(0);}
SfxPoolItem* SvxLRSpaceItem::CreateDefault() { return new SvxLRSpaceItem(0);}
@@ -647,14 +595,6 @@ bool SvxLRSpaceItem::GetPresentation
}
-sal_uInt16 SvxLRSpaceItem::GetVersion( sal_uInt16 nFileVersion ) const
-{
- return (nFileVersion == SOFFICE_FILEFORMAT_31)
- ? LRSPACE_TXTLEFT_VERSION
- : LRSPACE_NEGATIVE_VERSION;
-}
-
-
void SvxLRSpaceItem::ScaleMetrics( long nMult, long nDiv )
{
nFirstLineOfst = static_cast<short>(Scale( nFirstLineOfst, nMult, nDiv ));
@@ -883,12 +823,6 @@ bool SvxULSpaceItem::GetPresentation
}
-sal_uInt16 SvxULSpaceItem::GetVersion( sal_uInt16 /*nFileVersion*/ ) const
-{
- return ULSPACE_16_VERSION;
-}
-
-
void SvxULSpaceItem::ScaleMetrics( long nMult, long nDiv )
{
nUpper = static_cast<sal_uInt16>(Scale( nUpper, nMult, nDiv ));
@@ -1274,18 +1208,6 @@ bool SvxShadowItem::GetPresentation
}
-SvStream& SvxShadowItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm.WriteSChar( static_cast<sal_uInt8>(GetLocation()) )
- .WriteUInt16( GetWidth() )
- .WriteBool( aShadowColor.GetTransparency() > 0 );
- WriteColor( rStrm, GetColor() );
- WriteColor( rStrm, GetColor() );
- rStrm.WriteSChar( aShadowColor.GetTransparency() > 0 ? 0 : 1 ); //BRUSH_NULL : BRUSH_SOLID
- return rStrm;
-}
-
-
void SvxShadowItem::ScaleMetrics( long nMult, long nDiv )
{
nWidth = static_cast<sal_uInt16>(Scale( nWidth, nMult, nDiv ));
@@ -1298,23 +1220,6 @@ bool SvxShadowItem::HasMetrics() const
}
-SfxPoolItem* SvxShadowItem::Create( SvStream& rStrm, sal_uInt16 ) const
-{
- sal_Int8 cLoc;
- sal_uInt16 _nWidth;
- bool bTrans;
- Color aColor;
- Color aFillColor;
- sal_Int8 nStyle;
- rStrm.ReadSChar( cLoc ).ReadUInt16( _nWidth )
- .ReadCharAsBool( bTrans );
- ReadColor( rStrm, aColor );
- ReadColor( rStrm, aFillColor ).ReadSChar( nStyle );
- aColor.SetTransparency(bTrans ? 0xff : 0);
- return new SvxShadowItem( Which(), &aColor, _nWidth, static_cast<SvxShadowLocation>(cLoc) );
-}
-
-
sal_uInt16 SvxShadowItem::GetValueCount() const
{
return sal_uInt16(SvxShadowLocation::End); // SvxShadowLocation::BottomRight + 1
@@ -1376,21 +1281,6 @@ SvxBoxItem::~SvxBoxItem()
}
-SvxBoxItem& SvxBoxItem::operator=( const SvxBoxItem& rBox )
-{
- nTopDist = rBox.nTopDist;
- nBottomDist = rBox.nBottomDist;
- nLeftDist = rBox.nLeftDist;
- nRightDist = rBox.nRightDist;
- bRemoveAdjCellBorder = rBox.bRemoveAdjCellBorder;
- SetLine( rBox.GetTop(), SvxBoxItemLine::TOP );
- SetLine( rBox.GetBottom(), SvxBoxItemLine::BOTTOM );
- SetLine( rBox.GetLeft(), SvxBoxItemLine::LEFT );
- SetLine( rBox.GetRight(), SvxBoxItemLine::RIGHT );
- return *this;
-}
-
-
static bool CmpBrdLn( const std::unique_ptr<SvxBorderLine> & pBrd1, const SvxBorderLine* pBrd2 )
{
if( pBrd1.get() == pBrd2 )
@@ -1946,58 +1836,6 @@ bool SvxBoxItem::GetPresentation
}
-SvStream& SvxBoxItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
-{
- rStrm.WriteUInt16( GetSmallestDistance() );
- const SvxBorderLine* pLine[ 4 ]; // top, left, right, bottom
- pLine[ 0 ] = GetTop();
- pLine[ 1 ] = GetLeft();
- pLine[ 2 ] = GetRight();
- pLine[ 3 ] = GetBottom();
-
- for( int i = 0; i < 4; i++ )
- {
- const SvxBorderLine* l = pLine[ i ];
- if( l )
- {
- rStrm.WriteSChar(i);
- StoreBorderLine(rStrm, *l, BorderLineVersionFromBoxVersion(nItemVersion));
- }
- }
- sal_Int8 cLine = 4;
- if( nItemVersion >= BOX_4DISTS_VERSION &&
- !(nTopDist == nLeftDist &&
- nTopDist == nRightDist &&
- nTopDist == nBottomDist) )
- {
- cLine |= 0x10;
- }
-
- rStrm.WriteSChar( cLine );
-
- if( nItemVersion >= BOX_4DISTS_VERSION && (cLine & 0x10) != 0 )
- {
- rStrm.WriteUInt16( nTopDist )
- .WriteUInt16( nLeftDist )
- .WriteUInt16( nRightDist )
- .WriteUInt16( nBottomDist );
- }
-
- return rStrm;
-}
-
-
-sal_uInt16 SvxBoxItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxBoxItem: Is there a new file format?" );
- return SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ? 0 : BOX_BORDER_STYLE_VERSION;
-}
-
-
void SvxBoxItem::ScaleMetrics( long nMult, long nDiv )
{
if ( pTop ) pTop->ScaleMetrics( nMult, nDiv );
@@ -2017,45 +1855,6 @@ bool SvxBoxItem::HasMetrics() const
}
-SfxPoolItem* SvxBoxItem::Create( SvStream& rStrm, sal_uInt16 nIVersion ) const
-{
- sal_uInt16 nDistance;
- rStrm.ReadUInt16( nDistance );
- SvxBoxItem* pAttr = new SvxBoxItem( Which() );
-
- SvxBoxItemLine aLineMap[4] = { SvxBoxItemLine::TOP, SvxBoxItemLine::LEFT,
- SvxBoxItemLine::RIGHT, SvxBoxItemLine::BOTTOM };
-
- sal_Int8 cLine(0);
- while (rStrm.good())
- {
- rStrm.ReadSChar( cLine );
-
- if( cLine > 3 )
- break;
-
- SvxBorderLine aBorder = CreateBorderLine(rStrm, BorderLineVersionFromBoxVersion(nIVersion));
- pAttr->SetLine( &aBorder, aLineMap[cLine] );
- }
-
- if( nIVersion >= BOX_4DISTS_VERSION && (cLine&0x10) != 0 )
- {
- for(SvxBoxItemLine & i : aLineMap)
- {
- sal_uInt16 nDist;
- rStrm.ReadUInt16( nDist );
- pAttr->SetDistance( nDist, i );
- }
- }
- else
- {
- pAttr->SetAllDistances(nDistance);
- }
-
- return pAttr;
-}
-
-
const SvxBorderLine *SvxBoxItem::GetLine( SvxBoxItemLine nLine ) const
{
const SvxBorderLine *pRet = nullptr;
@@ -2269,22 +2068,6 @@ SvxBoxInfoItem::~SvxBoxInfoItem()
{
}
-SvxBoxInfoItem &SvxBoxInfoItem::operator=( const SvxBoxInfoItem& rCpy )
-{
- if (this != &rCpy)
- {
- pHori.reset( rCpy.GetHori() ? new SvxBorderLine( *rCpy.GetHori() ) : nullptr );
- pVert.reset( rCpy.GetVert() ? new SvxBorderLine( *rCpy.GetVert() ) : nullptr );
- mbEnableHor = rCpy.mbEnableHor;
- mbEnableVer = rCpy.mbEnableVer;
- bDist = rCpy.IsDist();
- bMinDist = rCpy.IsMinDist();
- nValidFlags = rCpy.nValidFlags;
- nDefDist = rCpy.GetDefDist();
- }
- return *this;
-}
-
bool SvxBoxInfoItem::operator==( const SfxPoolItem& rAttr ) const
{
assert(SfxPoolItem::operator==(rAttr));
@@ -2802,36 +2585,6 @@ SfxPoolItem* SvxFormatBreakItem::Clone( SfxItemPool* ) const
}
-SvStream& SvxFormatBreakItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
-{
- rStrm.WriteSChar( GetEnumValue() );
- if( FMTBREAK_NOAUTO > nItemVersion )
- rStrm.WriteSChar( 0x01 );
- return rStrm;
-}
-
-
-sal_uInt16 SvxFormatBreakItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxFormatBreakItem: Is there a new file format? ");
- return SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ? 0 : FMTBREAK_NOAUTO;
-}
-
-
-SfxPoolItem* SvxFormatBreakItem::Create( SvStream& rStrm, sal_uInt16 nVersion ) const
-{
- sal_Int8 eBreak, bDummy;
- rStrm.ReadSChar( eBreak );
- if( FMTBREAK_NOAUTO > nVersion )
- rStrm.ReadSChar( bDummy );
- return new SvxFormatBreakItem( static_cast<SvxBreak>(eBreak), Which() );
-}
-
-
sal_uInt16 SvxFormatBreakItem::GetValueCount() const
{
return sal_uInt16(SvxBreak::End); // SvxBreak::PageBoth + 1
@@ -2844,21 +2597,6 @@ SfxPoolItem* SvxFormatKeepItem::Clone( SfxItemPool* ) const
}
-SvStream& SvxFormatKeepItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm.WriteSChar( static_cast<sal_Int8>(GetValue()) );
- return rStrm;
-}
-
-
-SfxPoolItem* SvxFormatKeepItem::Create( SvStream& rStrm, sal_uInt16 ) const
-{
- sal_Int8 bIsKeep;
- rStrm.ReadSChar( bIsKeep );
- return new SvxFormatKeepItem( bIsKeep != 0, Which() );
-}
-
-
bool SvxFormatKeepItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -2894,14 +2632,6 @@ SvxLineItem::~SvxLineItem()
}
-SvxLineItem& SvxLineItem::operator=( const SvxLineItem& rLine )
-{
- SetLine( rLine.GetLine() );
-
- return *this;
-}
-
-
bool SvxLineItem::operator==( const SfxPoolItem& rAttr ) const
{
assert(SfxPoolItem::operator==(rAttr));
@@ -3001,24 +2731,6 @@ bool SvxLineItem::GetPresentation
}
-SvStream& SvxLineItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- if( pLine )
- {
- WriteColor( rStrm, pLine->GetColor() );
- rStrm.WriteInt16( pLine->GetOutWidth() )
- .WriteInt16( pLine->GetInWidth() )
- .WriteInt16( pLine->GetDistance() );
- }
- else
- {
- WriteColor( rStrm, Color() );
- rStrm.WriteInt16( 0 ).WriteInt16( 0 ).WriteInt16( 0 );
- }
- return rStrm;
-}
-
-
void SvxLineItem::ScaleMetrics( long nMult, long nDiv )
{
if ( pLine ) pLine->ScaleMetrics( nMult, nDiv );
@@ -3031,31 +2743,11 @@ bool SvxLineItem::HasMetrics() const
}
-SfxPoolItem* SvxLineItem::Create( SvStream& rStrm, sal_uInt16 ) const
-{
- SvxLineItem* _pLine = new SvxLineItem( Which() );
- short nOutline, nInline, nDistance;
- Color aColor;
-
- ReadColor( rStrm, aColor ).ReadInt16( nOutline ).ReadInt16( nInline ).ReadInt16( nDistance );
- if( nOutline )
- {
- SvxBorderLine aLine( &aColor );
- aLine.GuessLinesWidths(SvxBorderLineStyle::NONE, nOutline, nInline, nDistance);
- _pLine->SetLine( &aLine );
- }
- return _pLine;
-}
-
void SvxLineItem::SetLine( const SvxBorderLine* pNew )
{
pLine.reset( pNew ? new SvxBorderLine( *pNew ) : nullptr );
}
-#define LOAD_GRAPHIC (sal_uInt16(0x0001))
-#define LOAD_LINK (sal_uInt16(0x0002))
-#define LOAD_FILTER (sal_uInt16(0x0004))
-
SvxBrushItem::SvxBrushItem(sal_uInt16 _nWhich)
: SfxPoolItem(_nWhich)
, aColor(COL_TRANSPARENT)
@@ -3114,115 +2806,6 @@ SvxBrushItem::SvxBrushItem(const OUString& rLink, const OUString& rFilter,
DBG_ASSERT( GPOS_NONE != ePos, "SvxBrushItem-Ctor with GPOS_NONE == ePos" );
}
-SvxBrushItem::SvxBrushItem(SvStream& rStream, sal_uInt16 nVersion, sal_uInt16 _nWhich)
- : SfxPoolItem(_nWhich)
- , aColor(COL_TRANSPARENT)
- , nShadingValue(ShadingPattern::CLEAR)
- , nGraphicTransparency(0)
- , eGraphicPos(GPOS_NONE)
- , bLoadAgain(false)
-{
- bool bTrans;
- Color aTempColor;
- Color aTempFillColor;
- sal_Int8 nStyle;
-
- rStream.ReadCharAsBool( bTrans );
- ReadColor( rStream, aTempColor );
- ReadColor( rStream, aTempFillColor );
- rStream.ReadSChar( nStyle );
-
- switch ( nStyle )
- {
- case 8: // BRUSH_25:
- {
- sal_uInt32 nRed = aTempColor.GetRed();
- sal_uInt32 nGreen = aTempColor.GetGreen();
- sal_uInt32 nBlue = aTempColor.GetBlue();
- nRed += static_cast<sal_uInt32>(aTempFillColor.GetRed())*2;
- nGreen += static_cast<sal_uInt32>(aTempFillColor.GetGreen())*2;
- nBlue += static_cast<sal_uInt32>(aTempFillColor.GetBlue())*2;
- aColor = Color( static_cast<sal_Int8>(nRed/3), static_cast<sal_Int8>(nGreen/3), static_cast<sal_Int8>(nBlue/3) );
- }
- break;
-
- case 9: // BRUSH_50:
- {
- sal_uInt32 nRed = aTempColor.GetRed();
- sal_uInt32 nGreen = aTempColor.GetGreen();
- sal_uInt32 nBlue = aTempColor.GetBlue();
- nRed += static_cast<sal_uInt32>(aTempFillColor.GetRed());
- nGreen += static_cast<sal_uInt32>(aTempFillColor.GetGreen());
- nBlue += static_cast<sal_uInt32>(aTempFillColor.GetBlue());
- aColor = Color( static_cast<sal_Int8>(nRed/2), static_cast<sal_Int8>(nGreen/2), static_cast<sal_Int8>(nBlue/2) );
- }
- break;
-
- case 10: // BRUSH_75:
- {
- sal_uInt32 nRed = aTempColor.GetRed()*2;
- sal_uInt32 nGreen = aTempColor.GetGreen()*2;
- sal_uInt32 nBlue = aTempColor.GetBlue()*2;
- nRed += static_cast<sal_uInt32>(aTempFillColor.GetRed());
- nGreen += static_cast<sal_uInt32>(aTempFillColor.GetGreen());
- nBlue += static_cast<sal_uInt32>(aTempFillColor.GetBlue());
- aColor = Color( static_cast<sal_Int8>(nRed/3), static_cast<sal_Int8>(nGreen/3), static_cast<sal_Int8>(nBlue/3) );
- }
- break;
-
- case 0: // BRUSH_NULL:
- aColor = COL_TRANSPARENT;
- break;
-
- default:
- aColor = aTempColor;
- }
-
- if ( nVersion >= BRUSH_GRAPHIC_VERSION )
- {
- sal_uInt16 nDoLoad = 0;
- sal_Int8 nPos;
-
- rStream.ReadUInt16( nDoLoad );
-
- if ( nDoLoad & LOAD_GRAPHIC )
- {
- Graphic aGraphic;
-
- ReadGraphic( rStream, aGraphic );
- xGraphicObject.reset(new GraphicObject(aGraphic));
-
- if( SVSTREAM_FILEFORMAT_ERROR == rStream.GetError() )
- {
- rStream.ResetError();
- rStream.SetError( ERRCODE_SVX_GRAPHIC_WRONG_FILEFORMAT.MakeWarning() );
- }
- }
-
- if ( nDoLoad & LOAD_LINK )
- {
- // UNICODE: rStream >> aRel;
- OUString aRel = rStream.ReadUniOrByteString(rStream.GetStreamCharSet());
-
- // TODO/MBA: how can we get a BaseURL here?!
- OSL_FAIL("No BaseURL!");
- OUString aAbs = INetURLObject::GetAbsURL( "", aRel );
- DBG_ASSERT( !aAbs.isEmpty(), "Invalid URL!" );
- maStrLink = aAbs;
- }
-
- if ( nDoLoad & LOAD_FILTER )
- {
- // UNICODE: rStream >> maStrFilter;
- maStrFilter = rStream.ReadUniOrByteString(rStream.GetStreamCharSet());
- }
-
- rStream.ReadSChar( nPos );
-
- eGraphicPos = static_cast<SvxGraphicPosition>(nPos);
- }
-}
-
SvxBrushItem::SvxBrushItem(const SvxBrushItem& rItem)
: SfxPoolItem(rItem)
, aColor(rItem.aColor)
@@ -3269,11 +2852,6 @@ bool SvxBrushItem::isUsed() const
return false;
}
-sal_uInt16 SvxBrushItem::GetVersion( sal_uInt16 /*nFileVersion*/ ) const
-{
- return BRUSH_GRAPHIC_VERSION;
-}
-
static sal_Int8 lcl_PercentToTransparency(long nPercent)
{
@@ -3498,35 +3076,6 @@ bool SvxBrushItem::GetPresentation
return true;
}
-SvxBrushItem& SvxBrushItem::operator=(const SvxBrushItem& rItem)
-{
- if (&rItem != this)
- {
- aColor = rItem.aColor;
- nShadingValue = rItem.nShadingValue;
- xGraphicObject.reset(rItem.xGraphicObject ? new GraphicObject(*rItem.xGraphicObject) : nullptr);
- nGraphicTransparency = rItem.nGraphicTransparency;
- maStrLink = rItem.maStrLink;
- maStrFilter = rItem.maStrFilter;
- eGraphicPos = rItem.eGraphicPos;
- bLoadAgain = rItem.bLoadAgain;
- }
- return *this;
-}
-
-SvxBrushItem& SvxBrushItem::operator=(SvxBrushItem&& rItem)
-{
- aColor = std::move(rItem.aColor);
- nShadingValue = std::move(rItem.nShadingValue);
- xGraphicObject = std::move(rItem.xGraphicObject);
- nGraphicTransparency = std::move(rItem.nGraphicTransparency);
- maStrLink = std::move(rItem.maStrLink);
- maStrFilter = std::move(rItem.maStrFilter);
- eGraphicPos = std::move(rItem.eGraphicPos);
- bLoadAgain = std::move(rItem.bLoadAgain);
- return *this;
-}
-
bool SvxBrushItem::operator==( const SfxPoolItem& rAttr ) const
{
assert(SfxPoolItem::operator==(rAttr));
@@ -3572,48 +3121,6 @@ SfxPoolItem* SvxBrushItem::Clone( SfxItemPool* ) const
}
-SfxPoolItem* SvxBrushItem::Create( SvStream& rStream, sal_uInt16 nVersion ) const
-{
- return new SvxBrushItem( rStream, nVersion, Which() );
-}
-
-
-SvStream& SvxBrushItem::Store( SvStream& rStream , sal_uInt16 /*nItemVersion*/ ) const
-{
- rStream.WriteBool( false );
- WriteColor( rStream, aColor );
- WriteColor( rStream, aColor );
- rStream.WriteSChar( aColor.GetTransparency() > 0 ? 0 : 1 ); //BRUSH_NULL : BRUSH_SOLID
-
- sal_uInt16 nDoLoad = 0;
-
- if (xGraphicObject && maStrLink.isEmpty())
- nDoLoad |= LOAD_GRAPHIC;
- if ( !maStrLink.isEmpty() )
- nDoLoad |= LOAD_LINK;
- if ( !maStrFilter.isEmpty() )
- nDoLoad |= LOAD_FILTER;
- rStream.WriteUInt16( nDoLoad );
-
- if (xGraphicObject && maStrLink.isEmpty())
- WriteGraphic(rStream, xGraphicObject->GetGraphic());
- if ( !maStrLink.isEmpty() )
- {
- OSL_FAIL("No BaseURL!");
- // TODO/MBA: how to get a BaseURL?!
- OUString aRel = INetURLObject::GetRelURL( "", maStrLink );
- // UNICODE: rStream << aRel;
- rStream.WriteUniOrByteString(aRel, rStream.GetStreamCharSet());
- }
- if ( !maStrFilter.isEmpty() )
- {
- // UNICODE: rStream << maStrFilter;
- rStream.WriteUniOrByteString(maStrFilter, rStream.GetStreamCharSet());
- }
- rStream.WriteSChar( eGraphicPos );
- return rStream;
-}
-
const GraphicObject* SvxBrushItem::GetGraphicObject(OUString const & referer) const
{
if (bLoadAgain && !maStrLink.isEmpty() && !xGraphicObject)
@@ -3812,18 +3319,6 @@ SfxPoolItem* SvxFrameDirectionItem::Clone( SfxItemPool * ) const
}
-SfxPoolItem* SvxFrameDirectionItem::Create( SvStream & rStrm, sal_uInt16 /*nVer*/ ) const
-{
- sal_uInt16 nValue;
- rStrm.ReadUInt16( nValue );
- return new SvxFrameDirectionItem( static_cast<SvxFrameDirection>(nValue), Which() );
-}
-
-sal_uInt16 SvxFrameDirectionItem::GetVersion( sal_uInt16 nFVer ) const
-{
- return SOFFICE_FILEFORMAT_50 > nFVer ? USHRT_MAX : 0;
-}
-
const char* getFrmDirResId(size_t nIndex)
{
const char* const RID_SVXITEMS_FRMDIR[] =
diff --git a/editeng/source/items/justifyitem.cxx b/editeng/source/items/justifyitem.cxx
index d010f72d58b1..1b9701356bdc 100644
--- a/editeng/source/items/justifyitem.cxx
+++ b/editeng/source/items/justifyitem.cxx
@@ -171,15 +171,6 @@ SfxPoolItem* SvxHorJustifyItem::Clone( SfxItemPool* ) const
return new SvxHorJustifyItem( *this );
}
-
-SfxPoolItem* SvxHorJustifyItem::Create( SvStream& rStream, sal_uInt16 ) const
-{
- sal_uInt16 nVal;
- rStream.ReadUInt16( nVal );
- return new SvxHorJustifyItem( static_cast<SvxCellHorJustify>(nVal), Which() );
-}
-
-
sal_uInt16 SvxHorJustifyItem::GetValueCount() const
{
return sal_uInt16(SvxCellHorJustify::Repeat) + 1; // Last Enum value + 1
@@ -308,14 +299,6 @@ SfxPoolItem* SvxVerJustifyItem::Clone( SfxItemPool* ) const
}
-SfxPoolItem* SvxVerJustifyItem::Create( SvStream& rStream, sal_uInt16 ) const
-{
- sal_uInt16 nVal;
- rStream.ReadUInt16( nVal );
- return new SvxVerJustifyItem( static_cast<SvxCellVerJustify>(nVal), Which() );
-}
-
-
sal_uInt16 SvxVerJustifyItem::GetValueCount() const
{
return static_cast<sal_uInt16>(SvxCellVerJustify::Bottom) + 1; // Last Enum value + 1
diff --git a/editeng/source/items/legacyitem.cxx b/editeng/source/items/legacyitem.cxx
new file mode 100755
index 000000000000..9a4acfafcead
--- /dev/null
+++ b/editeng/source/items/legacyitem.cxx
@@ -0,0 +1,807 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <editeng/legacyitem.hxx>
+#include <unotools/fontdefs.hxx>
+#include <tools/tenccvt.hxx>
+#include <tools/stream.hxx>
+#include <comphelper/fileformat.h>
+#include <vcl/graph.hxx>
+#include <vcl/GraphicObject.hxx>
+#include <osl/diagnose.h>
+#include <tools/urlobj.hxx>
+#include <editeng/fontitem.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/wghtitem.hxx>
+#include <editeng/postitem.hxx>
+#include <editeng/udlnitem.hxx>
+#include <editeng/crossedoutitem.hxx>
+#include <editeng/colritem.hxx>
+#include <editeng/boxitem.hxx>
+#include <editeng/borderline.hxx>
+#include <editeng/lineitem.hxx>
+#include <editeng/brushitem.hxx>
+#include <editeng/editerr.hxx>
+#include <editeng/adjustitem.hxx>
+#include <editeng/justifyitem.hxx>
+#include <editeng/frmdiritem.hxx>
+#include <editeng/formatbreakitem.hxx>
+#include <editeng/keepitem.hxx>
+#include <editeng/shaditem.hxx>
+
+void Create_legacy_direct_set(SvxFontHeightItem& rItem, sal_uInt32 nH, sal_uInt16 nP, MapUnit eP)
+{
+ rItem.legacy_direct_set(nH, nP, eP);
+}
+
+namespace legacy
+{
+ namespace SvxFont
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxFontItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt8 _eFamily, eFontPitch, eFontTextEncoding;
+ OUString aName, aStyle;
+ rStrm.ReadUChar( _eFamily );
+ rStrm.ReadUChar( eFontPitch );
+ rStrm.ReadUChar( eFontTextEncoding );
+
+ // UNICODE: rStrm >> aName;
+ aName = rStrm.ReadUniOrByteString(rStrm.GetStreamCharSet());
+
+ // UNICODE: rStrm >> aStyle;
+ aStyle = rStrm.ReadUniOrByteString(rStrm.GetStreamCharSet());
+
+ // Set the "correct" textencoding
+ eFontTextEncoding = static_cast<sal_uInt8>(GetSOLoadTextEncoding( eFontTextEncoding ));
+
+ // at some point, the StarBats changes from ANSI font to SYMBOL font
+ if ( RTL_TEXTENCODING_SYMBOL != eFontTextEncoding && aName == "StarBats" )
+ eFontTextEncoding = RTL_TEXTENCODING_SYMBOL;
+
+ // Check if we have stored unicode
+ sal_uInt64 const nStreamPos = rStrm.Tell();
+ // #define STORE_UNICODE_MAGIC_MARKER 0xFE331188
+ sal_uInt32 nMagic = 0xFE331188;
+ rStrm.ReadUInt32( nMagic );
+ if ( nMagic == 0xFE331188 )
+ {
+ aName = rStrm.ReadUniOrByteString( RTL_TEXTENCODING_UNICODE );
+ aStyle = rStrm.ReadUniOrByteString( RTL_TEXTENCODING_UNICODE );
+ }
+ else
+ {
+ rStrm.Seek( nStreamPos );
+ }
+
+ rItem.SetFamilyName(aName);
+ rItem.SetStyleName(aStyle);
+ rItem.SetFamily(static_cast<FontFamily>(_eFamily));
+ rItem.SetPitch(static_cast<FontPitch>(eFontPitch));
+ rItem.SetCharSet(static_cast<rtl_TextEncoding>(eFontTextEncoding));
+ }
+
+ SvStream& Store(const SvxFontItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ const bool bToBats(IsStarSymbol(rItem.GetFamilyName()));
+
+ rStrm.WriteUChar(rItem.GetFamily()).WriteUChar(rItem.GetPitch()).WriteUChar(bToBats ?
+ RTL_TEXTENCODING_SYMBOL :
+ GetSOStoreTextEncoding(rItem.GetCharSet()));
+
+ const OUString aStoreFamilyName(bToBats ? "StarBats" : rItem.GetFamilyName());
+
+ rStrm.WriteUniOrByteString(aStoreFamilyName, rStrm.GetStreamCharSet());
+ rStrm.WriteUniOrByteString(rItem.GetStyleName(), rStrm.GetStreamCharSet());
+
+ return rStrm;
+ }
+ }
+
+ namespace SvxFontHeight
+ {
+ sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion)
+ {
+ return (nFileFormatVersion <= SOFFICE_FILEFORMAT_40)
+ ? FONTHEIGHT_16_VERSION
+ : FONTHEIGHT_UNIT_VERSION;
+ }
+
+ void Create(SvxFontHeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ sal_uInt16 nsize, nprop = 0;
+ MapUnit nPropUnit = MapUnit::MapRelative;
+
+ rStrm.ReadUInt16( nsize );
+
+ if( FONTHEIGHT_16_VERSION <= nItemVersion )
+ rStrm.ReadUInt16( nprop );
+ else
+ {
+ sal_uInt8 nP;
+ rStrm .ReadUChar( nP );
+ nprop = static_cast<sal_uInt16>(nP);
+ }
+
+ if( FONTHEIGHT_UNIT_VERSION <= nItemVersion )
+ {
+ sal_uInt16 nTmp;
+ rStrm.ReadUInt16( nTmp );
+ nPropUnit = static_cast<MapUnit>(nTmp);
+ }
+
+ Create_legacy_direct_set(rItem, nsize, nprop, nPropUnit);
+ }
+
+ SvStream& Store(const SvxFontHeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ rStrm.WriteUInt16( rItem.GetHeight() );
+
+ if( FONTHEIGHT_UNIT_VERSION <= nItemVersion )
+ rStrm.WriteUInt16( rItem.GetProp() ).WriteUInt16( static_cast<sal_uInt16>(rItem.GetPropUnit()) );
+ else
+ {
+ // When exporting to the old versions the relative information is lost
+ // when there is no percentage
+ sal_uInt16 _nProp = rItem.GetProp();
+ if( MapUnit::MapRelative != rItem.GetPropUnit() )
+ _nProp = 100;
+ rStrm.WriteUInt16( _nProp );
+ }
+ return rStrm;
+ }
+ }
+
+ namespace SvxWeight
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxWeightItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt8 nWeight(0);
+ rStrm.ReadUChar(nWeight);
+ rItem.SetValue(static_cast<FontWeight>(nWeight));
+ }
+
+ SvStream& Store(const SvxWeightItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteUChar(rItem.GetValue());
+ return rStrm;
+ }
+ }
+
+ namespace SvxPosture
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxPostureItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt8 nPosture(0);
+ rStrm.ReadUChar(nPosture);
+ rItem.SetValue(static_cast<FontItalic>(nPosture));
+ }
+
+ SvStream& Store(const SvxPostureItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteUChar( rItem.GetValue() );
+ return rStrm;
+ }
+ }
+
+ namespace SvxTextLine // SvxUnderlineItem, SvxOverlineItem -> SvxTextLineItem
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxTextLineItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt8 nState(0);
+ rStrm.ReadUChar(nState);
+ rItem.SetValue(static_cast<FontLineStyle>(nState));
+ // GetColor() is *not* saved/loaded ?!?
+ }
+
+ SvStream& Store(const SvxTextLineItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteUChar(rItem.GetValue());
+ // GetColor() is *not* saved/loaded ?!?
+ return rStrm;
+ }
+ }
+
+ namespace SvxCrossedOut
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxCrossedOutItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt8 eCross(0);
+ rStrm.ReadUChar(eCross);
+ rItem.SetValue(static_cast<FontStrikeout>(eCross));
+ }
+
+ SvStream& Store(const SvxCrossedOutItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteUChar(rItem.GetValue());
+ return rStrm;
+ }
+ }
+
+ namespace SvxColor
+ {
+ sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion)
+ {
+ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFileFormatVersion ||
+ SOFFICE_FILEFORMAT_40==nFileFormatVersion ||
+ SOFFICE_FILEFORMAT_50==nFileFormatVersion,
+ "SvxColorItem: Is there a new file format? ");
+ return SOFFICE_FILEFORMAT_50 >= nFileFormatVersion ? VERSION_USEAUTOCOLOR : 0;
+ }
+
+ void Create(SvxColorItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ Color aColor(COL_AUTO);
+ ReadColor(rStrm, aColor);
+ rItem.SetValue(aColor);
+ }
+
+ SvStream& Store(const SvxColorItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ if( VERSION_USEAUTOCOLOR == nItemVersion && COL_AUTO == rItem.GetValue() )
+ WriteColor( rStrm, COL_BLACK );
+ else
+ WriteColor( rStrm, rItem.GetValue() );
+ return rStrm;
+ }
+ }
+
+ namespace SvxBox
+ {
+ sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion)
+ {
+ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFileFormatVersion ||
+ SOFFICE_FILEFORMAT_40==nFileFormatVersion ||
+ SOFFICE_FILEFORMAT_50==nFileFormatVersion,
+ "SvxBoxItem: Is there a new file format?" );
+ return SOFFICE_FILEFORMAT_31==nFileFormatVersion ||
+ SOFFICE_FILEFORMAT_40==nFileFormatVersion ? 0 : BOX_BORDER_STYLE_VERSION;
+ }
+
+ /// Item version for saved border lines. The old version saves the line without style information.
+ const int BORDER_LINE_OLD_VERSION = 0;
+ /// Item version for saved border lies. The new version includes line style.
+ const int BORDER_LINE_WITH_STYLE_VERSION = 1;
+
+ /// Creates a border line from a stream.
+ static ::editeng::SvxBorderLine CreateBorderLine(SvStream &stream, sal_uInt16 version)
+ {
+ sal_uInt16 nOutline, nInline, nDistance;
+ sal_uInt16 nStyle = css::table::BorderLineStyle::NONE;
+ Color aColor;
+ ReadColor( stream, aColor ).ReadUInt16( nOutline ).ReadUInt16( nInline ).ReadUInt16( nDistance );
+
+ if (version >= BORDER_LINE_WITH_STYLE_VERSION)
+ stream.ReadUInt16( nStyle );
+
+ ::editeng::SvxBorderLine border(&aColor);
+ border.GuessLinesWidths(static_cast<SvxBorderLineStyle>(nStyle), nOutline, nInline, nDistance);
+ return border;
+ }
+
+ /// Retrieves a BORDER_LINE_* version from a BOX_BORDER_* version.
+ static sal_uInt16 BorderLineVersionFromBoxVersion(sal_uInt16 boxVersion)
+ {
+ return (boxVersion >= BOX_BORDER_STYLE_VERSION)? BORDER_LINE_WITH_STYLE_VERSION : BORDER_LINE_OLD_VERSION;
+ }
+
+ void Create(SvxBoxItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ sal_uInt16 nDistance(0);
+ rStrm.ReadUInt16( nDistance );
+ SvxBoxItemLine aLineMap[4] = { SvxBoxItemLine::TOP, SvxBoxItemLine::LEFT,
+ SvxBoxItemLine::RIGHT, SvxBoxItemLine::BOTTOM };
+ sal_Int8 cLine(0);
+
+ while (rStrm.good())
+ {
+ rStrm.ReadSChar( cLine );
+
+ if( cLine > 3 )
+ break;
+
+ ::editeng::SvxBorderLine aBorder = CreateBorderLine(rStrm, BorderLineVersionFromBoxVersion(nItemVersion));
+ rItem.SetLine( &aBorder, aLineMap[cLine] );
+ }
+
+ if( nItemVersion >= BOX_4DISTS_VERSION && (cLine&0x10) != 0 )
+ {
+ for(SvxBoxItemLine & i : aLineMap)
+ {
+ sal_uInt16 nDist;
+ rStrm.ReadUInt16( nDist );
+ rItem.SetDistance( nDist, i );
+ }
+ }
+ else
+ {
+ rItem.SetAllDistances(nDistance);
+ }
+ }
+
+ /// Store a border line to a stream.
+ static SvStream& StoreBorderLine(SvStream &stream, const ::editeng::SvxBorderLine &l, sal_uInt16 version)
+ {
+ WriteColor( stream, l.GetColor() );
+ stream.WriteUInt16( l.GetOutWidth() )
+ .WriteUInt16( l.GetInWidth() )
+ .WriteUInt16( l.GetDistance() );
+
+ if (version >= BORDER_LINE_WITH_STYLE_VERSION)
+ stream.WriteUInt16( static_cast<sal_uInt16>(l.GetBorderLineStyle()) );
+
+ return stream;
+ }
+
+ SvStream& Store(const SvxBoxItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ rStrm.WriteUInt16( rItem.GetSmallestDistance() );
+ const ::editeng::SvxBorderLine* pLine[ 4 ]; // top, left, right, bottom
+ pLine[ 0 ] = rItem.GetTop();
+ pLine[ 1 ] = rItem.GetLeft();
+ pLine[ 2 ] = rItem.GetRight();
+ pLine[ 3 ] = rItem.GetBottom();
+
+ for( int i = 0; i < 4; i++ )
+ {
+ const ::editeng::SvxBorderLine* l = pLine[ i ];
+ if( l )
+ {
+ rStrm.WriteSChar(i);
+ StoreBorderLine(rStrm, *l, BorderLineVersionFromBoxVersion(nItemVersion));
+ }
+ }
+ sal_Int8 cLine = 4;
+ const sal_uInt16 nTopDist(rItem.GetDistance(SvxBoxItemLine::TOP));
+ const sal_uInt16 nLeftDist(rItem.GetDistance(SvxBoxItemLine::LEFT));
+ const sal_uInt16 nRightDist(rItem.GetDistance(SvxBoxItemLine::RIGHT));
+ const sal_uInt16 nBottomDist(rItem.GetDistance(SvxBoxItemLine::BOTTOM));
+
+ if( nItemVersion >= BOX_4DISTS_VERSION &&
+ !(nTopDist == nLeftDist &&
+ nTopDist == nRightDist &&
+ nTopDist == nBottomDist) )
+ {
+ cLine |= 0x10;
+ }
+
+ rStrm.WriteSChar( cLine );
+
+ if( nItemVersion >= BOX_4DISTS_VERSION && (cLine & 0x10) != 0 )
+ {
+ rStrm.WriteUInt16( nTopDist )
+ .WriteUInt16( nLeftDist )
+ .WriteUInt16( nRightDist )
+ .WriteUInt16( nBottomDist );
+ }
+
+ return rStrm;
+ }
+ }
+
+ namespace SvxLine
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxLineItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ short nOutline, nInline, nDistance;
+ Color aColor;
+
+ ReadColor( rStrm, aColor ).ReadInt16( nOutline ).ReadInt16( nInline ).ReadInt16( nDistance );
+ if( nOutline )
+ {
+ ::editeng::SvxBorderLine aLine( &aColor );
+ aLine.GuessLinesWidths(SvxBorderLineStyle::NONE, nOutline, nInline, nDistance);
+ rItem.SetLine( &aLine );
+ }
+ }
+
+ SvStream& Store(const SvxLineItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ const ::editeng::SvxBorderLine* pLine(rItem.GetLine());
+
+ if(nullptr != pLine)
+ {
+ WriteColor( rStrm, pLine->GetColor() );
+ rStrm.WriteInt16( pLine->GetOutWidth() )
+ .WriteInt16( pLine->GetInWidth() )
+ .WriteInt16( pLine->GetDistance() );
+ }
+ else
+ {
+ WriteColor( rStrm, Color() );
+ rStrm.WriteInt16( 0 ).WriteInt16( 0 ).WriteInt16( 0 );
+ }
+
+ return rStrm;
+ }
+ }
+
+ namespace SvxBrush
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return BRUSH_GRAPHIC_VERSION;
+ }
+
+ const sal_uInt16 LOAD_GRAPHIC = (sal_uInt16(0x0001));
+ const sal_uInt16 LOAD_LINK = (sal_uInt16(0x0002));
+ const sal_uInt16 LOAD_FILTER = (sal_uInt16(0x0004));
+
+ void Create(SvxBrushItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ bool bTrans;
+ Color aTempColor;
+ Color aTempFillColor;
+ sal_Int8 nStyle;
+
+ rStrm.ReadCharAsBool( bTrans );
+ ReadColor( rStrm, aTempColor );
+ ReadColor( rStrm, aTempFillColor );
+ rStrm.ReadSChar( nStyle );
+
+ switch ( nStyle )
+ {
+ case 8: // BRUSH_25:
+ {
+ sal_uInt32 nRed = aTempColor.GetRed();
+ sal_uInt32 nGreen = aTempColor.GetGreen();
+ sal_uInt32 nBlue = aTempColor.GetBlue();
+ nRed += static_cast<sal_uInt32>(aTempFillColor.GetRed())*2;
+ nGreen += static_cast<sal_uInt32>(aTempFillColor.GetGreen())*2;
+ nBlue += static_cast<sal_uInt32>(aTempFillColor.GetBlue())*2;
+ rItem.SetColor(Color( static_cast<sal_Int8>(nRed/3), static_cast<sal_Int8>(nGreen/3), static_cast<sal_Int8>(nBlue/3) ));
+ }
+ break;
+
+ case 9: // BRUSH_50:
+ {
+ sal_uInt32 nRed = aTempColor.GetRed();
+ sal_uInt32 nGreen = aTempColor.GetGreen();
+ sal_uInt32 nBlue = aTempColor.GetBlue();
+ nRed += static_cast<sal_uInt32>(aTempFillColor.GetRed());
+ nGreen += static_cast<sal_uInt32>(aTempFillColor.GetGreen());
+ nBlue += static_cast<sal_uInt32>(aTempFillColor.GetBlue());
+ rItem.SetColor(Color( static_cast<sal_Int8>(nRed/2), static_cast<sal_Int8>(nGreen/2), static_cast<sal_Int8>(nBlue/2) ));
+ }
+ break;
+
+ case 10: // BRUSH_75:
+ {
+ sal_uInt32 nRed = aTempColor.GetRed()*2;
+ sal_uInt32 nGreen = aTempColor.GetGreen()*2;
+ sal_uInt32 nBlue = aTempColor.GetBlue()*2;
+ nRed += static_cast<sal_uInt32>(aTempFillColor.GetRed());
+ nGreen += static_cast<sal_uInt32>(aTempFillColor.GetGreen());
+ nBlue += static_cast<sal_uInt32>(aTempFillColor.GetBlue());
+ rItem.SetColor(Color( static_cast<sal_Int8>(nRed/3), static_cast<sal_Int8>(nGreen/3), static_cast<sal_Int8>(nBlue/3) ));
+ }
+ break;
+
+ case 0: // BRUSH_NULL:
+ rItem.SetColor(COL_TRANSPARENT);
+ break;
+
+ default:
+ rItem.SetColor(aTempColor);
+ }
+
+ if ( nItemVersion >= BRUSH_GRAPHIC_VERSION )
+ {
+ sal_uInt16 nDoLoad = 0;
+ sal_Int8 nPos;
+
+ rStrm.ReadUInt16( nDoLoad );
+
+ if ( nDoLoad & LOAD_GRAPHIC )
+ {
+ Graphic aGraphic;
+
+ ReadGraphic( rStrm, aGraphic );
+ rItem.SetGraphicObject(GraphicObject(aGraphic));
+
+ if( SVSTREAM_FILEFORMAT_ERROR == rStrm.GetError() )
+ {
+ rStrm.ResetError();
+ rStrm.SetError( ERRCODE_SVX_GRAPHIC_WRONG_FILEFORMAT.MakeWarning() );
+ }
+ }
+
+ if ( nDoLoad & LOAD_LINK )
+ {
+ // UNICODE: rStrm >> aRel;
+ OUString aRel = rStrm.ReadUniOrByteString(rStrm.GetStreamCharSet());
+
+ // TODO/MBA: how can we get a BaseURL here?!
+ OSL_FAIL("No BaseURL!");
+ OUString aAbs = INetURLObject::GetAbsURL( "", aRel );
+ DBG_ASSERT( !aAbs.isEmpty(), "Invalid URL!" );
+ rItem.SetGraphicLink(aAbs);
+ }
+
+ if ( nDoLoad & LOAD_FILTER )
+ {
+ // UNICODE: rStrm >> maStrFilter;
+ rItem.SetGraphicFilter(rStrm.ReadUniOrByteString(rStrm.GetStreamCharSet()));
+ }
+
+ rStrm.ReadSChar( nPos );
+
+ rItem.SetGraphicPos(static_cast<SvxGraphicPosition>(nPos));
+ }
+ }
+
+ SvStream& Store(const SvxBrushItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteBool( false );
+ WriteColor( rStrm, rItem.GetColor() );
+ WriteColor( rStrm, rItem.GetColor() );
+ rStrm.WriteSChar( rItem.GetColor().GetTransparency() > 0 ? 0 : 1 ); //BRUSH_NULL : BRUSH_SOLID
+
+ sal_uInt16 nDoLoad = 0;
+ const GraphicObject* pGraphicObject(rItem.GetGraphicObject());
+
+ if (nullptr != pGraphicObject && rItem.GetGraphicLink().isEmpty())
+ nDoLoad |= LOAD_GRAPHIC;
+ if ( !rItem.GetGraphicLink().isEmpty() )
+ nDoLoad |= LOAD_LINK;
+ if ( !rItem.GetGraphicFilter().isEmpty() )
+ nDoLoad |= LOAD_FILTER;
+ rStrm.WriteUInt16( nDoLoad );
+
+ if (nullptr != pGraphicObject && rItem.GetGraphicLink().isEmpty())
+ WriteGraphic(rStrm, pGraphicObject->GetGraphic());
+ if ( !rItem.GetGraphicLink().isEmpty() )
+ {
+ OSL_FAIL("No BaseURL!");
+ // TODO/MBA: how to get a BaseURL?!
+ OUString aRel = INetURLObject::GetRelURL( "", rItem.GetGraphicLink() );
+ // UNICODE: rStrm << aRel;
+ rStrm.WriteUniOrByteString(aRel, rStrm.GetStreamCharSet());
+ }
+ if ( !rItem.GetGraphicFilter().isEmpty() )
+ {
+ // UNICODE: rStrm << rItem.GetGraphicFilter();
+ rStrm.WriteUniOrByteString(rItem.GetGraphicFilter(), rStrm.GetStreamCharSet());
+ }
+ rStrm.WriteSChar( rItem.GetGraphicPos() );
+ return rStrm;
+ }
+ }
+
+ namespace SvxAdjust
+ {
+ sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion)
+ {
+ return (nFileFormatVersion == SOFFICE_FILEFORMAT_31)
+ ? 0 : ADJUST_LASTBLOCK_VERSION;
+ }
+
+ void Create(SvxAdjustItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ char eAdjustment;
+ rStrm.ReadChar(eAdjustment);
+ rItem.SetAdjust(static_cast<::SvxAdjust>(eAdjustment));
+
+ if( nItemVersion >= ADJUST_LASTBLOCK_VERSION )
+ {
+ sal_Int8 nFlags;
+ rStrm.ReadSChar( nFlags );
+ rItem.SetAsFlags(nFlags);
+ }
+ }
+
+ SvStream& Store(const SvxAdjustItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ rStrm.WriteChar( static_cast<char>(rItem.GetAdjust()) );
+ if ( nItemVersion >= ADJUST_LASTBLOCK_VERSION )
+ {
+ const sal_Int8 nFlags(rItem.GetAsFlags());
+ rStrm.WriteSChar( nFlags );
+ }
+ return rStrm;
+ }
+ }
+
+ namespace SvxHorJustify
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxHorJustifyItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt16 nVal(0);
+ rStrm.ReadUInt16( nVal );
+ rItem.SetValue(static_cast<::SvxCellHorJustify>(nVal));
+ }
+
+ SvStream& Store(const SvxHorJustifyItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteUInt16( static_cast<sal_uInt16>(rItem.GetValue()) );
+ return rStrm;
+ }
+ }
+
+ namespace SvxVerJustify
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxVerJustifyItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt16 nVal(0);
+ rStrm.ReadUInt16( nVal );
+ rItem.SetValue(static_cast<::SvxCellVerJustify>(nVal));
+ }
+
+ SvStream& Store(const SvxVerJustifyItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteUInt16( static_cast<sal_uInt16>(rItem.GetValue()) );
+ return rStrm;
+ }
+ }
+
+ namespace SvxFrameDirection
+ {
+ sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion)
+ {
+ return SOFFICE_FILEFORMAT_50 > nFileFormatVersion ? USHRT_MAX : 0;
+ }
+
+ void Create(SvxFrameDirectionItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt16 nVal(0);
+ rStrm.ReadUInt16( nVal );
+ rItem.SetValue(static_cast<::SvxFrameDirection>(nVal));
+ }
+
+ SvStream& Store(const SvxFrameDirectionItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteUInt16( static_cast<sal_uInt16>(rItem.GetValue()) );
+ return rStrm;
+ }
+ }
+
+ namespace SvxFormatBreak
+ {
+ sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion)
+ {
+ DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFileFormatVersion ||
+ SOFFICE_FILEFORMAT_40==nFileFormatVersion ||
+ SOFFICE_FILEFORMAT_50==nFileFormatVersion,
+ "SvxFormatBreakItem: Is there a new file format? ");
+ return SOFFICE_FILEFORMAT_31==nFileFormatVersion ||
+ SOFFICE_FILEFORMAT_40==nFileFormatVersion ? 0 : FMTBREAK_NOAUTO;
+ }
+
+ void Create(SvxFormatBreakItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ sal_Int8 eBreak, bDummy;
+ rStrm.ReadSChar( eBreak );
+ if( FMTBREAK_NOAUTO > nItemVersion )
+ rStrm.ReadSChar( bDummy );
+ rItem.SetValue(static_cast<::SvxBreak>(eBreak));
+ }
+
+ SvStream& Store(const SvxFormatBreakItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion)
+ {
+ rStrm.WriteSChar( rItem.GetEnumValue() );
+ if( FMTBREAK_NOAUTO > nItemVersion )
+ rStrm.WriteSChar( 0x01 );
+ return rStrm;
+ }
+ }
+
+ namespace SvxFormatKeep
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxFormatKeepItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ // derived from SfxBoolItem, but that uses
+ // rStream.ReadCharAsBool( tmp );
+ sal_Int8 bIsKeep;
+ rStrm.ReadSChar( bIsKeep );
+ rItem.SetValue(static_cast<bool>(bIsKeep));
+ }
+
+ SvStream& Store(const SvxFormatKeepItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ // derived from SfxBoolItem, but that uses
+ // rStream.WriteBool( m_bValue ); // not bool for serialization!
+ rStrm.WriteSChar( static_cast<sal_Int8>(rItem.GetValue()) );
+ return rStrm;
+ }
+ }
+
+ namespace SvxShadow
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxShadowItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_Int8 cLoc;
+ sal_uInt16 _nWidth;
+ bool bTrans;
+ Color aColor;
+ Color aFillColor;
+ sal_Int8 nStyle;
+ rStrm.ReadSChar( cLoc ).ReadUInt16( _nWidth ).ReadCharAsBool( bTrans );
+ ReadColor( rStrm, aColor );
+ ReadColor( rStrm, aFillColor ).ReadSChar( nStyle );
+ aColor.SetTransparency(bTrans ? 0xff : 0);
+
+ rItem.SetLocation(static_cast<SvxShadowLocation>(cLoc));
+ rItem.SetWidth(_nWidth);
+ rItem.SetColor(aColor);
+ }
+
+ SvStream& Store(const SvxShadowItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteSChar( static_cast<sal_uInt8>(rItem.GetLocation()) )
+ .WriteUInt16( rItem.GetWidth() )
+ .WriteBool( rItem.GetColor().GetTransparency() > 0 );
+ WriteColor( rStrm, rItem.GetColor() );
+ WriteColor( rStrm, rItem.GetColor() );
+ rStrm.WriteSChar( rItem.GetColor().GetTransparency() > 0 ? 0 : 1 ); //BRUSH_NULL : BRUSH_SOLID
+ return rStrm;
+ }
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/editeng/source/items/numitem.cxx b/editeng/source/items/numitem.cxx
index ddb1aa11926f..5a748f5a4414 100644
--- a/editeng/source/items/numitem.cxx
+++ b/editeng/source/items/numitem.cxx
@@ -53,6 +53,7 @@
#include <editeng/unonrule.hxx>
#include <sal/log.hxx>
#include <i18nlangtag/languagetag.hxx>
+#include <editeng/legacyitem.hxx>
#define DEF_WRITER_LSPACE 500 //Standard Indentation
#define DEF_DRAW_LSPACE 800 //Standard Indentation
@@ -217,8 +218,8 @@ SvxNumberFormat::SvxNumberFormat( SvStream &rStream )
rStream.ReadUInt16( hasGraphicBrush );
if ( hasGraphicBrush )
{
- std::unique_ptr<SvxBrushItem> pTmp( new SvxBrushItem( SID_ATTR_BRUSH ) );
- pGraphicBrush.reset( static_cast<SvxBrushItem*>(pTmp->Create( rStream, BRUSH_GRAPHIC_VERSION )) );
+ pGraphicBrush.reset(new SvxBrushItem(SID_ATTR_BRUSH));
+ legacy::SvxBrush::Create(*pGraphicBrush, rStream, BRUSH_GRAPHIC_VERSION);
}
else pGraphicBrush = nullptr;
rStream.ReadUInt16( nTmp16 ); eVertOrient = nTmp16;
@@ -290,7 +291,7 @@ void SvxNumberFormat::Store(SvStream &rStream, FontToSubsFontConverter pConverte
pGraphicBrush->SetGraphicLink("");
}
- pGraphicBrush->Store(rStream, BRUSH_GRAPHIC_VERSION);
+ legacy::SvxBrush::Store(*pGraphicBrush, rStream, BRUSH_GRAPHIC_VERSION);
}
else
rStream.WriteUInt16( 0 );
@@ -939,11 +940,6 @@ SfxPoolItem* SvxNumBulletItem::Clone( SfxItemPool * ) const
return new SvxNumBulletItem(*this);
}
-sal_uInt16 SvxNumBulletItem::GetVersion( sal_uInt16 /*nFileVersion*/ ) const
-{
- return NUMITEM_VERSION_03;
-}
-
bool SvxNumBulletItem::QueryValue( css::uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const
{
rVal <<= SvxCreateNumRule( pNumRule.get() );
diff --git a/editeng/source/items/paraitem.cxx b/editeng/source/items/paraitem.cxx
index 3bd1449b7c0e..4cf9750f15ca 100644
--- a/editeng/source/items/paraitem.cxx
+++ b/editeng/source/items/paraitem.cxx
@@ -401,47 +401,6 @@ void SvxAdjustItem::SetEnumValue( sal_uInt16 nVal )
}
-sal_uInt16 SvxAdjustItem::GetVersion( sal_uInt16 nFileVersion ) const
-{
- return (nFileVersion == SOFFICE_FILEFORMAT_31)
- ? 0 : ADJUST_LASTBLOCK_VERSION;
-}
-
-
-SfxPoolItem* SvxAdjustItem::Create(SvStream& rStrm, sal_uInt16 nVersion) const
-{
- char eAdjustment;
- rStrm.ReadChar( eAdjustment );
- SvxAdjustItem *pRet = new SvxAdjustItem( static_cast<SvxAdjust>(eAdjustment), Which() );
- if( nVersion >= ADJUST_LASTBLOCK_VERSION )
- {
- sal_Int8 nFlags;
- rStrm.ReadSChar( nFlags );
- pRet->bOneBlock = 0 != (nFlags & 0x0001);
- pRet->bLastCenter = 0 != (nFlags & 0x0002);
- pRet->bLastBlock = 0 != (nFlags & 0x0004);
- }
- return pRet;
-}
-
-
-SvStream& SvxAdjustItem::Store( SvStream& rStrm, sal_uInt16 nItemVersion ) const
-{
- rStrm.WriteChar( static_cast<char>(GetAdjust()) );
- if ( nItemVersion >= ADJUST_LASTBLOCK_VERSION )
- {
- sal_Int8 nFlags = 0;
- if ( bOneBlock )
- nFlags |= 0x0001;
- if ( bLastCenter )
- nFlags |= 0x0002;
- if ( bLastBlock )
- nFlags |= 0x0004;
- rStrm.WriteSChar( nFlags );
- }
- return rStrm;
-}
-
// class SvxWidowsItem ---------------------------------------------------
SvxWidowsItem::SvxWidowsItem(const sal_uInt8 nL, const sal_uInt16 nId ) :
@@ -752,12 +711,6 @@ sal_uInt16 SvxTabStopItem::GetPos( const sal_Int32 nPos ) const
}
-SvxTabStopItem& SvxTabStopItem::operator=( const SvxTabStopItem& rTSI )
-{
- maTabStops = rTSI.maTabStops;
- return *this;
-}
-
bool SvxTabStopItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
{
bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
@@ -1090,16 +1043,6 @@ SfxPoolItem* SvxScriptSpaceItem::Clone( SfxItemPool * ) const
return new SvxScriptSpaceItem( *this );
}
-sal_uInt16 SvxScriptSpaceItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxTwoLinesItem: Is there a new file format? ");
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
bool SvxScriptSpaceItem::GetPresentation(
SfxItemPresentation /*ePres*/,
MapUnit /*eCoreMetric*/, MapUnit /*ePresMetric*/,
@@ -1123,16 +1066,6 @@ SfxPoolItem* SvxHangingPunctuationItem::Clone( SfxItemPool * ) const
return new SvxHangingPunctuationItem( *this );
}
-sal_uInt16 SvxHangingPunctuationItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxHangingPunctuationItem: Is there a new file format? ");
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
bool SvxHangingPunctuationItem::GetPresentation(
SfxItemPresentation /*ePres*/,
MapUnit /*eCoreMetric*/, MapUnit /*ePresMetric*/,
@@ -1156,16 +1089,6 @@ SfxPoolItem* SvxForbiddenRuleItem::Clone( SfxItemPool * ) const
return new SvxForbiddenRuleItem( *this );
}
-sal_uInt16 SvxForbiddenRuleItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxForbiddenRuleItem: Is there a new file format? ");
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
bool SvxForbiddenRuleItem::GetPresentation(
SfxItemPresentation /*ePres*/,
MapUnit /*eCoreMetric*/, MapUnit /*ePresMetric*/,
@@ -1192,11 +1115,6 @@ SfxPoolItem* SvxParaVertAlignItem::Clone( SfxItemPool* ) const
return new SvxParaVertAlignItem( *this );
}
-sal_uInt16 SvxParaVertAlignItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
bool SvxParaVertAlignItem::GetPresentation(
SfxItemPresentation /*ePres*/,
MapUnit /*eCoreMetric*/, MapUnit /*ePresMetric*/,
@@ -1252,16 +1170,6 @@ SfxPoolItem* SvxParaGridItem::Clone( SfxItemPool * ) const
return new SvxParaGridItem( *this );
}
-sal_uInt16 SvxParaGridItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxParaGridItem: Is there a new file format? ");
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
bool SvxParaGridItem::GetPresentation(
SfxItemPresentation /*ePres*/,
MapUnit /*eCoreMetric*/, MapUnit /*ePresMetric*/,
diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx
index 019fb06eb621..13c5c04ffbbe 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -94,8 +94,6 @@
#include <editeng/eerdll.hxx>
#include <libxml/xmlwriter.h>
-#define STORE_UNICODE_MAGIC_MARKER 0xFE331188
-
using namespace ::com::sun::star;
using namespace ::com::sun::star::text;
@@ -199,17 +197,6 @@ SvxFontItem::SvxFontItem( const FontFamily eFam, const OUString& aName,
}
-SvxFontItem& SvxFontItem::operator=(const SvxFontItem& rFont)
-{
- aFamilyName = rFont.GetFamilyName();
- aStyleName = rFont.GetStyleName();
- eFamily = rFont.GetFamily();
- ePitch = rFont.GetPitch();
- eTextEncoding = rFont.GetCharSet();
- return *this;
-}
-
-
bool SvxFontItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
{
nMemberId &= ~CONVERT_TWIPS;
@@ -330,64 +317,6 @@ SfxPoolItem* SvxFontItem::Clone( SfxItemPool * ) const
}
-SvStream& SvxFontItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- bool bToBats = IsStarSymbol( GetFamilyName() );
-
- rStrm.WriteUChar( GetFamily() ).WriteUChar( GetPitch() )
- .WriteUChar( bToBats ? RTL_TEXTENCODING_SYMBOL : GetSOStoreTextEncoding(GetCharSet()) );
-
- OUString aStoreFamilyName( GetFamilyName() );
- if( bToBats )
- aStoreFamilyName = "StarBats";
- rStrm.WriteUniOrByteString(aStoreFamilyName, rStrm.GetStreamCharSet());
- rStrm.WriteUniOrByteString(GetStyleName(), rStrm.GetStreamCharSet());
-
- return rStrm;
-}
-
-
-SfxPoolItem* SvxFontItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_uInt8 _eFamily, eFontPitch, eFontTextEncoding;
- OUString aName, aStyle;
- rStrm.ReadUChar( _eFamily );
- rStrm.ReadUChar( eFontPitch );
- rStrm.ReadUChar( eFontTextEncoding );
-
- // UNICODE: rStrm >> aName;
- aName = rStrm.ReadUniOrByteString(rStrm.GetStreamCharSet());
-
- // UNICODE: rStrm >> aStyle;
- aStyle = rStrm.ReadUniOrByteString(rStrm.GetStreamCharSet());
-
- // Set the "correct" textencoding
- eFontTextEncoding = static_cast<sal_uInt8>(GetSOLoadTextEncoding( eFontTextEncoding ));
-
- // at some point, the StarBats changes from ANSI font to SYMBOL font
- if ( RTL_TEXTENCODING_SYMBOL != eFontTextEncoding && aName == "StarBats" )
- eFontTextEncoding = RTL_TEXTENCODING_SYMBOL;
-
- // Check if we have stored unicode
- sal_uInt64 const nStreamPos = rStrm.Tell();
- sal_uInt32 nMagic = STORE_UNICODE_MAGIC_MARKER;
- rStrm.ReadUInt32( nMagic );
- if ( nMagic == STORE_UNICODE_MAGIC_MARKER )
- {
- aName = rStrm.ReadUniOrByteString( RTL_TEXTENCODING_UNICODE );
- aStyle = rStrm.ReadUniOrByteString( RTL_TEXTENCODING_UNICODE );
- }
- else
- {
- rStrm.Seek( nStreamPos );
- }
-
-
- return new SvxFontItem( static_cast<FontFamily>(_eFamily), aName, aStyle,
- static_cast<FontPitch>(eFontPitch), static_cast<rtl_TextEncoding>(eFontTextEncoding), Which() );
-}
-
-
bool SvxFontItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -433,21 +362,6 @@ sal_uInt16 SvxPostureItem::GetValueCount() const
}
-SvStream& SvxPostureItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm.WriteUChar( GetValue() );
- return rStrm;
-}
-
-
-SfxPoolItem* SvxPostureItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_uInt8 nPosture;
- rStrm.ReadUChar( nPosture );
- return new SvxPostureItem( static_cast<FontItalic>(nPosture), Which() );
-}
-
-
bool SvxPostureItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -581,20 +495,6 @@ SfxPoolItem* SvxWeightItem::Clone( SfxItemPool * ) const
}
-SvStream& SvxWeightItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm.WriteUChar( GetValue() );
- return rStrm;
-}
-
-
-SfxPoolItem* SvxWeightItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_uInt8 nWeight;
- rStrm.ReadUChar( nWeight );
- return new SvxWeightItem( static_cast<FontWeight>(nWeight), Which() );
-}
-
bool SvxWeightItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -697,55 +597,6 @@ SfxPoolItem* SvxFontHeightItem::Clone( SfxItemPool * ) const
}
-SvStream& SvxFontHeightItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
-{
- rStrm.WriteUInt16( GetHeight() );
-
- if( FONTHEIGHT_UNIT_VERSION <= nItemVersion )
- rStrm.WriteUInt16( GetProp() ).WriteUInt16( static_cast<sal_uInt16>(GetPropUnit()) );
- else
- {
- // When exporting to the old versions the relative information is lost
- // when there is no percentage
- sal_uInt16 _nProp = GetProp();
- if( MapUnit::MapRelative != GetPropUnit() )
- _nProp = 100;
- rStrm.WriteUInt16( _nProp );
- }
- return rStrm;
-}
-
-
-SfxPoolItem* SvxFontHeightItem::Create( SvStream& rStrm,
- sal_uInt16 nVersion ) const
-{
- sal_uInt16 nsize, nprop = 0;
- MapUnit nPropUnit = MapUnit::MapRelative;
-
- rStrm.ReadUInt16( nsize );
-
- if( FONTHEIGHT_16_VERSION <= nVersion )
- rStrm.ReadUInt16( nprop );
- else
- {
- sal_uInt8 nP;
- rStrm .ReadUChar( nP );
- nprop = static_cast<sal_uInt16>(nP);
- }
-
- if( FONTHEIGHT_UNIT_VERSION <= nVersion )
- {
- sal_uInt16 nTmp;
- rStrm.ReadUInt16( nTmp );
- nPropUnit = static_cast<MapUnit>(nTmp);
- }
-
- SvxFontHeightItem* pItem = new SvxFontHeightItem( nsize, 100, Which() );
- pItem->SetProp( nprop, nPropUnit );
- return pItem;
-}
-
-
bool SvxFontHeightItem::operator==( const SfxPoolItem& rItem ) const
{
assert(SfxPoolItem::operator==(rItem));
@@ -1009,14 +860,6 @@ bool SvxFontHeightItem::GetPresentation
}
-sal_uInt16 SvxFontHeightItem::GetVersion(sal_uInt16 nFileVersion) const
-{
- return (nFileVersion <= SOFFICE_FILEFORMAT_40)
- ? FONTHEIGHT_16_VERSION
- : FONTHEIGHT_UNIT_VERSION;
-}
-
-
void SvxFontHeightItem::ScaleMetrics( long nMult, long nDiv )
{
nHeight = static_cast<sal_uInt32>(Scale( nHeight, nMult, nDiv ));
@@ -1112,21 +955,6 @@ sal_uInt16 SvxTextLineItem::GetValueCount() const
}
-SvStream& SvxTextLineItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm.WriteUChar( GetValue() );
- return rStrm;
-}
-
-
-SfxPoolItem* SvxTextLineItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_uInt8 nState;
- rStrm.ReadUChar( nState );
- return new SvxTextLineItem( static_cast<FontLineStyle>(nState), Which() );
-}
-
-
bool SvxTextLineItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -1232,14 +1060,6 @@ SfxPoolItem* SvxUnderlineItem::Clone( SfxItemPool * ) const
}
-SfxPoolItem* SvxUnderlineItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_uInt8 nState;
- rStrm.ReadUChar( nState );
- return new SvxUnderlineItem( static_cast<FontLineStyle>(nState), Which() );
-}
-
-
OUString SvxUnderlineItem::GetValueTextByPos( sal_uInt16 nPos ) const
{
static const char* RID_SVXITEMS_UL[] =
@@ -1283,14 +1103,6 @@ SfxPoolItem* SvxOverlineItem::Clone( SfxItemPool * ) const
}
-SfxPoolItem* SvxOverlineItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_uInt8 nState;
- rStrm.ReadUChar( nState );
- return new SvxOverlineItem( static_cast<FontLineStyle>(nState), Which() );
-}
-
-
OUString SvxOverlineItem::GetValueTextByPos( sal_uInt16 nPos ) const
{
static const char* RID_SVXITEMS_OL[] =
@@ -1358,21 +1170,6 @@ SfxPoolItem* SvxCrossedOutItem::Clone( SfxItemPool * ) const
}
-SvStream& SvxCrossedOutItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm.WriteUChar( GetValue() );
- return rStrm;
-}
-
-
-SfxPoolItem* SvxCrossedOutItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_uInt8 eCross;
- rStrm.ReadUChar( eCross );
- return new SvxCrossedOutItem( static_cast<FontStrikeout>(eCross), Which() );
-}
-
-
bool SvxCrossedOutItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -1450,21 +1247,6 @@ SfxPoolItem* SvxShadowedItem::Clone( SfxItemPool * ) const
}
-SvStream& SvxShadowedItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm.WriteBool( GetValue() );
- return rStrm;
-}
-
-
-SfxPoolItem* SvxShadowedItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_uInt8 nState;
- rStrm.ReadUChar( nState );
- return new SvxShadowedItem( nState, Which() );
-}
-
-
bool SvxShadowedItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -1556,21 +1338,6 @@ SfxPoolItem* SvxContourItem::Clone( SfxItemPool * ) const
}
-SvStream& SvxContourItem::Store( SvStream& rStrm , sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm.WriteBool( GetValue() );
- return rStrm;
-}
-
-
-SfxPoolItem* SvxContourItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- bool bValue;
- rStrm.ReadCharAsBool( bValue );
- return new SvxContourItem( bValue, Which() );
-}
-
-
bool SvxContourItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -1665,27 +1432,10 @@ SvxColorItem::SvxColorItem( const Color& rCol, const sal_uInt16 nId ) :
{
}
-SvxColorItem::SvxColorItem( SvStream &rStrm, const sal_uInt16 nId ) :
- SfxPoolItem( nId )
-{
- Color aColor;
- ReadColor( rStrm, aColor );
- mColor = aColor;
-}
-
SvxColorItem::~SvxColorItem()
{
}
-sal_uInt16 SvxColorItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxColorItem: Is there a new file format? ");
- return SOFFICE_FILEFORMAT_50 >= nFFVer ? VERSION_USEAUTOCOLOR : 0;
-}
-
bool SvxColorItem::operator==( const SfxPoolItem& rAttr ) const
{
assert(SfxPoolItem::operator==(rAttr));
@@ -1709,21 +1459,6 @@ SfxPoolItem* SvxColorItem::Clone( SfxItemPool * ) const
return new SvxColorItem( *this );
}
-SvStream& SvxColorItem::Store( SvStream& rStrm , sal_uInt16 nItemVersion ) const
-{
- if( VERSION_USEAUTOCOLOR == nItemVersion &&
- COL_AUTO == mColor )
- WriteColor( rStrm, COL_BLACK );
- else
- WriteColor( rStrm, mColor );
- return rStrm;
-}
-
-SfxPoolItem* SvxColorItem::Create(SvStream& rStrm, sal_uInt16 /*nVer*/ ) const
-{
- return new SvxColorItem( rStrm, Which() );
-}
-
bool SvxColorItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -2328,17 +2063,6 @@ bool SvxEmphasisMarkItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
return true;
}
-sal_uInt16 SvxEmphasisMarkItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxEmphasisMarkItem: Is there a new file format? ");
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
-
/*************************************************************************
|* class SvxTwoLinesItem
*************************************************************************/
@@ -2448,17 +2172,6 @@ bool SvxTwoLinesItem::GetPresentation( SfxItemPresentation /*ePres*/,
}
-sal_uInt16 SvxTwoLinesItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxTwoLinesItem: Is there a new file format?" );
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
-
/*************************************************************************
|* class SvxTextRotateItem
*************************************************************************/
@@ -2473,11 +2186,6 @@ SfxPoolItem* SvxTextRotateItem::Clone(SfxItemPool*) const
return new SvxTextRotateItem(*this);
}
-sal_uInt16 SvxTextRotateItem::GetVersion(sal_uInt16 nFFVer) const
-{
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
bool SvxTextRotateItem::GetPresentation(
SfxItemPresentation /*ePres*/,
MapUnit /*eCoreMetric*/, MapUnit /*ePresMetric*/,
@@ -2563,11 +2271,6 @@ SfxPoolItem* SvxCharRotateItem::Clone( SfxItemPool* ) const
return new SvxCharRotateItem( *this );
}
-sal_uInt16 SvxCharRotateItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
bool SvxCharRotateItem::GetPresentation(
SfxItemPresentation /*ePres*/,
MapUnit /*eCoreMetric*/, MapUnit /*ePresMetric*/,
@@ -2658,11 +2361,6 @@ SfxPoolItem* SvxCharScaleWidthItem::Clone( SfxItemPool* ) const
}
-sal_uInt16 SvxCharScaleWidthItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
bool SvxCharScaleWidthItem::GetPresentation(
SfxItemPresentation /*ePres*/,
MapUnit /*eCoreMetric*/, MapUnit /*ePresMetric*/,
@@ -2717,11 +2415,6 @@ SfxPoolItem* SvxCharReliefItem::Clone( SfxItemPool * ) const
return new SvxCharReliefItem( *this );
}
-sal_uInt16 SvxCharReliefItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
static const char* RID_SVXITEMS_RELIEF[] =
{
RID_SVXITEMS_RELIEF_NONE,
@@ -2815,11 +2508,6 @@ SfxPoolItem* SvxScriptSetItem::Clone( SfxItemPool * ) const
return p;
}
-SfxPoolItem* SvxScriptSetItem::Create( SvStream &, sal_uInt16 ) const
-{
- return nullptr;
-}
-
const SfxPoolItem* SvxScriptSetItem::GetItemOfScriptSet(
const SfxItemSet& rSet, sal_uInt16 nId )
{
diff --git a/editeng/source/items/writingmodeitem.cxx b/editeng/source/items/writingmodeitem.cxx
index 1c6363d61667..dfa2df0de9cd 100644
--- a/editeng/source/items/writingmodeitem.cxx
+++ b/editeng/source/items/writingmodeitem.cxx
@@ -50,11 +50,6 @@ SfxPoolItem* SvxWritingModeItem::Clone( SfxItemPool * ) const
return new SvxWritingModeItem( *this );
}
-sal_uInt16 SvxWritingModeItem::GetVersion( sal_uInt16 /*nFVer*/ ) const
-{
- return USHRT_MAX;
-}
-
bool SvxWritingModeItem::GetPresentation( SfxItemPresentation /*ePres*/,
MapUnit /*eCoreMetric*/,
MapUnit /*ePresMetric*/,
diff --git a/editeng/source/items/xmlcnitm.cxx b/editeng/source/items/xmlcnitm.cxx
index ce4de850736a..4e0c25c9c239 100644
--- a/editeng/source/items/xmlcnitm.cxx
+++ b/editeng/source/items/xmlcnitm.cxx
@@ -68,12 +68,6 @@ bool SvXMLAttrContainerItem::GetPresentation(
return false;
}
-sal_uInt16 SvXMLAttrContainerItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/ ) const
-{
- // This item should never be stored
- return USHRT_MAX;
-}
-
bool SvXMLAttrContainerItem::QueryValue( css::uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const
{
Reference<XNameContainer> xContainer
diff --git a/editeng/source/rtf/rtfitem.cxx b/editeng/source/rtf/rtfitem.cxx
index 218124a009e4..41880b4f35b2 100644
--- a/editeng/source/rtf/rtfitem.cxx
+++ b/editeng/source/rtf/rtfitem.cxx
@@ -778,24 +778,30 @@ ATTR_SETUNDERLINE:
case RTF_ULC:
if( aPlainMap.nUnderline )
{
- SvxUnderlineItem aUL( LINESTYLE_SINGLE, aPlainMap.nUnderline );
- const SfxPoolItem* pItem;
- if( SfxItemState::SET == pSet->GetItemState(
- aPlainMap.nUnderline, false, &pItem ) )
+ std::unique_ptr<SvxUnderlineItem> aUL(std::make_unique<SvxUnderlineItem>(LINESTYLE_SINGLE, aPlainMap.nUnderline));
+ const SfxPoolItem* pItem(nullptr);
+
+ if( SfxItemState::SET == pSet->GetItemState(aPlainMap.nUnderline, false, &pItem ) )
{
// is switched off ?
- if( LINESTYLE_NONE ==
- static_cast<const SvxUnderlineItem*>(pItem)->GetLineStyle() )
+ if( LINESTYLE_NONE == static_cast<const SvxUnderlineItem*>(pItem)->GetLineStyle() )
break;
- aUL = *static_cast<const SvxUnderlineItem*>(pItem);
+
+ aUL.reset(static_cast<SvxUnderlineItem*>(pItem->Clone()));
}
else
- aUL = static_cast<const SvxUnderlineItem&>(pSet->Get( aPlainMap.nUnderline, false ));
+ {
+ aUL.reset(static_cast<SvxUnderlineItem*>(pSet->Get( aPlainMap.nUnderline, false).Clone()));
+ }
- if( LINESTYLE_NONE == aUL.GetLineStyle() )
- aUL.SetLineStyle( LINESTYLE_SINGLE );
- aUL.SetColor( GetColor( sal_uInt16(nTokenValue) ));
- pSet->Put( aUL );
+ if(LINESTYLE_NONE == aUL->GetLineStyle())
+ {
+ aUL->SetLineStyle(LINESTYLE_SINGLE);
+ }
+
+ aUL->SetColor(GetColor(sal_uInt16(nTokenValue)));
+
+ pSet->Put(*aUL);
}
break;
@@ -873,24 +879,30 @@ ATTR_SETOVERLINE:
case RTF_OLC:
if( aPlainMap.nOverline )
{
- SvxOverlineItem aOL( LINESTYLE_SINGLE, aPlainMap.nOverline );
- const SfxPoolItem* pItem;
- if( SfxItemState::SET == pSet->GetItemState(
- aPlainMap.nOverline, false, &pItem ) )
+ std::unique_ptr<SvxOverlineItem> aOL(std::make_unique<SvxOverlineItem>(LINESTYLE_SINGLE, aPlainMap.nOverline));
+ const SfxPoolItem* pItem(nullptr);
+
+ if( SfxItemState::SET == pSet->GetItemState(aPlainMap.nOverline, false, &pItem ) )
{
// is switched off ?
- if( LINESTYLE_NONE ==
- static_cast<const SvxOverlineItem*>(pItem)->GetLineStyle() )
+ if( LINESTYLE_NONE == static_cast<const SvxOverlineItem*>(pItem)->GetLineStyle() )
break;
- aOL = *static_cast<const SvxOverlineItem*>(pItem);
+
+ aOL.reset(static_cast<SvxOverlineItem*>(pItem->Clone()));
}
else
- aOL = static_cast<const SvxOverlineItem&>(pSet->Get( aPlainMap.nOverline, false ));
+ {
+ aOL.reset(static_cast<SvxOverlineItem*>(pSet->Get( aPlainMap.nOverline, false).Clone()));
+ }
+
+ if(LINESTYLE_NONE == aOL->GetLineStyle())
+ {
+ aOL->SetLineStyle(LINESTYLE_SINGLE);
+ }
- if( LINESTYLE_NONE == aOL.GetLineStyle() )
- aOL.SetLineStyle( LINESTYLE_SINGLE );
- aOL.SetColor( GetColor( sal_uInt16(nTokenValue) ));
- pSet->Put( aOL );
+ aOL->SetColor(GetColor(sal_uInt16(nTokenValue)));
+
+ pSet->Put(*aOL);
}
break;
@@ -1372,10 +1384,13 @@ void SvxRTFParser::ReadBorderAttr( int nToken, SfxItemSet& rSet,
bool bTableDef )
{
// then read the border attribute
- SvxBoxItem aAttr( aPardMap.nBox );
- const SfxPoolItem* pItem;
+ std::unique_ptr<SvxBoxItem> aAttr(std::make_unique<SvxBoxItem>(aPardMap.nBox));
+ const SfxPoolItem* pItem(nullptr);
+
if( SfxItemState::SET == rSet.GetItemState( aPardMap.nBox, false, &pItem ) )
- aAttr = *static_cast<const SvxBoxItem*>(pItem);
+ {
+ aAttr.reset(static_cast<SvxBoxItem*>(pItem->Clone()));
+ }
SvxBorderLine aBrd( nullptr, DEF_LINE_WIDTH_0 ); // Simple plain line
bool bContinue = true;
@@ -1400,7 +1415,7 @@ void SvxRTFParser::ReadBorderAttr( int nToken, SfxItemSet& rSet,
if( bTableDef )
{
if (nBorderTyp != 0)
- SetBorderLine( nBorderTyp, aAttr, aBrd );
+ SetBorderLine( nBorderTyp, *aAttr, aBrd );
nBorderTyp = RTF_BRDRT;
}
break;
@@ -1410,7 +1425,7 @@ void SvxRTFParser::ReadBorderAttr( int nToken, SfxItemSet& rSet,
if( bTableDef )
{
if (nBorderTyp != 0)
- SetBorderLine( nBorderTyp, aAttr, aBrd );
+ SetBorderLine( nBorderTyp, *aAttr, aBrd );
nBorderTyp = RTF_BRDRB;
}
break;
@@ -1420,7 +1435,7 @@ void SvxRTFParser::ReadBorderAttr( int nToken, SfxItemSet& rSet,
if( bTableDef )
{
if (nBorderTyp != 0)
- SetBorderLine( nBorderTyp, aAttr, aBrd );
+ SetBorderLine( nBorderTyp, *aAttr, aBrd );
nBorderTyp = RTF_BRDRL;
}
break;
@@ -1430,7 +1445,7 @@ void SvxRTFParser::ReadBorderAttr( int nToken, SfxItemSet& rSet,
if( bTableDef )
{
if (nBorderTyp != 0)
- SetBorderLine( nBorderTyp, aAttr, aBrd );
+ SetBorderLine( nBorderTyp, *aAttr, aBrd );
nBorderTyp = RTF_BRDRR;
}
break;
@@ -1506,23 +1521,23 @@ void SvxRTFParser::ReadBorderAttr( int nToken, SfxItemSet& rSet,
switch( nBorderTyp )
{
case RTF_BRDRB:
- aAttr.SetDistance( static_cast<sal_uInt16>(nTokenValue), SvxBoxItemLine::BOTTOM );
+ aAttr->SetDistance( static_cast<sal_uInt16>(nTokenValue), SvxBoxItemLine::BOTTOM );
break;
case RTF_BRDRT:
- aAttr.SetDistance( static_cast<sal_uInt16>(nTokenValue), SvxBoxItemLine::TOP );
+ aAttr->SetDistance( static_cast<sal_uInt16>(nTokenValue), SvxBoxItemLine::TOP );
break;
case RTF_BRDRL:
- aAttr.SetDistance( static_cast<sal_uInt16>(nTokenValue), SvxBoxItemLine::LEFT );
+ aAttr->SetDistance( static_cast<sal_uInt16>(nTokenValue), SvxBoxItemLine::LEFT );
break;
case RTF_BRDRR:
- aAttr.SetDistance( static_cast<sal_uInt16>(nTokenValue), SvxBoxItemLine::RIGHT );
+ aAttr->SetDistance( static_cast<sal_uInt16>(nTokenValue), SvxBoxItemLine::RIGHT );
break;
case RTF_BOX:
- aAttr.SetAllDistances( static_cast<sal_uInt16>(nTokenValue) );
+ aAttr->SetAllDistances( static_cast<sal_uInt16>(nTokenValue) );
break;
}
}
@@ -1544,9 +1559,9 @@ void SvxRTFParser::ReadBorderAttr( int nToken, SfxItemSet& rSet,
if ( bDoubleWidth ) nWidth *= 2;
aBrd.SetWidth( nWidth );
- SetBorderLine( nBorderTyp, aAttr, aBrd );
+ SetBorderLine( nBorderTyp, *aAttr, aBrd );
- rSet.Put( aAttr );
+ rSet.Put( *aAttr );
SkipToken();
}
diff --git a/include/editeng/adjustitem.hxx b/include/editeng/adjustitem.hxx
index 2918bb915d7b..a06b177dd719 100644
--- a/include/editeng/adjustitem.hxx
+++ b/include/editeng/adjustitem.hxx
@@ -65,9 +65,6 @@ public:
virtual sal_uInt16 GetEnumValue() const override;
virtual void SetEnumValue( sal_uInt16 nNewVal ) override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
void SetOneWord( const SvxAdjust eType )
{
@@ -120,6 +117,25 @@ public:
eRet = SvxAdjust::Block;
return eRet;
}
+
+ sal_Int8 GetAsFlags() const
+ {
+ sal_Int8 nFlags = 0;
+ if ( bOneBlock )
+ nFlags |= 0x0001;
+ if ( bLastCenter )
+ nFlags |= 0x0002;
+ if ( bLastBlock )
+ nFlags |= 0x0004;
+ return nFlags;
+ }
+
+ void SetAsFlags(sal_Int8 nFlags)
+ {
+ bOneBlock = 0 != (nFlags & 0x0001);
+ bLastCenter = 0 != (nFlags & 0x0002);
+ bLastBlock = 0 != (nFlags & 0x0004);
+ }
};
#endif
diff --git a/include/editeng/boxitem.hxx b/include/editeng/boxitem.hxx
index db97f78e6d0f..38b19173f183 100644
--- a/include/editeng/boxitem.hxx
+++ b/include/editeng/boxitem.hxx
@@ -71,7 +71,6 @@ public:
explicit SvxBoxItem( const sal_uInt16 nId );
SvxBoxItem( const SvxBoxItem &rCpy );
virtual ~SvxBoxItem() override;
- SvxBoxItem &operator=( const SvxBoxItem& rBox );
// "pure virtual Methods" from SfxPoolItem
virtual bool operator==( const SfxPoolItem& ) const override;
@@ -84,9 +83,6 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual void ScaleMetrics( long nMult, long nDiv ) override;
virtual bool HasMetrics() const override;
@@ -189,7 +185,6 @@ public:
explicit SvxBoxInfoItem( const sal_uInt16 nId );
SvxBoxInfoItem( const SvxBoxInfoItem &rCpy );
virtual ~SvxBoxInfoItem() override;
- SvxBoxInfoItem &operator=( const SvxBoxInfoItem &rCpy );
// "pure virtual Methods" from SfxPoolItem
virtual bool operator==( const SfxPoolItem& ) const override;
diff --git a/include/editeng/brushitem.hxx b/include/editeng/brushitem.hxx
index 952b037c937b..8f298bd43408 100644
--- a/include/editeng/brushitem.hxx
+++ b/include/editeng/brushitem.hxx
@@ -55,9 +55,6 @@ class EDITENG_DLLPUBLIC SvxBrushItem : public SfxPoolItem
mutable bool bLoadAgain;
void ApplyGraphicTransparency_Impl();
- // only used by Create
- SvxBrushItem( SvStream& rStrm,
- sal_uInt16 nVersion, sal_uInt16 nWhich );
public:
static SfxPoolItem* CreateDefault();
@@ -90,9 +87,6 @@ public:
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create( SvStream&, sal_uInt16 nVersion ) const override;
- virtual SvStream& Store( SvStream& , sal_uInt16 nItemVersion ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
const Color& GetColor() const { return aColor; }
Color& GetColor() { return aColor; }
@@ -116,9 +110,6 @@ public:
void SetGraphicLink( const OUString& rNew );
void SetGraphicFilter( const OUString& rNew );
- SvxBrushItem& operator=(const SvxBrushItem& rItem);
- SvxBrushItem& operator=(SvxBrushItem&& rItem);
-
static sal_Int8 TransparencyToPercent(sal_Int32 nTrans);
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
diff --git a/include/editeng/bulletitem.hxx b/include/editeng/bulletitem.hxx
index 012138c3b7ca..be792db86804 100644
--- a/include/editeng/bulletitem.hxx
+++ b/include/editeng/bulletitem.hxx
@@ -79,7 +79,6 @@ public:
void SetFont( const vcl::Font& rNew) { aFont = rNew; }
void SetScale( sal_uInt16 nNew ) { nScale = nNew; }
- virtual sal_uInt16 GetVersion(sal_uInt16 nFileVersion) const override;
virtual bool operator==( const SfxPoolItem& ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
diff --git a/include/editeng/charreliefitem.hxx b/include/editeng/charreliefitem.hxx
index 80f269feea1f..64809845dfce 100644
--- a/include/editeng/charreliefitem.hxx
+++ b/include/editeng/charreliefitem.hxx
@@ -40,7 +40,6 @@ public:
const sal_uInt16 nId );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
static OUString GetValueTextByPos( sal_uInt16 nPos );
virtual sal_uInt16 GetValueCount() const override;
diff --git a/include/editeng/charrotateitem.hxx b/include/editeng/charrotateitem.hxx
index 794ef447c2e9..efa62398cec3 100644
--- a/include/editeng/charrotateitem.hxx
+++ b/include/editeng/charrotateitem.hxx
@@ -37,7 +37,6 @@ public:
SvxTextRotateItem(sal_uInt16 nValue, const sal_uInt16 nId);
virtual SfxPoolItem* Clone(SfxItemPool *pPool = nullptr) const override;
- virtual sal_uInt16 GetVersion(sal_uInt16 nFileVersion) const override;
virtual bool GetPresentation(SfxItemPresentation ePres,
MapUnit eCoreMetric,
@@ -83,7 +82,6 @@ public:
const sal_uInt16 nId );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
diff --git a/include/editeng/charscaleitem.hxx b/include/editeng/charscaleitem.hxx
index cd116334d005..d8397f4e19ff 100644
--- a/include/editeng/charscaleitem.hxx
+++ b/include/editeng/charscaleitem.hxx
@@ -41,7 +41,6 @@ public:
const sal_uInt16 nId );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
diff --git a/include/editeng/colritem.hxx b/include/editeng/colritem.hxx
index 5e62965486ba..d371b9ace3af 100644
--- a/include/editeng/colritem.hxx
+++ b/include/editeng/colritem.hxx
@@ -37,28 +37,18 @@ public:
explicit SvxColorItem(const sal_uInt16 nId);
SvxColorItem(const Color& aColor, const sal_uInt16 nId);
- SvxColorItem(SvStream& rStream, const sal_uInt16 nId);
virtual ~SvxColorItem() override;
// "pure virtual Methods" from SfxPoolItem
virtual bool operator==(const SfxPoolItem& rPoolItem) const override;
virtual bool QueryValue(css::uno::Any& rVal, sal_uInt8 nMemberId = 0) const override;
virtual bool PutValue(const css::uno::Any& rVal, sal_uInt8 nMemberId) override;
- virtual sal_uInt16 GetVersion(sal_uInt16 nFileVersion) const override;
virtual bool GetPresentation(SfxItemPresentation ePres,
MapUnit eCoreMetric, MapUnit ePresMetric,
OUString &rText, const IntlWrapper& rIntlWrapper) const override;
virtual SfxPoolItem* Clone(SfxItemPool* pPool = nullptr) const override;
- virtual SfxPoolItem* Create(SvStream& rStream, sal_uInt16 nVersion) const override;
- virtual SvStream& Store(SvStream& rStream, sal_uInt16 nVersion) const override;
-
- SvxColorItem& operator=(const SvxColorItem& rColor)
- {
- SetValue(rColor.GetValue());
- return *this;
- }
SvxColorItem(SvxColorItem const &) = default; // SfxPoolItem copy function dichotomy
const Color& GetValue() const
diff --git a/include/editeng/contouritem.hxx b/include/editeng/contouritem.hxx
index d0514da0d174..0941e21d856c 100644
--- a/include/editeng/contouritem.hxx
+++ b/include/editeng/contouritem.hxx
@@ -38,20 +38,11 @@ public:
// "pure virtual Methods" from SfxPoolItem
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
MapUnit ePresMetric,
OUString &rText, const IntlWrapper& ) const override;
-
- SvxContourItem& operator=(const SvxContourItem& rCont)
- {
- SetValue(rCont.GetValue());
- return *this;
- }
- SvxContourItem(SvxContourItem const &) = default; // SfxPoolItem copy function dichotomy
};
#endif
diff --git a/include/editeng/crossedoutitem.hxx b/include/editeng/crossedoutitem.hxx
index e8edcbc23258..f7967588ffd5 100644
--- a/include/editeng/crossedoutitem.hxx
+++ b/include/editeng/crossedoutitem.hxx
@@ -44,8 +44,6 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
static OUString GetValueTextByPos( sal_uInt16 nPos );
virtual sal_uInt16 GetValueCount() const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
@@ -57,11 +55,6 @@ public:
virtual bool GetBoolValue() const override;
virtual void SetBoolValue( bool bVal ) override;
- SvxCrossedOutItem& operator=(const SvxCrossedOutItem& rCross)
- {
- SetValue( rCross.GetValue() );
- return *this;
- }
SvxCrossedOutItem(SvxCrossedOutItem const &) = default; // SfxPoolItem copy function dichotomy
// enum cast
diff --git a/include/editeng/emphasismarkitem.hxx b/include/editeng/emphasismarkitem.hxx
index d9c33ab4e4a6..86a3ab0837f3 100644
--- a/include/editeng/emphasismarkitem.hxx
+++ b/include/editeng/emphasismarkitem.hxx
@@ -46,7 +46,6 @@ public:
const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
diff --git a/include/editeng/fhgtitem.hxx b/include/editeng/fhgtitem.hxx
index 686eed994ff0..5e67a71f0676 100644
--- a/include/editeng/fhgtitem.hxx
+++ b/include/editeng/fhgtitem.hxx
@@ -41,6 +41,11 @@ class EDITENG_DLLPUBLIC SvxFontHeightItem : public SfxPoolItem
sal_uInt32 nHeight;
sal_uInt16 nProp; // default 100%
MapUnit ePropUnit; // Percent, Twip, ...
+
+private:
+ friend void Create_legacy_direct_set(SvxFontHeightItem& rItem, sal_uInt32 nH, sal_uInt16 nP, MapUnit eP);
+ void legacy_direct_set(sal_uInt32 nH, sal_uInt16 nP, MapUnit eP) { nHeight = nH; nProp = nP; ePropUnit = eP; }
+
public:
static SfxPoolItem* CreateDefault();
@@ -58,22 +63,9 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nItemVersion) const override;
virtual void ScaleMetrics( long nMult, long nDiv ) override;
virtual bool HasMetrics() const override;
- SvxFontHeightItem& operator=(const SvxFontHeightItem& rSize)
- {
- DBG_ASSERT( GetRefCount() == 0, "SetValue() with pooled item" );
- nHeight = rSize.nHeight;
- nProp = rSize.nProp;
- ePropUnit = rSize.ePropUnit;
- return *this;
- }
- SvxFontHeightItem(SvxFontHeightItem const &) = default; // SfxPoolItem copy function dichotomy
-
void SetHeight( sal_uInt32 nNewHeight, const sal_uInt16 nNewProp = 100,
MapUnit eUnit = MapUnit::MapRelative );
diff --git a/include/editeng/fontitem.hxx b/include/editeng/fontitem.hxx
index f3ede8d73547..66134a2ea9d3 100644
--- a/include/editeng/fontitem.hxx
+++ b/include/editeng/fontitem.hxx
@@ -47,8 +47,6 @@ public:
// "pure virtual Methods" from SfxPoolItem
virtual bool operator==(const SfxPoolItem& rItem) const override;
virtual SfxPoolItem* Clone(SfxItemPool *pPool = nullptr) const override;
- virtual SfxPoolItem* Create(SvStream& rStream, sal_uInt16) const override;
- virtual SvStream& Store(SvStream& rStream, sal_uInt16 nItemVersion) const override;
virtual bool QueryValue(css::uno::Any& rVal, sal_uInt8 nMemberId = 0) const override;
virtual bool PutValue(const css::uno::Any& rVal, sal_uInt8 nMemberId) override;
@@ -102,9 +100,6 @@ public:
return eTextEncoding;
}
- SvxFontItem& operator=(const SvxFontItem& rFont);
- SvxFontItem(SvxFontItem const &) = default; // SfxPoolItem copy function dichotomy
-
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
diff --git a/include/editeng/forbiddenruleitem.hxx b/include/editeng/forbiddenruleitem.hxx
index 6213eab66a64..66111f91f55f 100644
--- a/include/editeng/forbiddenruleitem.hxx
+++ b/include/editeng/forbiddenruleitem.hxx
@@ -36,7 +36,6 @@ public:
const sal_uInt16 nId );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
diff --git a/include/editeng/formatbreakitem.hxx b/include/editeng/formatbreakitem.hxx
index 6eb2e03b5264..760aca9c4a3b 100644
--- a/include/editeng/formatbreakitem.hxx
+++ b/include/editeng/formatbreakitem.hxx
@@ -40,7 +40,6 @@ public:
inline SvxFormatBreakItem( const SvxBreak eBrk /*= SvxBreak::NONE*/,
const sal_uInt16 nWhich );
- inline SvxFormatBreakItem& operator=( const SvxFormatBreakItem& rCpy );
SvxFormatBreakItem(SvxFormatBreakItem const &) = default; // SfxPoolItem copy function dichotomy
// "pure virtual Methods" from SfxPoolItem
@@ -55,9 +54,6 @@ public:
static OUString GetValueTextByPos( sal_uInt16 nPos );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SvStream& Store( SvStream& , sal_uInt16 nItemVersion ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
- virtual SfxPoolItem* Create( SvStream&, sal_uInt16 ) const override;
virtual sal_uInt16 GetValueCount() const override;
SvxBreak GetBreak() const { return GetValue(); }
@@ -70,13 +66,6 @@ inline SvxFormatBreakItem::SvxFormatBreakItem( const SvxBreak eBreak,
{}
-inline SvxFormatBreakItem& SvxFormatBreakItem::operator=(
- const SvxFormatBreakItem& rBreak )
-{
- SetValue( rBreak.GetBreak() );
- return *this;
-}
-
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/frmdiritem.hxx b/include/editeng/frmdiritem.hxx
index 25467ee628b8..840cae4a2f9e 100644
--- a/include/editeng/frmdiritem.hxx
+++ b/include/editeng/frmdiritem.hxx
@@ -35,8 +35,6 @@ public:
virtual ~SvxFrameDirectionItem() override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
@@ -51,12 +49,7 @@ public:
{
return sal_uInt16(SvxFrameDirection::Environment) + 1;
}
- SvxFrameDirectionItem& operator=( const SvxFrameDirectionItem& rItem )
- {
- SetValue( rItem.GetValue() );
- return *this;
- }
- SvxFrameDirectionItem(SvxFrameDirectionItem const &) = default;
+
// SfxPoolItem copy function dichotomy
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
diff --git a/include/editeng/hngpnctitem.hxx b/include/editeng/hngpnctitem.hxx
index dea50716f29d..791890d023ca 100644
--- a/include/editeng/hngpnctitem.hxx
+++ b/include/editeng/hngpnctitem.hxx
@@ -35,7 +35,6 @@ public:
SvxHangingPunctuationItem( bool bOn /*= false*/, const sal_uInt16 nId );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
diff --git a/include/editeng/justifyitem.hxx b/include/editeng/justifyitem.hxx
index 7c25846e63d3..c53a7b83b744 100644
--- a/include/editeng/justifyitem.hxx
+++ b/include/editeng/justifyitem.hxx
@@ -47,13 +47,7 @@ public:
virtual sal_uInt16 GetValueCount() const override;
static OUString GetValueText( sal_uInt16 nVal );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create( SvStream& rStream, sal_uInt16 nVer ) const override;
- SvxHorJustifyItem& operator=(const SvxHorJustifyItem& rHorJustify)
- {
- SetValue( rHorJustify.GetValue() );
- return *this;
- }
SvxHorJustifyItem(SvxHorJustifyItem const &) = default; // SfxPoolItem copy function dichotomy
};
@@ -80,13 +74,7 @@ public:
virtual sal_uInt16 GetValueCount() const override;
static OUString GetValueText( SvxCellVerJustify nVal );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create( SvStream& rStream, sal_uInt16 nVer ) const override;
- SvxVerJustifyItem& operator=(const SvxVerJustifyItem& rVerJustify)
- {
- SetValue( rVerJustify.GetValue() );
- return *this;
- }
SvxVerJustifyItem(SvxVerJustifyItem const &) = default; // SfxPoolItem copy function dichotomy
};
diff --git a/include/editeng/keepitem.hxx b/include/editeng/keepitem.hxx
index b5f0ddbd6418..f30d91289a44 100644
--- a/include/editeng/keepitem.hxx
+++ b/include/editeng/keepitem.hxx
@@ -37,13 +37,10 @@ public:
inline SvxFormatKeepItem( const bool bKeep /*= false*/,
const sal_uInt16 _nWhich );
- inline SvxFormatKeepItem& operator=( const SvxFormatKeepItem& rSplit );
SvxFormatKeepItem(SvxFormatKeepItem const &) = default; // SfxPoolItem copy function dichotomy
// "pure virtual Methods" from SfxPoolItem
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create( SvStream&, sal_uInt16 ) const override;
- virtual SvStream& Store( SvStream& , sal_uInt16 nItemVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
@@ -55,12 +52,6 @@ inline SvxFormatKeepItem::SvxFormatKeepItem( const bool bKeep, const sal_uInt16
SfxBoolItem( _nWhich, bKeep )
{}
-inline SvxFormatKeepItem& SvxFormatKeepItem::operator=( const SvxFormatKeepItem& rKeep )
-{
- SetValue( rKeep.GetValue() );
- return *this;
-}
-
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/langitem.hxx b/include/editeng/langitem.hxx
index 78e19d745f18..4894edd79465 100644
--- a/include/editeng/langitem.hxx
+++ b/include/editeng/langitem.hxx
@@ -55,11 +55,6 @@ public:
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
virtual sal_uInt16 GetValueCount() const override;
- SvxLanguageItem& operator=(const SvxLanguageItem& rLang)
- {
- SetValue( rLang.GetValue() );
- return *this;
- }
SvxLanguageItem(SvxLanguageItem const &) = default; // SfxPoolItem copy function dichotomy
LanguageType GetLanguage() const
diff --git a/include/editeng/legacyitem.hxx b/include/editeng/legacyitem.hxx
new file mode 100755
index 000000000000..4f118eff92c2
--- /dev/null
+++ b/include/editeng/legacyitem.hxx
@@ -0,0 +1,192 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef INCLUDED_EDITENG_LEGACYITEM_HXX
+#define INCLUDED_EDITENG_LEGACYITEM_HXX
+
+#include <editeng/editengdllapi.h>
+
+//////////////////////////////////////////////////////////////////////////////
+// // editeng
+// SvxFontItem aFont;
+// SvxFontHeightItem aHeight;
+// SvxWeightItem aWeight;
+// SvxPostureItem aPosture;
+// SvxUnderlineItem aUnderline;
+// SvxOverlineItem aOverline;
+// SvxCrossedOutItem aCrossedOut;
+// SvxContourItem aContour;
+// SvxShadowedItem aShadowed;
+// SvxColorItem aColor;
+// SvxBoxItem aBox;
+// SvxLineItem aTLBR;
+// SvxBrushItem aBackground;
+// SvxAdjustItem aAdjust;
+// SvxHorJustifyItem aHorJustify;
+// SvxVerJustifyItem aVerJustify;
+// SvxFrameDirectionItem m_aTextOrientation;
+//////////////////////////////////////////////////////////////////////////////
+
+class SvStream;
+class SvxFontItem;
+class SvxFontHeightItem;
+class SvxWeightItem;
+class SvxPostureItem;
+class SvxTextLineItem;
+class SvxCrossedOutItem;
+class SvxShadowedItem;
+class SvxColorItem;
+class SvxBoxItem;
+class SvxLineItem;
+class SvxBrushItem;
+class SvxAdjustItem;
+class SvxHorJustifyItem;
+class SvxVerJustifyItem;
+class SvxFrameDirectionItem;
+class SvxFormatBreakItem;
+class SvxFormatKeepItem;
+class SvxShadowItem;
+
+namespace legacy
+{
+ namespace SvxFont
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxFontItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxFontItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxFontHeight
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxFontHeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxFontHeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxWeight
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxWeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxWeightItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxPosture
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxPostureItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxPostureItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxTextLine // SvxUnderlineItem, SvxOverlineItem -> SvxTextLineItem
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxTextLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxTextLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxCrossedOut
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxCrossedOutItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxCrossedOutItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ // SvxContourItem -> SfxBoolItem
+ // SvxShadowedItem -> SfxBoolItem
+
+ namespace SvxColor
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxColorItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxColorItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxBox
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxBoxItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxBoxItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxLine
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxLineItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxBrush
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxBrushItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxBrushItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxAdjust
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxAdjustItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxAdjustItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxHorJustify
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxHorJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxHorJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxVerJustify
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxVerJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxVerJustifyItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxFrameDirection
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxFrameDirectionItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxFrameDirectionItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxFormatBreak
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxFormatBreakItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxFormatBreakItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxFormatKeep
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxFormatKeepItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxFormatKeepItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+
+ namespace SvxShadow
+ {
+ sal_uInt16 EDITENG_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void EDITENG_DLLPUBLIC Create(SvxShadowItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ EDITENG_DLLPUBLIC SvStream& Store(const SvxShadowItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+}
+
+#endif // INCLUDED_EDITENG_LEGACYITEM_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/lineitem.hxx b/include/editeng/lineitem.hxx
index 2dcdc97a763b..8d74b66ce462 100644
--- a/include/editeng/lineitem.hxx
+++ b/include/editeng/lineitem.hxx
@@ -44,7 +44,6 @@ public:
explicit SvxLineItem( const sal_uInt16 nId );
SvxLineItem( const SvxLineItem& rCpy );
virtual ~SvxLineItem() override;
- SvxLineItem &operator=( const SvxLineItem& rLine );
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
@@ -55,8 +54,6 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion ) const override;
virtual void ScaleMetrics( long nMult, long nDiv ) override;
virtual bool HasMetrics() const override;
diff --git a/include/editeng/lrspitem.hxx b/include/editeng/lrspitem.hxx
index 6cc7ad48a3b7..ba3fe2fbb867 100644
--- a/include/editeng/lrspitem.hxx
+++ b/include/editeng/lrspitem.hxx
@@ -68,7 +68,6 @@ public:
SvxLRSpaceItem( const long nLeft, const long nRight,
const long nTLeft /*= 0*/, const short nOfset /*= 0*/,
const sal_uInt16 nId );
- inline SvxLRSpaceItem& operator=( const SvxLRSpaceItem &rCpy );
SvxLRSpaceItem(SvxLRSpaceItem const &) = default; // SfxPoolItem copy function dichotomy
// "pure virtual Methods" from SfxPoolItem
@@ -83,7 +82,6 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual void ScaleMetrics( long nMult, long nDiv ) override;
virtual bool HasMetrics() const override;
@@ -121,21 +119,6 @@ public:
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
-inline SvxLRSpaceItem &SvxLRSpaceItem::operator=( const SvxLRSpaceItem &rCpy )
-{
- nFirstLineOfst = rCpy.nFirstLineOfst;
- nTxtLeft = rCpy.nTxtLeft;
- nLeftMargin = rCpy.nLeftMargin;
- nRightMargin = rCpy.nRightMargin;
- nPropFirstLineOfst = rCpy.nPropFirstLineOfst;
- nPropLeftMargin = rCpy.nPropLeftMargin;
- nPropRightMargin = rCpy.nPropRightMargin;
- bAutoFirst = rCpy.bAutoFirst;
- bExplicitZeroMarginValRight = rCpy.bExplicitZeroMarginValRight;
- bExplicitZeroMarginValLeft = rCpy.bExplicitZeroMarginValLeft;
- return *this;
-}
-
inline void SvxLRSpaceItem::SetLeft( const long nL, const sal_uInt16 nProp )
{
nLeftMargin = (nL * nProp) / 100;
diff --git a/include/editeng/numitem.hxx b/include/editeng/numitem.hxx
index e758d9021cf5..7757948a54aa 100644
--- a/include/editeng/numitem.hxx
+++ b/include/editeng/numitem.hxx
@@ -301,7 +301,6 @@ public:
virtual ~SvxNumBulletItem() override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool operator==( const SfxPoolItem& ) const override;
SvxNumRule* GetNumRule() const {return pNumRule.get();}
diff --git a/include/editeng/opaqitem.hxx b/include/editeng/opaqitem.hxx
index 17517e6c59e7..268901ad956a 100644
--- a/include/editeng/opaqitem.hxx
+++ b/include/editeng/opaqitem.hxx
@@ -34,8 +34,6 @@ class EDITENG_DLLPUBLIC SvxOpaqueItem : public SfxBoolItem
{
public:
explicit SvxOpaqueItem( const sal_uInt16 nId , const bool bOpa = true );
- inline SvxOpaqueItem &operator=( const SvxOpaqueItem &rCpy );
- SvxOpaqueItem(SvxOpaqueItem const &) = default; // SfxPoolItem copy function dichotomy
// "pure virtual Methods" from SfxPoolItem
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
@@ -50,13 +48,6 @@ inline SvxOpaqueItem::SvxOpaqueItem( const sal_uInt16 nId, const bool bOpa )
: SfxBoolItem( nId, bOpa )
{}
-inline SvxOpaqueItem &SvxOpaqueItem::operator=( const SvxOpaqueItem &rCpy )
-{
- SetValue( rCpy.GetValue() );
- return *this;
-}
-
-
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/paravertalignitem.hxx b/include/editeng/paravertalignitem.hxx
index 57f82c6d8e44..4aa3865739e9 100644
--- a/include/editeng/paravertalignitem.hxx
+++ b/include/editeng/paravertalignitem.hxx
@@ -41,7 +41,6 @@ public:
const sal_uInt16 nId );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
diff --git a/include/editeng/pgrditem.hxx b/include/editeng/pgrditem.hxx
index 7a830036fdcc..a38ab1bbe807 100644
--- a/include/editeng/pgrditem.hxx
+++ b/include/editeng/pgrditem.hxx
@@ -38,7 +38,6 @@ public:
// "pure virtual Methods" from SfxPoolItem
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
diff --git a/include/editeng/postitem.hxx b/include/editeng/postitem.hxx
index 9383689cc510..91e781dd199c 100644
--- a/include/editeng/postitem.hxx
+++ b/include/editeng/postitem.hxx
@@ -45,8 +45,6 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
static OUString GetValueTextByPos( sal_uInt16 nPos );
virtual sal_uInt16 GetValueCount() const override;
@@ -57,12 +55,6 @@ public:
virtual bool GetBoolValue() const override;
virtual void SetBoolValue( bool bVal ) override;
- SvxPostureItem& operator=(const SvxPostureItem& rPost) {
- SetValue( rPost.GetValue() );
- return *this;
- }
- SvxPostureItem(SvxPostureItem const &) = default; // SfxPoolItem copy function dichotomy
-
// enum cast
FontItalic GetPosture() const
{ return GetValue(); }
diff --git a/include/editeng/protitem.hxx b/include/editeng/protitem.hxx
index 178594ff2926..e7c7da1cf50b 100644
--- a/include/editeng/protitem.hxx
+++ b/include/editeng/protitem.hxx
@@ -40,7 +40,6 @@ public:
static SfxPoolItem* CreateDefault();
explicit inline SvxProtectItem( const sal_uInt16 nId );
- inline SvxProtectItem &operator=( const SvxProtectItem &rCpy );
SvxProtectItem(SvxProtectItem const &) = default; // SfxPoolItem copy function dichotomy
// "pure virtual Methods" from SfxPoolItem
@@ -72,15 +71,6 @@ inline SvxProtectItem::SvxProtectItem( const sal_uInt16 nId )
bCntnt = bSize = bPos = false;
}
-inline SvxProtectItem &SvxProtectItem::operator=( const SvxProtectItem &rCpy )
-{
- bCntnt = rCpy.IsContentProtected();
- bSize = rCpy.IsSizeProtected();
- bPos = rCpy.IsPosProtected();
- return *this;
-}
-
-
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/scriptspaceitem.hxx b/include/editeng/scriptspaceitem.hxx
index 46d3be6c7315..c1b5f80ead83 100644
--- a/include/editeng/scriptspaceitem.hxx
+++ b/include/editeng/scriptspaceitem.hxx
@@ -37,7 +37,6 @@ public:
const sal_uInt16 nId );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
diff --git a/include/editeng/scripttypeitem.hxx b/include/editeng/scripttypeitem.hxx
index 49c3945ca7d7..efe6b7a4d192 100644
--- a/include/editeng/scripttypeitem.hxx
+++ b/include/editeng/scripttypeitem.hxx
@@ -29,7 +29,6 @@ public:
SvxScriptSetItem( sal_uInt16 nSlotId, SfxItemPool& rPool );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create( SvStream &, sal_uInt16 nVersion ) const override;
static const SfxPoolItem* GetItemOfScriptSet( const SfxItemSet& rSet,
sal_uInt16 nWhich );
diff --git a/include/editeng/shaditem.hxx b/include/editeng/shaditem.hxx
index cae821ba4b86..187bb39aa04a 100644
--- a/include/editeng/shaditem.hxx
+++ b/include/editeng/shaditem.hxx
@@ -47,9 +47,6 @@ public:
const Color *pColor = nullptr, const sal_uInt16 nWidth = 100 /*5pt*/,
const SvxShadowLocation eLoc = SvxShadowLocation::NONE );
- inline SvxShadowItem& operator=( const SvxShadowItem& rFmtShadow );
- SvxShadowItem(SvxShadowItem const &) = default; // SfxPoolItem copy function dichotomy
-
// "pure virtual Methods" from SfxPoolItem
virtual bool operator==( const SfxPoolItem& ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
@@ -61,8 +58,6 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion ) const override;
virtual void ScaleMetrics( long nMult, long nDiv ) override;
virtual bool HasMetrics() const override;
@@ -84,14 +79,6 @@ public:
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
-inline SvxShadowItem &SvxShadowItem::operator=( const SvxShadowItem& rFmtShadow )
-{
- aShadowColor = rFmtShadow.aShadowColor;
- nWidth = rFmtShadow.GetWidth();
- eLocation = rFmtShadow.GetLocation();
- return *this;
-}
-
#endif // INCLUDED_EDITENG_SHADITEM_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/shdditem.hxx b/include/editeng/shdditem.hxx
index 15bb414e06ce..a201549bfab4 100644
--- a/include/editeng/shdditem.hxx
+++ b/include/editeng/shdditem.hxx
@@ -39,18 +39,12 @@ public:
// "pure virtual Methods" from SfxPoolItem
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
MapUnit ePresMetric,
OUString &rText, const IntlWrapper& ) const override;
- SvxShadowedItem& operator=(const SvxShadowedItem& rShadow) {
- SetValue(rShadow.GetValue());
- return *this;
- }
SvxShadowedItem(SvxShadowedItem const &) = default; // SfxPoolItem copy function dichotomy
};
diff --git a/include/editeng/sizeitem.hxx b/include/editeng/sizeitem.hxx
index ab2fb380a54f..bd4f86f7d070 100644
--- a/include/editeng/sizeitem.hxx
+++ b/include/editeng/sizeitem.hxx
@@ -41,9 +41,6 @@ public:
explicit SvxSizeItem( const sal_uInt16 nId );
SvxSizeItem( const sal_uInt16 nId, const Size& rSize);
- inline SvxSizeItem& operator=( const SvxSizeItem &rCpy );
- SvxSizeItem(SvxSizeItem const &) = default; // SfxPoolItem copy function dichotomy
-
// "pure virtual Methods" from SfxPoolItem
virtual bool operator==( const SfxPoolItem& ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
@@ -67,12 +64,6 @@ public:
void SetHeight(long n) { m_aSize.setHeight(n); }
};
-inline SvxSizeItem& SvxSizeItem::operator=( const SvxSizeItem &rCpy )
-{
- m_aSize = rCpy.m_aSize;
- return *this;
-}
-
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/tstpitem.hxx b/include/editeng/tstpitem.hxx
index e434e9d5a961..a6f292107504 100644
--- a/include/editeng/tstpitem.hxx
+++ b/include/editeng/tstpitem.hxx
@@ -116,8 +116,6 @@ public:
{ maTabStops.erase( maTabStops.begin() + nPos, maTabStops.begin() + nPos + nLen ); }
// Assignment operator, equality operator (caution: expensive!)
- SvxTabStopItem& operator=( const SvxTabStopItem& rTSI );
- SvxTabStopItem(SvxTabStopItem const &) = default; // SfxPoolItem copy function dichotomy
// this is already included in SfxPoolItem declaration
//int operator!=( const SvxTabStopItem& rTSI ) const
diff --git a/include/editeng/twolinesitem.hxx b/include/editeng/twolinesitem.hxx
index 6f71c09391ff..8ec80758bcec 100644
--- a/include/editeng/twolinesitem.hxx
+++ b/include/editeng/twolinesitem.hxx
@@ -51,8 +51,6 @@ public:
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFFVer ) const override;
-
bool GetValue() const { return bOn; }
sal_Unicode GetStartBracket() const { return cStartBracket; }
diff --git a/include/editeng/udlnitem.hxx b/include/editeng/udlnitem.hxx
index b4fef4612f80..386a28544c29 100644
--- a/include/editeng/udlnitem.hxx
+++ b/include/editeng/udlnitem.hxx
@@ -42,8 +42,6 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
virtual OUString GetValueTextByPos( sal_uInt16 nPos ) const;
virtual sal_uInt16 GetValueCount() const override;
@@ -57,14 +55,6 @@ public:
virtual bool operator==( const SfxPoolItem& ) const override;
- SvxTextLineItem& operator=(const SvxTextLineItem& rTextLine)
- {
- SetValue( rTextLine.GetValue() );
- SetColor( rTextLine.GetColor() );
- return *this;
- }
- SvxTextLineItem(SvxTextLineItem const &) = default; // SfxPoolItem copy function dichotomy
-
// enum cast
FontLineStyle GetLineStyle() const
{ return GetValue(); }
@@ -88,7 +78,6 @@ public:
const sal_uInt16 nId );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
virtual OUString GetValueTextByPos( sal_uInt16 nPos ) const override;
};
@@ -105,7 +94,6 @@ public:
const sal_uInt16 nId );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
virtual OUString GetValueTextByPos( sal_uInt16 nPos ) const override;
};
diff --git a/include/editeng/ulspitem.hxx b/include/editeng/ulspitem.hxx
index cfcfbb6f330f..2199d6f636bd 100644
--- a/include/editeng/ulspitem.hxx
+++ b/include/editeng/ulspitem.hxx
@@ -44,8 +44,6 @@ public:
explicit SvxULSpaceItem( const sal_uInt16 nId );
SvxULSpaceItem( const sal_uInt16 nUp, const sal_uInt16 nLow,
const sal_uInt16 nId );
- inline SvxULSpaceItem& operator=( const SvxULSpaceItem &rCpy );
- SvxULSpaceItem(SvxULSpaceItem const &) = default; // SfxPoolItem copy function dichotomy
// "pure virtual Methods" from SfxPoolItem
virtual bool operator==( const SfxPoolItem& ) const override;
@@ -59,7 +57,6 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual void ScaleMetrics( long nMult, long nDiv ) override;
virtual bool HasMetrics() const override;
@@ -80,16 +77,6 @@ public:
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
-inline SvxULSpaceItem &SvxULSpaceItem::operator=( const SvxULSpaceItem &rCpy )
-{
- nUpper = rCpy.GetUpper();
- nLower = rCpy.GetLower();
- bContext = rCpy.GetContext();
- nPropUpper = rCpy.GetPropUpper();
- nPropLower = rCpy.GetPropLower();
- return *this;
-}
-
inline void SvxULSpaceItem::SetUpper( const sal_uInt16 nU, const sal_uInt16 nProp )
{
nUpper = sal_uInt16((sal_uInt32(nU) * nProp ) / 100); nPropUpper = nProp;
diff --git a/include/editeng/wghtitem.hxx b/include/editeng/wghtitem.hxx
index 18d5e4f4af55..a718a3bfd387 100644
--- a/include/editeng/wghtitem.hxx
+++ b/include/editeng/wghtitem.hxx
@@ -45,8 +45,6 @@ public:
OUString &rText, const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
static OUString GetValueTextByPos( sal_uInt16 nPos );
virtual sal_uInt16 GetValueCount() const override;
@@ -57,12 +55,6 @@ public:
virtual bool GetBoolValue() const override;
virtual void SetBoolValue( bool bVal ) override;
- SvxWeightItem& operator=(const SvxWeightItem& rWeight) {
- SetValue( rWeight.GetValue() );
- return *this;
- }
- SvxWeightItem(SvxWeightItem const &) = default; // SfxPoolItem copy function dichotomy
-
// enum cast
FontWeight GetWeight() const { return GetValue(); }
diff --git a/include/editeng/writingmodeitem.hxx b/include/editeng/writingmodeitem.hxx
index 6c10ef62f0f5..6bdf02fe6986 100644
--- a/include/editeng/writingmodeitem.hxx
+++ b/include/editeng/writingmodeitem.hxx
@@ -38,7 +38,6 @@ public:
SvxWritingModeItem & operator =(SvxWritingModeItem &&) = delete; // due to SfxUInt16Item
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool operator==( const SfxPoolItem& ) const override;
css::text::WritingMode GetValue() const { return static_cast<css::text::WritingMode>(SfxUInt16Item::GetValue()); }
diff --git a/include/editeng/xmlcnitm.hxx b/include/editeng/xmlcnitm.hxx
index d66c254523cc..61d883e3d497 100644
--- a/include/editeng/xmlcnitm.hxx
+++ b/include/editeng/xmlcnitm.hxx
@@ -45,8 +45,6 @@ public:
OUString &rText,
const IntlWrapper& rIntlWrapper) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
-
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
diff --git a/include/sfx2/evntconf.hxx b/include/sfx2/evntconf.hxx
index efd330260f53..7dad7c8f8053 100644
--- a/include/sfx2/evntconf.hxx
+++ b/include/sfx2/evntconf.hxx
@@ -78,7 +78,6 @@ public:
OUString &rText,
const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
const SfxEventNamesList& GetEvents() const { return aEventsList;}
void AddEvent( const OUString&, const OUString&, SvMacroItemId );
diff --git a/include/sfx2/tabdlg.hxx b/include/sfx2/tabdlg.hxx
index d4eb1fb71ae1..80cb3faade16 100644
--- a/include/sfx2/tabdlg.hxx
+++ b/include/sfx2/tabdlg.hxx
@@ -49,7 +49,6 @@ public:
SfxTabDialogItem( sal_uInt16 nId, const SfxItemSet& rItemSet );
SfxTabDialogItem(const SfxTabDialogItem& rAttr, SfxItemPool* pItemPool);
virtual SfxPoolItem* Clone(SfxItemPool* pToPool = nullptr) const override;
- virtual SfxPoolItem* Create(SvStream& rStream, sal_uInt16 nVersion) const override;
};
class SFX2_DLLPUBLIC SfxTabDialog : public TabDialog
diff --git a/include/svl/aeitem.hxx b/include/svl/aeitem.hxx
index d69b1f086f4b..621468f32988 100644
--- a/include/svl/aeitem.hxx
+++ b/include/svl/aeitem.hxx
@@ -33,10 +33,6 @@ protected:
explicit SfxAllEnumItem_Base(sal_uInt16 nWhich, sal_uInt16 nValue):
SfxEnumItem(nWhich, nValue)
{}
-
- explicit SfxAllEnumItem_Base(sal_uInt16 const nWhich, SvStream & rStream):
- SfxEnumItem(nWhich, rStream)
- {}
};
class SVL_DLLPUBLIC SfxAllEnumItem: public SfxAllEnumItem_Base
@@ -49,7 +45,6 @@ class SVL_DLLPUBLIC SfxAllEnumItem: public SfxAllEnumItem_Base
public:
explicit SfxAllEnumItem( sal_uInt16 nWhich);
SfxAllEnumItem( sal_uInt16 nWhich, sal_uInt16 nVal );
- SfxAllEnumItem( sal_uInt16 nWhich, SvStream &rStream );
SfxAllEnumItem( const SfxAllEnumItem & );
virtual ~SfxAllEnumItem() override;
@@ -61,7 +56,6 @@ public:
sal_uInt16 GetValueByPos( sal_uInt16 nPos ) const;
OUString const & GetValueTextByPos( sal_uInt16 nPos ) const;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16 nVersion) const override;
};
#endif
diff --git a/include/svl/cintitem.hxx b/include/svl/cintitem.hxx
index f8e1ea3f0fa3..5176d150629c 100644
--- a/include/svl/cintitem.hxx
+++ b/include/svl/cintitem.hxx
@@ -47,10 +47,6 @@ public:
virtual bool PutValue(const css::uno::Any& rVal,
sal_uInt8 nMemberId) override;
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override;
-
- virtual SvStream & Store(SvStream & rStream, sal_uInt16) const override;
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
sal_uInt8 GetValue() const { return m_nValue; }
@@ -74,8 +70,6 @@ public:
SfxPoolItem(which), m_nValue(nTheValue)
{}
- CntUInt16Item(sal_uInt16 which, SvStream & rStream);
-
virtual bool operator ==(const SfxPoolItem & rItem) const override;
virtual bool GetPresentation(SfxItemPresentation,
@@ -90,10 +84,6 @@ public:
virtual bool PutValue(const css::uno::Any& rVal,
sal_uInt8 nMemberId) override;
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override;
-
- virtual SvStream & Store(SvStream & rStream, sal_uInt16) const override;
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
sal_uInt16 GetValue() const { return m_nValue; }
@@ -117,8 +107,6 @@ public:
SfxPoolItem(which), m_nValue(nTheValue)
{}
- CntInt32Item(sal_uInt16 which, SvStream & rStream);
-
virtual bool operator ==(const SfxPoolItem & rItem) const override;
virtual bool GetPresentation(SfxItemPresentation,
@@ -133,10 +121,6 @@ public:
virtual bool PutValue(const css::uno::Any& rVal,
sal_uInt8 nMemberId) override;
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override;
-
- virtual SvStream & Store(SvStream &, sal_uInt16) const override;
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
sal_Int32 GetValue() const { return m_nValue; }
@@ -160,8 +144,6 @@ public:
SfxPoolItem(which), m_nValue(nTheValue)
{}
- CntUInt32Item(sal_uInt16 nWhich, SvStream & rStream);
-
virtual bool operator ==(const SfxPoolItem & rItem) const override;
virtual bool GetPresentation(SfxItemPresentation,
@@ -176,10 +158,6 @@ public:
virtual bool PutValue(const css::uno::Any& rVal,
sal_uInt8 nMemberId) override;
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override;
-
- virtual SvStream & Store(SvStream & rStream, sal_uInt16) const override;
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
sal_uInt32 GetValue() const { return m_nValue; }
diff --git a/include/svl/eitem.hxx b/include/svl/eitem.hxx
index 268df41d6f4a..eadf1321b8a9 100644
--- a/include/svl/eitem.hxx
+++ b/include/svl/eitem.hxx
@@ -38,14 +38,6 @@ protected:
SfxEnumItem(const SfxEnumItem &) = default;
- SfxEnumItem(sal_uInt16 const nWhich, SvStream & rStream)
- : SfxEnumItemInterface(nWhich)
- {
- sal_uInt16 nTmp = 0;
- rStream.ReadUInt16( nTmp );
- m_nValue = static_cast<EnumT>(nTmp);
- }
-
public:
EnumT GetValue() const { return m_nValue; }
@@ -56,12 +48,6 @@ public:
m_nValue = nTheValue;
}
- virtual SvStream & Store(SvStream & rStream, sal_uInt16) const override
- {
- rStream.WriteUInt16( static_cast<sal_uInt16>(m_nValue) );
- return rStream;
- }
-
virtual sal_uInt16 GetEnumValue() const override
{
return static_cast<sal_uInt16>(GetValue());
@@ -114,11 +100,6 @@ public:
virtual bool PutValue(const css::uno::Any& rVal, sal_uInt8) override;
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const
- override;
-
- virtual SvStream & Store(SvStream & rStream, sal_uInt16) const override;
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
virtual OUString GetValueTextByVal(bool bTheValue) const;
diff --git a/include/svl/flagitem.hxx b/include/svl/flagitem.hxx
index f37a9e5ef548..db061e38c326 100644
--- a/include/svl/flagitem.hxx
+++ b/include/svl/flagitem.hxx
@@ -36,8 +36,6 @@ public:
virtual sal_uInt8 GetFlagCount() const;
virtual bool operator==( const SfxPoolItem& ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16 nVersion) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
diff --git a/include/svl/int64item.hxx b/include/svl/int64item.hxx
index 410beb21746b..428381b340a5 100644
--- a/include/svl/int64item.hxx
+++ b/include/svl/int64item.hxx
@@ -19,7 +19,6 @@ class SVL_DLLPUBLIC SfxInt64Item : public SfxPoolItem
public:
SfxInt64Item( sal_uInt16 nWhich, sal_Int64 nVal );
- SfxInt64Item( sal_uInt16 nWhich, SvStream & rStream );
virtual ~SfxInt64Item() override;
@@ -40,10 +39,6 @@ public:
virtual bool PutValue(
const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
- virtual SfxPoolItem* Create( SvStream& rStream, sal_uInt16 nItemVersion ) const override;
-
- virtual SvStream& Store( SvStream& rStream, sal_uInt16 nItemVersion ) const override;
-
virtual SfxPoolItem* Clone( SfxItemPool* pOther = nullptr ) const override;
sal_Int64 GetValue() const { return mnValue;}
diff --git a/include/svl/intitem.hxx b/include/svl/intitem.hxx
index a4c14ebd863f..f6064ed8a335 100644
--- a/include/svl/intitem.hxx
+++ b/include/svl/intitem.hxx
@@ -32,8 +32,6 @@ public:
explicit SfxByteItem(sal_uInt16 which = 0, sal_uInt8 nValue = 0):
CntByteItem(which, nValue) {}
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override;
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override
{ return new SfxByteItem(*this); }
};
@@ -49,8 +47,6 @@ public:
SfxPoolItem(which), m_nValue(nTheValue)
{}
- SfxInt16Item(sal_uInt16 nWhich, SvStream & rStream);
-
virtual bool operator ==(const SfxPoolItem & rItem) const override;
virtual bool GetPresentation(SfxItemPresentation,
@@ -65,10 +61,6 @@ public:
virtual bool PutValue( const css::uno::Any& rVal,
sal_uInt8 nMemberId ) override;
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override;
-
- virtual SvStream & Store(SvStream & rStream, sal_uInt16) const override;
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
sal_Int16 GetValue() const { return m_nValue; }
@@ -91,12 +83,6 @@ public:
explicit SfxUInt16Item(sal_uInt16 which = 0, sal_uInt16 nValue = 0):
CntUInt16Item(which, nValue) {}
- SfxUInt16Item(sal_uInt16 which, SvStream & rStream):
- CntUInt16Item(which, rStream) {}
-
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override
- { return new SfxUInt16Item(Which(), rStream); }
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override
{ return new SfxUInt16Item(*this); }
@@ -112,12 +98,6 @@ public:
explicit SfxInt32Item(sal_uInt16 which = 0, sal_Int32 nValue = 0):
CntInt32Item(which, nValue) {}
- SfxInt32Item(sal_uInt16 which, SvStream & rStream):
- CntInt32Item(which, rStream) {}
-
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override
- { return new SfxInt32Item(Which(), rStream); }
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override
{ return new SfxInt32Item(*this); }
@@ -133,12 +113,6 @@ public:
explicit SfxUInt32Item(sal_uInt16 which = 0, sal_uInt32 nValue = 0):
CntUInt32Item(which, nValue) {}
- SfxUInt32Item(sal_uInt16 which, SvStream & rStream):
- CntUInt32Item(which, rStream) {}
-
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override
- { return new SfxUInt32Item(Which(), rStream); }
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override
{ return new SfxUInt32Item(*this); }
diff --git a/include/svl/lckbitem.hxx b/include/svl/lckbitem.hxx
index d6bf1a21e27c..331854a56d9a 100644
--- a/include/svl/lckbitem.hxx
+++ b/include/svl/lckbitem.hxx
@@ -30,7 +30,6 @@ class SVL_DLLPUBLIC SfxLockBytesItem : public SfxPoolItem
public:
static SfxPoolItem* CreateDefault();
SfxLockBytesItem();
- SfxLockBytesItem( sal_uInt16 nWhich, SvStream & );
virtual ~SfxLockBytesItem() override;
SfxLockBytesItem(SfxLockBytesItem const &) = default;
@@ -40,8 +39,6 @@ public:
virtual bool operator==( const SfxPoolItem& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16 nItemVersion) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion ) const override;
SvLockBytes* GetValue() const { return _xVal.get(); }
diff --git a/include/svl/legacyitem.hxx b/include/svl/legacyitem.hxx
new file mode 100755
index 000000000000..b2035aecaf9b
--- /dev/null
+++ b/include/svl/legacyitem.hxx
@@ -0,0 +1,52 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef INCLUDED_SVL_LEGACYITEM_HXX
+#define INCLUDED_SVL_LEGACYITEM_HXX
+
+#include <svl/svldllapi.h>
+
+//////////////////////////////////////////////////////////////////////////////
+// // svl
+// SfxBoolItem aLinebreak;
+// SfxInt32Item aRotateAngle; -> CntInt32Item
+//////////////////////////////////////////////////////////////////////////////
+
+class SvStream;
+class SfxBoolItem;
+class CntInt32Item;
+
+namespace legacy
+{
+ namespace SfxBool
+ {
+ sal_uInt16 SVL_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void SVL_DLLPUBLIC Create(SfxBoolItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ SVL_DLLPUBLIC SvStream& Store(const SfxBoolItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+ namespace CntInt32
+ {
+ sal_uInt16 SVL_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void SVL_DLLPUBLIC Create(CntInt32Item& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ SVL_DLLPUBLIC SvStream& Store(const CntInt32Item& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+}
+
+#endif // INCLUDED_SVL_LEGACYITEM_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svl/macitem.hxx b/include/svl/macitem.hxx
index 7d17b3349dd3..a397cc6e3bb4 100644
--- a/include/svl/macitem.hxx
+++ b/include/svl/macitem.hxx
@@ -125,7 +125,6 @@ public:
OUString &rText,
const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
const SvxMacroTableDtor& GetMacroTable() const { return aMacroTable;}
void SetMacroTable( const SvxMacroTableDtor& rTbl ) { aMacroTable = rTbl; }
diff --git a/include/svl/poolitem.hxx b/include/svl/poolitem.hxx
index c3800cc02c18..796d6aa476c9 100644
--- a/include/svl/poolitem.hxx
+++ b/include/svl/poolitem.hxx
@@ -31,7 +31,6 @@
#include <tools/mapunit.hxx>
class IntlWrapper;
-class SvStream;
enum class SfxItemKind : sal_Int8
{
@@ -164,15 +163,12 @@ public:
OUString &rText,
const IntlWrapper& rIntlWrapper ) const;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const;
virtual void ScaleMetrics( long lMult, long lDiv );
virtual bool HasMetrics() const;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId );
- 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
std::unique_ptr<SfxPoolItem> CloneSetWhich( sal_uInt16 nNewWhich ) const;
diff --git a/include/svl/ptitem.hxx b/include/svl/ptitem.hxx
index 76e5022c441b..348d427d763f 100644
--- a/include/svl/ptitem.hxx
+++ b/include/svl/ptitem.hxx
@@ -44,8 +44,6 @@ public:
virtual bool operator==( const SfxPoolItem& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16 nItemVersion) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
const Point& GetValue() const { return aVal; }
void SetValue( const Point& rNewVal ) {
diff --git a/include/svl/rectitem.hxx b/include/svl/rectitem.hxx
index 3dd119e1d089..412a695be464 100644
--- a/include/svl/rectitem.hxx
+++ b/include/svl/rectitem.hxx
@@ -42,8 +42,6 @@ public:
virtual bool operator==( const SfxPoolItem& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16 nItemVersion) const override;
- virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion) const override;
const tools::Rectangle& GetValue() const { return aVal; }
virtual bool QueryValue( css::uno::Any& rVal,
diff --git a/include/svl/rngitem.hxx b/include/svl/rngitem.hxx
index 316b9c334f3d..de2d64d9c34c 100644
--- a/include/svl/rngitem.hxx
+++ b/include/svl/rngitem.hxx
@@ -41,8 +41,6 @@ public:
const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
sal_uInt16& From() { return nFrom; }
- virtual SfxPoolItem* Create( SvStream &, sal_uInt16 nVersion ) const override;
- virtual SvStream& Store( SvStream &, sal_uInt16 nItemVersion ) const override;
};
diff --git a/include/svl/slstitm.hxx b/include/svl/slstitm.hxx
index dc803e69103d..872903f3c7d8 100644
--- a/include/svl/slstitm.hxx
+++ b/include/svl/slstitm.hxx
@@ -36,7 +36,6 @@ public:
SfxStringListItem();
SfxStringListItem( sal_uInt16 nWhich, const std::vector<OUString> *pList=nullptr );
- SfxStringListItem( sal_uInt16 nWhich, SvStream& rStream );
virtual ~SfxStringListItem() override;
SfxStringListItem(SfxStringListItem const &) = default;
@@ -62,8 +61,6 @@ public:
OUString &rText,
const IntlWrapper& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create( SvStream &, sal_uInt16 nVersion ) const override;
- virtual SvStream& Store( SvStream &, sal_uInt16 nItemVersion ) const override;
virtual bool PutValue ( const css::uno::Any& rVal,
sal_uInt8 nMemberId ) override;
diff --git a/include/svl/stritem.hxx b/include/svl/stritem.hxx
index 2103e917ee13..37546d88b4b2 100644
--- a/include/svl/stritem.hxx
+++ b/include/svl/stritem.hxx
@@ -34,12 +34,6 @@ public:
SfxStringItem(sal_uInt16 which, const OUString & rValue):
CntUnencodedStringItem(which, rValue) {}
- SfxStringItem(sal_uInt16 nWhich, SvStream & rStream);
-
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override;
-
- virtual SvStream & Store(SvStream & rStream, sal_uInt16) const override;
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
diff --git a/include/svl/visitem.hxx b/include/svl/visitem.hxx
index af382c426bc3..f83274644fdb 100644
--- a/include/svl/visitem.hxx
+++ b/include/svl/visitem.hxx
@@ -36,8 +36,6 @@ public:
m_nValue.bVisible = bVisible;
}
- SfxVisibilityItem(sal_uInt16 which, SvStream & rStream);
-
virtual bool operator ==(const SfxPoolItem & rItem) const override;
virtual bool GetPresentation(SfxItemPresentation, MapUnit, MapUnit,
@@ -51,10 +49,6 @@ public:
virtual bool PutValue( const css::uno::Any& rVal,
sal_uInt8 nMemberId ) override;
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override;
-
- virtual SvStream & Store(SvStream & rStream, sal_uInt16) const override;
-
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
bool GetValue() const { return m_nValue.bVisible; }
diff --git a/include/svx/algitem.hxx b/include/svx/algitem.hxx
index b1cc5f70ec77..ee6eee0bec89 100644
--- a/include/svx/algitem.hxx
+++ b/include/svx/algitem.hxx
@@ -29,7 +29,6 @@
class IntlWrapper;
class SfxItemPool;
-class SvStream;
class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxOrientationItem: public SfxEnumItem<SvxCellOrientation>
{
@@ -53,14 +52,6 @@ public:
virtual sal_uInt16 GetValueCount() const override;
static OUString GetValueText( SvxCellOrientation nVal );
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create( SvStream& rStream, sal_uInt16 nVer ) const override;
-
- SvxOrientationItem& operator=(const SvxOrientationItem& rOrientation)
- {
- SetValue( rOrientation.GetValue() );
- return *this;
- }
- SvxOrientationItem(SvxOrientationItem const &) = default; // SfxPoolItem copy function dichotomy
/** Returns sal_True, if the item represents STACKED state. */
bool IsStacked() const;
@@ -88,8 +79,6 @@ public:
virtual bool operator==( const SfxPoolItem& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create( SvStream& rStream, sal_uInt16 nVer ) const override;
- virtual SvStream& Store( SvStream&, sal_uInt16 nItemVersion ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
@@ -102,16 +91,6 @@ public:
void SetRightMargin(sal_Int16 nRight);
sal_Int16 GetBottomMargin() const {return nBottomMargin; }
void SetBottomMargin(sal_Int16 nBottom);
-
- SvxMarginItem& operator=(const SvxMarginItem& rMargin)
- {
- nLeftMargin = rMargin.nLeftMargin;
- nTopMargin = rMargin.nTopMargin;
- nRightMargin = rMargin.nRightMargin;
- nBottomMargin = rMargin.nBottomMargin;
- return *this;
- }
- SvxMarginItem(SvxMarginItem const &) = default; // SfxPoolItem copy function dichotomy
};
#endif
diff --git a/include/svx/autoformathelper.hxx b/include/svx/autoformathelper.hxx
new file mode 100755
index 000000000000..a2d72646cbce
--- /dev/null
+++ b/include/svx/autoformathelper.hxx
@@ -0,0 +1,218 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_SVX_AUTOFORMATHELPER_HXX
+#define INCLUDED_SVX_AUTOFORMATHELPER_HXX
+
+#include <svx/svxdllapi.h>
+#include <memory>
+
+class SvStream;
+class SvxFontItem;
+class SvxFontHeightItem;
+class SvxWeightItem;
+class SvxPostureItem;
+class SvxUnderlineItem;
+class SvxOverlineItem;
+class SvxCrossedOutItem;
+class SvxContourItem;
+class SvxShadowedItem;
+class SvxColorItem;
+class SvxBoxItem;
+class SvxLineItem;
+class SvxBrushItem;
+class SvxAdjustItem;
+class SvxHorJustifyItem;
+class SvxVerJustifyItem;
+class SfxBoolItem;
+class SvxMarginItem;
+class SfxInt32Item;
+class SvxRotateModeItem;
+
+//////////////////////////////////////////////////////////////////////////////
+/// Struct with version numbers of the Items
+
+struct SVX_DLLPUBLIC AutoFormatVersions
+{
+public:
+ // BlockA
+ sal_uInt16 nFontVersion;
+ sal_uInt16 nFontHeightVersion;
+ sal_uInt16 nWeightVersion;
+ sal_uInt16 nPostureVersion;
+ sal_uInt16 nUnderlineVersion;
+ sal_uInt16 nOverlineVersion;
+ sal_uInt16 nCrossedOutVersion;
+ sal_uInt16 nContourVersion;
+ sal_uInt16 nShadowedVersion;
+ sal_uInt16 nColorVersion;
+ sal_uInt16 nBoxVersion;
+ sal_uInt16 nLineVersion;
+ sal_uInt16 nBrushVersion;
+ sal_uInt16 nAdjustVersion;
+
+ // BlockB
+ sal_uInt16 nHorJustifyVersion;
+ sal_uInt16 nVerJustifyVersion;
+ sal_uInt16 nOrientationVersion;
+ sal_uInt16 nMarginVersion;
+ sal_uInt16 nBoolVersion;
+ sal_uInt16 nInt32Version;
+ sal_uInt16 nRotateModeVersion;
+ sal_uInt16 nNumFormatVersion;
+
+ AutoFormatVersions();
+
+ void LoadBlockA( SvStream& rStream, sal_uInt16 nVer );
+ void LoadBlockB( SvStream& rStream, sal_uInt16 nVer );
+
+ static void WriteBlockA(SvStream& rStream, sal_uInt16 fileVersion);
+ static void WriteBlockB(SvStream& rStream, sal_uInt16 fileVersion);
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
+class SVX_DLLPUBLIC AutoFormatBase
+{
+protected:
+ // common attributes of Calc and Writer
+ // --- from 641 on: CJK and CTL font settings
+ std::shared_ptr<SvxFontItem> m_aFont;
+ std::shared_ptr<SvxFontHeightItem> m_aHeight;
+ std::shared_ptr<SvxWeightItem> m_aWeight;
+ std::shared_ptr<SvxPostureItem> m_aPosture;
+
+ std::shared_ptr<SvxFontItem> m_aCJKFont;
+ std::shared_ptr<SvxFontHeightItem> m_aCJKHeight;
+ std::shared_ptr<SvxWeightItem> m_aCJKWeight;
+ std::shared_ptr<SvxPostureItem> m_aCJKPosture;
+
+ std::shared_ptr<SvxFontItem> m_aCTLFont;
+ std::shared_ptr<SvxFontHeightItem> m_aCTLHeight;
+ std::shared_ptr<SvxWeightItem> m_aCTLWeight;
+ std::shared_ptr<SvxPostureItem> m_aCTLPosture;
+
+ std::shared_ptr<SvxUnderlineItem> m_aUnderline;
+ std::shared_ptr<SvxOverlineItem> m_aOverline;
+ std::shared_ptr<SvxCrossedOutItem> m_aCrossedOut;
+ std::shared_ptr<SvxContourItem> m_aContour;
+ std::shared_ptr<SvxShadowedItem> m_aShadowed;
+ std::shared_ptr<SvxColorItem> m_aColor;
+ std::shared_ptr<SvxBoxItem> m_aBox;
+ std::shared_ptr<SvxLineItem> m_aTLBR;
+ std::shared_ptr<SvxLineItem> m_aBLTR;
+ std::shared_ptr<SvxBrushItem> m_aBackground;
+
+ // Writer specific
+ std::shared_ptr<SvxAdjustItem> m_aAdjust;
+
+ // Calc specific
+ std::shared_ptr<SvxHorJustifyItem> m_aHorJustify;
+ std::shared_ptr<SvxVerJustifyItem> m_aVerJustify;
+ std::shared_ptr<SfxBoolItem> m_aStacked;
+ std::shared_ptr<SvxMarginItem> m_aMargin;
+ std::shared_ptr<SfxBoolItem> m_aLinebreak;
+
+ // from SO5, 504k on, rotated text
+ std::shared_ptr<SfxInt32Item> m_aRotateAngle;
+ std::shared_ptr<SvxRotateModeItem> m_aRotateMode;
+
+public:
+ AutoFormatBase();
+ AutoFormatBase( const AutoFormatBase& rNew );
+ ~AutoFormatBase();
+
+ /// Comparing based of boxes backgrounds.
+ bool operator==(const AutoFormatBase& rRight);
+
+ // The get-methods.
+ const SvxFontItem &GetFont() const { return *m_aFont; }
+ const SvxFontHeightItem &GetHeight() const { return *m_aHeight; }
+ const SvxWeightItem &GetWeight() const { return *m_aWeight; }
+ const SvxPostureItem &GetPosture() const { return *m_aPosture; }
+ const SvxFontItem &GetCJKFont() const { return *m_aCJKFont; }
+ const SvxFontHeightItem &GetCJKHeight() const { return *m_aCJKHeight; }
+ const SvxWeightItem &GetCJKWeight() const { return *m_aCJKWeight; }
+ const SvxPostureItem &GetCJKPosture() const { return *m_aCJKPosture; }
+ const SvxFontItem &GetCTLFont() const { return *m_aCTLFont; }
+ const SvxFontHeightItem &GetCTLHeight() const { return *m_aCTLHeight; }
+ const SvxWeightItem &GetCTLWeight() const { return *m_aCTLWeight; }
+ const SvxPostureItem &GetCTLPosture() const { return *m_aCTLPosture; }
+ const SvxUnderlineItem &GetUnderline() const { return *m_aUnderline; }
+ const SvxOverlineItem &GetOverline() const { return *m_aOverline; }
+ const SvxCrossedOutItem &GetCrossedOut() const { return *m_aCrossedOut; }
+ const SvxContourItem &GetContour() const { return *m_aContour; }
+ const SvxShadowedItem &GetShadowed() const { return *m_aShadowed; }
+ const SvxColorItem &GetColor() const { return *m_aColor; }
+ const SvxBoxItem &GetBox() const { return *m_aBox; }
+ const SvxLineItem& GetTLBR() const { return *m_aTLBR; }
+ const SvxLineItem& GetBLTR() const { return *m_aBLTR; }
+ const SvxBrushItem &GetBackground() const { return *m_aBackground; }
+ const SvxAdjustItem &GetAdjust() const { return *m_aAdjust; }
+ const SvxHorJustifyItem& GetHorJustify() const { return *m_aHorJustify; }
+ const SvxVerJustifyItem& GetVerJustify() const { return *m_aVerJustify; }
+ const SfxBoolItem& GetStacked() const { return *m_aStacked; }
+ const SvxMarginItem& GetMargin() const { return *m_aMargin; }
+ const SfxBoolItem& GetLinebreak() const { return *m_aLinebreak; }
+ const SfxInt32Item& GetRotateAngle() const { return *m_aRotateAngle; }
+ const SvxRotateModeItem& GetRotateMode() const { return *m_aRotateMode; }
+
+ // The set-methods.
+ void SetFont( const SvxFontItem& rNew );
+ void SetHeight( const SvxFontHeightItem& rNew );
+ void SetWeight( const SvxWeightItem& rNew );
+ void SetPosture( const SvxPostureItem& rNew );
+ void SetCJKFont( const SvxFontItem& rNew );
+ void SetCJKHeight( const SvxFontHeightItem& rNew );
+ void SetCJKWeight( const SvxWeightItem& rNew );
+ void SetCJKPosture( const SvxPostureItem& rNew );
+ void SetCTLFont( const SvxFontItem& rNew );
+ void SetCTLHeight( const SvxFontHeightItem& rNew );
+ void SetCTLWeight( const SvxWeightItem& rNew );
+ void SetCTLPosture( const SvxPostureItem& rNew );
+ void SetUnderline( const SvxUnderlineItem& rNew );
+ void SetOverline( const SvxOverlineItem& rNew );
+ void SetCrossedOut( const SvxCrossedOutItem& rNew );
+ void SetContour( const SvxContourItem& rNew );
+ void SetShadowed( const SvxShadowedItem& rNew );
+ void SetColor( const SvxColorItem& rNew );
+ void SetBox( const SvxBoxItem& rNew );
+ void SetTLBR( const SvxLineItem& rNew );
+ void SetBLTR( const SvxLineItem& rNew );
+ void SetBackground( const SvxBrushItem& rNew );
+ void SetAdjust( const SvxAdjustItem& rNew );
+ void SetHorJustify( const SvxHorJustifyItem& rNew );
+ void SetVerJustify( const SvxVerJustifyItem& rNew );
+ void SetStacked( const SfxBoolItem& rNew );
+ void SetMargin( const SvxMarginItem& rNew );
+ void SetLinebreak( const SfxBoolItem& rNew );
+ void SetRotateAngle( const SfxInt32Item& rNew );
+ void SetRotateMode( const SvxRotateModeItem& rNew );
+
+ bool LoadBlockA( SvStream& rStream, const AutoFormatVersions& rVersions, sal_uInt16 nVer );
+ bool LoadBlockB( SvStream& rStream, const AutoFormatVersions& rVersions, sal_uInt16 nVer );
+
+ bool SaveBlockA( SvStream& rStream, sal_uInt16 fileVersion ) const;
+ bool SaveBlockB( SvStream& rStream, sal_uInt16 fileVersion ) const;
+};
+
+#endif // INCLUDED_SVX_AUTOFORMATHELPER_HXX
+
+//////////////////////////////////////////////////////////////////////////////
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svx/chrtitem.hxx b/include/svx/chrtitem.hxx
index d852cd10f0dc..5accfe78e0f9 100644
--- a/include/svx/chrtitem.hxx
+++ b/include/svx/chrtitem.hxx
@@ -88,7 +88,6 @@ public:
virtual SfxPoolItem* Clone(SfxItemPool* pPool = nullptr) const override;
sal_uInt16 GetValueCount() const override { return CHREGRESS_COUNT; }
- sal_uInt16 GetVersion (sal_uInt16 nFileFormatVersion) const override;
};
class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxChartTextOrderItem : public SfxEnumItem<SvxChartTextOrder>
@@ -114,8 +113,6 @@ public:
virtual SfxPoolItem* Clone(SfxItemPool* pPool = nullptr) const override;
sal_uInt16 GetValueCount() const override { return CHERROR_COUNT; }
-
- sal_uInt16 GetVersion (sal_uInt16 nFileFormatVersion) const override;
};
class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxChartIndicateItem : public SfxEnumItem<SvxChartIndicate>
@@ -127,8 +124,6 @@ public:
virtual SfxPoolItem* Clone(SfxItemPool* pPool = nullptr) const override;
sal_uInt16 GetValueCount() const override { return CHINDICATE_COUNT; }
-
- sal_uInt16 GetVersion (sal_uInt16 nFileFormatVersion) const override;
};
class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxDoubleItem : public SfxPoolItem
diff --git a/include/svx/e3ditem.hxx b/include/svx/e3ditem.hxx
index 714d9c5fe3ef..47e033d7b1a5 100644
--- a/include/svx/e3ditem.hxx
+++ b/include/svx/e3ditem.hxx
@@ -43,8 +43,6 @@ public:
const basegfx::B3DVector& GetValue() const { return aVal; }
- virtual sal_uInt16 GetVersion (sal_uInt16 nFileFormatVersion) const override;
-
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
diff --git a/include/svx/hlnkitem.hxx b/include/svx/hlnkitem.hxx
index 0762556f2428..f51749e0d448 100644
--- a/include/svx/hlnkitem.hxx
+++ b/include/svx/hlnkitem.hxx
@@ -69,8 +69,6 @@ public:
HyperDialogEvent nEvents,
SvxMacroTableDtor const *pMacroTbl );
- inline SvxHyperlinkItem& operator=( const SvxHyperlinkItem &rItem );
-
virtual bool operator==( const SfxPoolItem& ) const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
diff --git a/include/svx/legacyitem.hxx b/include/svx/legacyitem.hxx
new file mode 100755
index 000000000000..e75d8186aefa
--- /dev/null
+++ b/include/svx/legacyitem.hxx
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef INCLUDED_SVX_LEGACYITEM_HXX
+#define INCLUDED_SVX_LEGACYITEM_HXX
+
+#include <svx/svxdllapi.h>
+
+//////////////////////////////////////////////////////////////////////////////
+// // svx
+// SvxOrientationItem aOrientation( aRotateAngle.GetValue(), aStacked.GetValue(), 0 );
+// SvxMarginItem aMargin;
+// SvxRotateModeItem aRotateMode;
+//////////////////////////////////////////////////////////////////////////////
+
+class SvStream;
+class SvxOrientationItem;
+class SvxMarginItem;
+class SvxRotateModeItem;
+
+namespace legacy
+{
+ namespace SvxOrientation
+ {
+ sal_uInt16 SVX_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void SVX_DLLPUBLIC Create(SvxOrientationItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ SVX_DLLPUBLIC SvStream& Store(const SvxOrientationItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+ namespace SvxMargin
+ {
+ sal_uInt16 SVX_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void SVX_DLLPUBLIC Create(SvxMarginItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ SVX_DLLPUBLIC SvStream& Store(const SvxMarginItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+ namespace SvxRotateMode
+ {
+ sal_uInt16 SVX_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void SVX_DLLPUBLIC Create(SvxRotateModeItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ SVX_DLLPUBLIC SvStream& Store(const SvxRotateModeItem& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+}
+
+#endif // INCLUDED_SVX_LEGACYITEM_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svx/rotmodit.hxx b/include/svx/rotmodit.hxx
index 7327880e0cd9..aa190a19dfa1 100644
--- a/include/svx/rotmodit.hxx
+++ b/include/svx/rotmodit.hxx
@@ -45,8 +45,6 @@ public:
virtual sal_uInt16 GetValueCount() const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
MapUnit ePresMetric,
diff --git a/include/svx/sdasitm.hxx b/include/svx/sdasitm.hxx
index 3e2623b0ca76..b4014bdd8807 100644
--- a/include/svx/sdasitm.hxx
+++ b/include/svx/sdasitm.hxx
@@ -65,7 +65,6 @@ private:
OUString &rText, const IntlWrapper&) const override;
virtual SfxPoolItem* Clone( SfxItemPool* pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
diff --git a/include/svx/sdgcpitm.hxx b/include/svx/sdgcpitm.hxx
index 76d402814d60..26459d83c55d 100644
--- a/include/svx/sdgcpitm.hxx
+++ b/include/svx/sdgcpitm.hxx
@@ -37,7 +37,6 @@ public:
SvxGrfCrop( nLeftCrop, nRightCrop, nTopCrop, nBottomCrop, SDRATTR_GRAFCROP ) {}
virtual SfxPoolItem* Clone( SfxItemPool* pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
};
#endif // INCLUDED_SVX_SDGCPITM_HXX
diff --git a/include/svx/sdtacitm.hxx b/include/svx/sdtacitm.hxx
index 056a5e79bb6a..43efa53c1826 100644
--- a/include/svx/sdtacitm.hxx
+++ b/include/svx/sdtacitm.hxx
@@ -26,10 +26,6 @@
class SdrTextAniCountItem: public SfxUInt16Item {
public:
SdrTextAniCountItem(sal_uInt16 nVal=0): SfxUInt16Item(SDRATTR_TEXT_ANICOUNT,nVal) {}
- SdrTextAniCountItem(SvStream& rIn): SfxUInt16Item(SDRATTR_TEXT_ANICOUNT,rIn) {}
-
- virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const override
- { return new SdrTextAniCountItem(rStream); }
virtual SfxPoolItem * Clone(SfxItemPool * = nullptr) const override
{ return new SdrTextAniCountItem(*this); }
diff --git a/include/svx/sdtfchim.hxx b/include/svx/sdtfchim.hxx
index e00d3be87167..53198eb9d856 100644
--- a/include/svx/sdtfchim.hxx
+++ b/include/svx/sdtfchim.hxx
@@ -33,7 +33,6 @@ public:
OUString &rText, const IntlWrapper&) const override;
SVX_DLLPRIVATE virtual SfxPoolItem* Clone( SfxItemPool* pPool = nullptr ) const override;
- SVX_DLLPRIVATE virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
SVX_DLLPRIVATE virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
SVX_DLLPRIVATE virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
diff --git a/include/svx/svx3ditems.hxx b/include/svx/svx3ditems.hxx
index 11b4179b2d11..82ea78b09684 100644
--- a/include/svx/svx3ditems.hxx
+++ b/include/svx/svx3ditems.hxx
@@ -63,7 +63,6 @@ inline SfxBoolItem makeSvx3DDoubleSidedItem(bool bVal) {
class Svx3DReducedLineGeometryItem : public SfxBoolItem {
public:
Svx3DReducedLineGeometryItem(bool bVal = false);
- virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const override;
SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
};
@@ -283,7 +282,6 @@ public:
class Svx3DSmoothNormalsItem : public SfxBoolItem {
public:
Svx3DSmoothNormalsItem(bool bVal = true);
- virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const override;
SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
};
@@ -291,7 +289,6 @@ public:
class Svx3DSmoothLidsItem : public SfxBoolItem {
public:
Svx3DSmoothLidsItem(bool bVal = false);
- virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const override;
SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
};
@@ -299,7 +296,6 @@ public:
class Svx3DCharacterModeItem : public SfxBoolItem {
public:
Svx3DCharacterModeItem(bool bVal = false);
- virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const override;
SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
};
@@ -307,7 +303,6 @@ public:
class SVX_DLLPUBLIC Svx3DCloseFrontItem : public SfxBoolItem {
public:
Svx3DCloseFrontItem(bool bVal = true);
- SVX_DLLPRIVATE virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const override;
SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
};
@@ -315,7 +310,6 @@ public:
class SVX_DLLPUBLIC Svx3DCloseBackItem : public SfxBoolItem {
public:
Svx3DCloseBackItem(bool bVal = true);
- SVX_DLLPRIVATE virtual sal_uInt16 GetVersion(sal_uInt16 nFileFormatVersion) const override;
SfxPoolItem * Clone(SfxItemPool * = nullptr) const override;
};
diff --git a/include/svx/unobrushitemhelper.hxx b/include/svx/unobrushitemhelper.hxx
index b5ddc44c85c4..b3f7261f7708 100644
--- a/include/svx/unobrushitemhelper.hxx
+++ b/include/svx/unobrushitemhelper.hxx
@@ -43,7 +43,7 @@ SVX_DLLPUBLIC void setSvxBrushItemAsFillAttributesToTargetSet(
// items in the range [XATTR_FILL_FIRST .. XATTR_FILL_LAST]. Since this is not 100%
// representable this may lead to reduced data. With nBackgroundID a Which-ID for the
// to-be-created SvxBrushItem has to be given (default should be 99 as in RES_BACKGROUND).
-SVX_DLLPUBLIC SvxBrushItem getSvxBrushItemFromSourceSet(
+SVX_DLLPUBLIC std::shared_ptr<SvxBrushItem> getSvxBrushItemFromSourceSet(
const SfxItemSet& rSourceSet,
sal_uInt16 nBackgroundID,
bool bSearchInParents = true,
diff --git a/include/svx/xbtmpit.hxx b/include/svx/xbtmpit.hxx
index 7da764f7f9ac..bce24f860a4b 100644
--- a/include/svx/xbtmpit.hxx
+++ b/include/svx/xbtmpit.hxx
@@ -43,7 +43,6 @@ public:
virtual bool operator==( const SfxPoolItem& rItem ) const override;
virtual SfxPoolItem* Clone( SfxItemPool* pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
diff --git a/include/svx/xflftrit.hxx b/include/svx/xflftrit.hxx
index 95b29045631d..df78d6645bd7 100644
--- a/include/svx/xflftrit.hxx
+++ b/include/svx/xflftrit.hxx
@@ -43,7 +43,6 @@ public:
virtual bool operator==( const SfxPoolItem& rItem ) const override;
virtual SfxPoolItem* Clone( SfxItemPool* pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
diff --git a/include/svx/xflgrit.hxx b/include/svx/xflgrit.hxx
index 8f0424d23a74..159c6862dc79 100644
--- a/include/svx/xflgrit.hxx
+++ b/include/svx/xflgrit.hxx
@@ -43,7 +43,6 @@ public:
virtual bool operator==(const SfxPoolItem& rItem) const override;
virtual SfxPoolItem* Clone(SfxItemPool* pPool = nullptr) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
diff --git a/include/svx/xlinjoit.hxx b/include/svx/xlinjoit.hxx
index e56df6b4b997..b37aed1a45c0 100644
--- a/include/svx/xlinjoit.hxx
+++ b/include/svx/xlinjoit.hxx
@@ -35,7 +35,6 @@ public:
static SfxPoolItem* CreateDefault();
XLineJointItem( css::drawing::LineJoint eLineJoint = css::drawing::LineJoint_ROUND );
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
virtual SfxPoolItem* Clone( SfxItemPool* pPool = nullptr ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
diff --git a/include/svx/xlncapit.hxx b/include/svx/xlncapit.hxx
index 20f5ed09b912..57f49e07c015 100644
--- a/include/svx/xlncapit.hxx
+++ b/include/svx/xlncapit.hxx
@@ -35,7 +35,6 @@ public:
static SfxPoolItem* CreateDefault();
XLineCapItem(css::drawing::LineCap eLineCap = css::drawing::LineCap_BUTT);
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
virtual SfxPoolItem* Clone( SfxItemPool* pPool = nullptr ) const override;
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
diff --git a/include/svx/xsflclit.hxx b/include/svx/xsflclit.hxx
index 12ed0e004fd8..805665f2a003 100644
--- a/include/svx/xsflclit.hxx
+++ b/include/svx/xsflclit.hxx
@@ -36,9 +36,6 @@ public:
MapUnit eCoreMetric,
MapUnit ePresMetric,
OUString &rText, const IntlWrapper& ) const override;
-
- SVX_DLLPRIVATE virtual sal_uInt16 GetVersion( sal_uInt16 nFileFormatVersion ) const override;
-
};
#endif
diff --git a/sc/inc/attrib.hxx b/sc/inc/attrib.hxx
index cecc587c8df3..37340e786fe2 100644
--- a/sc/inc/attrib.hxx
+++ b/sc/inc/attrib.hxx
@@ -207,7 +207,6 @@ public:
virtual sal_uInt16 GetValueCount() const override;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- virtual sal_uInt16 GetVersion( sal_uInt16 nFileVersion ) const override;
virtual bool GetPresentation( SfxItemPresentation ePres,
MapUnit eCoreMetric,
MapUnit ePresMetric,
diff --git a/sc/inc/autoform.hxx b/sc/inc/autoform.hxx
index 8982cbd17400..b9279eef5965 100644
--- a/sc/inc/autoform.hxx
+++ b/sc/inc/autoform.hxx
@@ -46,6 +46,7 @@
#include <editeng/wghtitem.hxx>
#include <editeng/justifyitem.hxx>
#include <svx/rotmodit.hxx>
+#include <svx/autoformathelper.hxx>
#include <svl/intitem.hxx>
#include <editeng/lineitem.hxx>
#include "scdllapi.h"
@@ -86,155 +87,37 @@ struct AutoFormatSwBlob
};
/// Struct with version numbers of the Items
-struct ScAfVersions
+struct ScAfVersions : public AutoFormatVersions
{
public:
- sal_uInt16 nFontVersion;
- sal_uInt16 nFontHeightVersion;
- sal_uInt16 nWeightVersion;
- sal_uInt16 nPostureVersion;
- sal_uInt16 nUnderlineVersion;
- sal_uInt16 nOverlineVersion;
- sal_uInt16 nCrossedOutVersion;
- sal_uInt16 nContourVersion;
- sal_uInt16 nShadowedVersion;
- sal_uInt16 nColorVersion;
- sal_uInt16 nBoxVersion;
- sal_uInt16 nLineVersion;
- sal_uInt16 nBrushVersion;
-
- sal_uInt16 nAdjustVersion;
AutoFormatSwBlob swVersions;
- sal_uInt16 nHorJustifyVersion;
- sal_uInt16 nVerJustifyVersion;
- sal_uInt16 nOrientationVersion;
- sal_uInt16 nMarginVersion;
- sal_uInt16 nBoolVersion;
- sal_uInt16 nInt32Version;
- sal_uInt16 nRotateModeVersion;
-
- sal_uInt16 nNumFmtVersion;
-
ScAfVersions();
+
void Load( SvStream& rStream, sal_uInt16 nVer );
void Write(SvStream& rStream, sal_uInt16 fileVersion);
};
/// Contains all items for one cell of a table autoformat.
-class ScAutoFormatDataField
+class ScAutoFormatDataField : public AutoFormatBase
{
private:
- SvxFontItem aFont;
- SvxFontHeightItem aHeight;
- SvxWeightItem aWeight;
- SvxPostureItem aPosture;
-
- SvxFontItem aCJKFont;
- SvxFontHeightItem aCJKHeight;
- SvxWeightItem aCJKWeight;
- SvxPostureItem aCJKPosture;
-
- SvxFontItem aCTLFont;
- SvxFontHeightItem aCTLHeight;
- SvxWeightItem aCTLWeight;
- SvxPostureItem aCTLPosture;
-
- SvxUnderlineItem aUnderline;
- SvxOverlineItem aOverline;
- SvxCrossedOutItem aCrossedOut;
- SvxContourItem aContour;
- SvxShadowedItem aShadowed;
- SvxColorItem aColor;
- SvxBoxItem aBox;
- SvxLineItem aTLBR;
- SvxLineItem aBLTR;
- SvxBrushItem aBackground;
-
- // Writer specific
- SvxAdjustItem aAdjust;
- AutoFormatSwBlob m_swFields;
-
- // Calc specific
- SvxHorJustifyItem aHorJustify;
- SvxVerJustifyItem aVerJustify;
- SfxBoolItem aStacked;
- SvxMarginItem aMargin;
- SfxBoolItem aLinebreak;
- // from SO5, 504k on, rotated text
- SfxInt32Item aRotateAngle;
- SvxRotateModeItem aRotateMode;
+ AutoFormatSwBlob m_swFields;
// number format
- ScNumFormatAbbrev aNumFormat;
+ ScNumFormatAbbrev aNumFormat;
public:
- ScAutoFormatDataField();
- ScAutoFormatDataField( const ScAutoFormatDataField& rCopy );
- ~ScAutoFormatDataField();
+ ScAutoFormatDataField();
+ ScAutoFormatDataField( const ScAutoFormatDataField& rCopy );
+ ~ScAutoFormatDataField();
+ const AutoFormatSwBlob& GetAutoFormatSwBlob() const { return m_swFields; }
+ // number format
const ScNumFormatAbbrev& GetNumFormat() const { return aNumFormat; }
- const SvxFontItem& GetFont() const { return aFont; }
- const SvxFontHeightItem& GetHeight() const { return aHeight; }
- const SvxWeightItem& GetWeight() const { return aWeight; }
- const SvxPostureItem& GetPosture() const { return aPosture; }
- const SvxFontItem& GetCJKFont() const { return aCJKFont; }
- const SvxFontHeightItem& GetCJKHeight() const { return aCJKHeight; }
- const SvxWeightItem& GetCJKWeight() const { return aCJKWeight; }
- const SvxPostureItem& GetCJKPosture() const { return aCJKPosture; }
- const SvxFontItem& GetCTLFont() const { return aCTLFont; }
- const SvxFontHeightItem& GetCTLHeight() const { return aCTLHeight; }
- const SvxWeightItem& GetCTLWeight() const { return aCTLWeight; }
- const SvxPostureItem& GetCTLPosture() const { return aCTLPosture; }
- const SvxUnderlineItem& GetUnderline() const { return aUnderline; }
- const SvxOverlineItem& GetOverline() const { return aOverline; }
- const SvxCrossedOutItem& GetCrossedOut() const { return aCrossedOut; }
- const SvxContourItem& GetContour() const { return aContour; }
- const SvxShadowedItem& GetShadowed() const { return aShadowed; }
- const SvxColorItem& GetColor() const { return aColor; }
- const SvxHorJustifyItem& GetHorJustify() const { return aHorJustify; }
- const SvxVerJustifyItem& GetVerJustify() const { return aVerJustify; }
- const SfxBoolItem& GetStacked() const { return aStacked; }
- const SfxBoolItem& GetLinebreak() const { return aLinebreak; }
- const SvxMarginItem& GetMargin() const { return aMargin; }
- const SvxBoxItem& GetBox() const { return aBox; }
- const SvxLineItem& GetTLBR() const { return aTLBR; }
- const SvxLineItem& GetBLTR() const { return aBLTR; }
- const SvxBrushItem& GetBackground() const { return aBackground; }
- const SfxInt32Item& GetRotateAngle() const { return aRotateAngle; }
- const SvxRotateModeItem& GetRotateMode() const { return aRotateMode; }
+ // number format
void SetNumFormat( const ScNumFormatAbbrev& rNumFormat ) { aNumFormat = rNumFormat; }
- void SetFont( const SvxFontItem& rFont ) { aFont = rFont; }
- void SetHeight( const SvxFontHeightItem& rHeight ) { aHeight = rHeight; }
- void SetWeight( const SvxWeightItem& rWeight ) { aWeight = rWeight; }
- void SetPosture( const SvxPostureItem& rPosture ) { aPosture = rPosture; }
- void SetCJKFont( const SvxFontItem& rCJKFont ) { aCJKFont = rCJKFont; }
- void SetCJKHeight( const SvxFontHeightItem& rCJKHeight ) { aCJKHeight = rCJKHeight; }
- void SetCJKWeight( const SvxWeightItem& rCJKWeight ) { aCJKWeight = rCJKWeight; }
- void SetCJKPosture( const SvxPostureItem& rCJKPosture ) { aCJKPosture = rCJKPosture; }
- void SetCTLFont( const SvxFontItem& rCTLFont ) { aCTLFont = rCTLFont; }
- void SetCTLHeight( const SvxFontHeightItem& rCTLHeight ) { aCTLHeight = rCTLHeight; }
- void SetCTLWeight( const SvxWeightItem& rCTLWeight ) { aCTLWeight = rCTLWeight; }
- void SetCTLPosture( const SvxPostureItem& rCTLPosture ) { aCTLPosture = rCTLPosture; }
- void SetUnderline( const SvxUnderlineItem& rUnderline ) { aUnderline = rUnderline; }
- void SetOverline( const SvxOverlineItem& rOverline ) { aOverline = rOverline; }
- void SetCrossedOut( const SvxCrossedOutItem& rCrossedOut ) { aCrossedOut = rCrossedOut; }
- void SetContour( const SvxContourItem& rContour ) { aContour = rContour; }
- void SetShadowed( const SvxShadowedItem& rShadowed ) { aShadowed = rShadowed; }
- void SetColor( const SvxColorItem& rColor ) { aColor = rColor; }
- void SetHorJustify( const SvxHorJustifyItem& rHorJustify ) { aHorJustify = rHorJustify; }
- void SetVerJustify( const SvxVerJustifyItem& rVerJustify ) { aVerJustify = rVerJustify; }
- void SetStacked( const SfxBoolItem& rStacked ) { aStacked.SetValue( rStacked.GetValue() ); }
- void SetLinebreak( const SfxBoolItem& rLinebreak ) { aLinebreak.SetValue( rLinebreak.GetValue() ); }
- void SetMargin( const SvxMarginItem& rMargin ) { aMargin = rMargin; }
- void SetBox( const SvxBoxItem& rBox ) { aBox = rBox; }
- void SetTLBR( const SvxLineItem& rTLBR ) { aTLBR = rTLBR; }
- void SetBLTR( const SvxLineItem& rBLTR ) { aBLTR = rBLTR; }
- void SetBackground( const SvxBrushItem& rBackground ) { aBackground = rBackground; }
- void SetAdjust( const SvxAdjustItem& rAdjust );
- void SetRotateAngle( const SfxInt32Item& rRotateAngle ) { aRotateAngle.SetValue( rRotateAngle.GetValue() ); }
- void SetRotateMode( const SvxRotateModeItem& rRotateMode ) { aRotateMode.SetValue( rRotateMode.GetValue() ); }
bool Load( SvStream& rStream, const ScAfVersions& rVersions, sal_uInt16 nVer );
bool Save( SvStream& rStream, sal_uInt16 fileVersion );
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index f4d579504a3c..578ff72435d2 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -1629,7 +1629,7 @@ void ScFiltersTest::testPassword_Impl(const OUString& aFileNameBase)
ScDocShellRef xDocSh = new ScDocShell;
SfxMedium* pMedium = new SfxMedium(aFileName, StreamMode::STD_READWRITE);
SfxItemSet* pSet = pMedium->GetItemSet();
- pSet->Put(SfxStringItem(SID_PASSWORD, OUString("test")));
+ pSet->Put(SfxStringItem(SID_PASSWORD, "test"));
pMedium->SetFilter(pFilter);
if (!xDocSh->DoLoad(pMedium))
{
diff --git a/sc/source/core/data/attrib.cxx b/sc/source/core/data/attrib.cxx
index cf6a61663a59..1b523f918a41 100644
--- a/sc/source/core/data/attrib.cxx
+++ b/sc/source/core/data/attrib.cxx
@@ -558,11 +558,6 @@ SfxPoolItem* ScViewObjectModeItem::Clone( SfxItemPool* ) const
return new ScViewObjectModeItem( *this );
}
-sal_uInt16 ScViewObjectModeItem::GetVersion( sal_uInt16 /* nFileVersion */ ) const
-{
- return 1;
-}
-
ScPageScaleToItem::ScPageScaleToItem() :
SfxPoolItem( ATTR_PAGE_SCALETO ),
mnWidth( 0 ),
diff --git a/sc/source/core/data/patattr.cxx b/sc/source/core/data/patattr.cxx
index efaebde867b5..fbf6d33e4a6c 100644
--- a/sc/source/core/data/patattr.cxx
+++ b/sc/source/core/data/patattr.cxx
@@ -582,14 +582,14 @@ void ScPatternAttr::FillToEditItemSet( SfxItemSet& rEditSet, const SfxItemSet& r
{
// Read Items
- SvxColorItem aColorItem(EE_CHAR_COLOR); // use item as-is
- SvxFontItem aFontItem(EE_CHAR_FONTINFO); // use item as-is
- SvxFontItem aCjkFontItem(EE_CHAR_FONTINFO_CJK);
- SvxFontItem aCtlFontItem(EE_CHAR_FONTINFO_CTL);
+ std::shared_ptr<SvxColorItem> aColorItem(std::make_shared<SvxColorItem>(EE_CHAR_COLOR)); // use item as-is
+ std::shared_ptr<SvxFontItem> aFontItem(std::make_shared<SvxFontItem>(EE_CHAR_FONTINFO)); // use item as-is
+ std::shared_ptr<SvxFontItem> aCjkFontItem(std::make_shared<SvxFontItem>(EE_CHAR_FONTINFO_CJK)); // use item as-is
+ std::shared_ptr<SvxFontItem> aCtlFontItem(std::make_shared<SvxFontItem>(EE_CHAR_FONTINFO_CTL)); // use item as-is
long nTHeight, nCjkTHeight, nCtlTHeight; // Twips
FontWeight eWeight, eCjkWeight, eCtlWeight;
- SvxUnderlineItem aUnderlineItem(LINESTYLE_NONE, EE_CHAR_UNDERLINE);
- SvxOverlineItem aOverlineItem(LINESTYLE_NONE, EE_CHAR_OVERLINE);
+ std::shared_ptr<SvxUnderlineItem> aUnderlineItem(std::make_shared<SvxUnderlineItem>(LINESTYLE_NONE, EE_CHAR_UNDERLINE));
+ std::shared_ptr<SvxOverlineItem> aOverlineItem(std::make_shared<SvxOverlineItem>(LINESTYLE_NONE, EE_CHAR_OVERLINE));
bool bWordLine;
FontStrikeout eStrike;
FontItalic eItalic, eCjkItalic, eCtlItalic;
@@ -610,17 +610,19 @@ void ScPatternAttr::FillToEditItemSet( SfxItemSet& rEditSet, const SfxItemSet& r
if ( pCondSet->GetItemState( ATTR_FONT_COLOR, true, &pItem ) != SfxItemState::SET )
pItem = &rSrcSet.Get( ATTR_FONT_COLOR );
- aColorItem = *static_cast<const SvxColorItem*>(pItem);
+ aColorItem.reset(static_cast<SvxColorItem*>(pItem->Clone()));
if ( pCondSet->GetItemState( ATTR_FONT, true, &pItem ) != SfxItemState::SET )
pItem = &rSrcSet.Get( ATTR_FONT );
- aFontItem = *static_cast<const SvxFontItem*>(pItem);
+ aFontItem.reset(static_cast<SvxFontItem*>(pItem->Clone()));
+
if ( pCondSet->GetItemState( ATTR_CJK_FONT, true, &pItem ) != SfxItemState::SET )
pItem = &rSrcSet.Get( ATTR_CJK_FONT );
- aCjkFontItem = *static_cast<const SvxFontItem*>(pItem);
+ aCjkFontItem.reset(static_cast<SvxFontItem*>(pItem->Clone()));
+
if ( pCondSet->GetItemState( ATTR_CTL_FONT, true, &pItem ) != SfxItemState::SET )
pItem = &rSrcSet.Get( ATTR_CTL_FONT );
- aCtlFontItem = *static_cast<const SvxFontItem*>(pItem);
+ aCtlFontItem.reset(static_cast<SvxFontItem*>(pItem->Clone()));
if ( pCondSet->GetItemState( ATTR_FONT_HEIGHT, true, &pItem ) != SfxItemState::SET )
pItem = &rSrcSet.Get( ATTR_FONT_HEIGHT );
@@ -654,11 +656,11 @@ void ScPatternAttr::FillToEditItemSet( SfxItemSet& rEditSet, const SfxItemSet& r
if ( pCondSet->GetItemState( ATTR_FONT_UNDERLINE, true, &pItem ) != SfxItemState::SET )
pItem = &rSrcSet.Get( ATTR_FONT_UNDERLINE );
- aUnderlineItem = *static_cast<const SvxUnderlineItem*>(pItem);
+ aUnderlineItem.reset(static_cast<SvxUnderlineItem*>(pItem->Clone()));
if ( pCondSet->GetItemState( ATTR_FONT_OVERLINE, true, &pItem ) != SfxItemState::SET )
pItem = &rSrcSet.Get( ATTR_FONT_OVERLINE );
- aOverlineItem = *static_cast<const SvxOverlineItem*>(pItem);
+ aOverlineItem.reset(static_cast<SvxOverlineItem*>(pItem->Clone()));
if ( pCondSet->GetItemState( ATTR_FONT_WORDLINE, true, &pItem ) != SfxItemState::SET )
pItem = &rSrcSet.Get( ATTR_FONT_WORDLINE );
@@ -707,10 +709,10 @@ void ScPatternAttr::FillToEditItemSet( SfxItemSet& rEditSet, const SfxItemSet& r
}
else // Everything directly from Pattern
{
- aColorItem = rSrcSet.Get( ATTR_FONT_COLOR );
- aFontItem = rSrcSet.Get( ATTR_FONT );
- aCjkFontItem = rSrcSet.Get( ATTR_CJK_FONT );
- aCtlFontItem = rSrcSet.Get( ATTR_CTL_FONT );
+ aColorItem.reset(static_cast<SvxColorItem*>(rSrcSet.Get(ATTR_FONT_COLOR).Clone()));
+ aFontItem.reset(static_cast<SvxFontItem*>(rSrcSet.Get(ATTR_FONT).Clone()));
+ aCjkFontItem.reset(static_cast<SvxFontItem*>(rSrcSet.Get(ATTR_CJK_FONT).Clone()));
+ aCtlFontItem.reset(static_cast<SvxFontItem*>(rSrcSet.Get(ATTR_CTL_FONT).Clone()));
nTHeight = rSrcSet.Get( ATTR_FONT_HEIGHT ).GetHeight();
nCjkTHeight = rSrcSet.Get( ATTR_CJK_FONT_HEIGHT ).GetHeight();
nCtlTHeight = rSrcSet.Get( ATTR_CTL_FONT_HEIGHT ).GetHeight();
@@ -720,8 +722,8 @@ void ScPatternAttr::FillToEditItemSet( SfxItemSet& rEditSet, const SfxItemSet& r
eItalic = rSrcSet.Get( ATTR_FONT_POSTURE ).GetValue();
eCjkItalic = rSrcSet.Get( ATTR_CJK_FONT_POSTURE ).GetValue();
eCtlItalic = rSrcSet.Get( ATTR_CTL_FONT_POSTURE ).GetValue();
- aUnderlineItem = rSrcSet.Get( ATTR_FONT_UNDERLINE );
- aOverlineItem = rSrcSet.Get( ATTR_FONT_OVERLINE );
+ aUnderlineItem.reset(static_cast<SvxUnderlineItem*>(rSrcSet.Get(ATTR_FONT_UNDERLINE).Clone()));
+ aOverlineItem.reset(static_cast<SvxOverlineItem*>(rSrcSet.Get(ATTR_FONT_OVERLINE).Clone()));
bWordLine = rSrcSet.Get( ATTR_FONT_WORDLINE ).GetValue();
eStrike = rSrcSet.Get( ATTR_FONT_CROSSEDOUT ).GetValue();
bOutline = rSrcSet.Get( ATTR_FONT_CONTOUR ).GetValue();
@@ -744,7 +746,7 @@ void ScPatternAttr::FillToEditItemSet( SfxItemSet& rEditSet, const SfxItemSet& r
// put items into EditEngine ItemSet
- if ( aColorItem.GetValue() == COL_AUTO )
+ if ( aColorItem->GetValue() == COL_AUTO )
{
// When cell attributes are converted to EditEngine paragraph attributes,
// don't create a hard item for automatic color, because that would be converted
@@ -754,18 +756,21 @@ void ScPatternAttr::FillToEditItemSet( SfxItemSet& rEditSet, const SfxItemSet& r
rEditSet.ClearItem( EE_CHAR_COLOR );
}
else
- rEditSet.Put( aColorItem );
- rEditSet.Put( aFontItem );
- rEditSet.Put( aCjkFontItem );
- rEditSet.Put( aCtlFontItem );
+ {
+ rEditSet.Put( *aColorItem );
+ }
+
+ rEditSet.Put( *aFontItem );
+ rEditSet.Put( *aCjkFontItem );
+ rEditSet.Put( *aCtlFontItem );
rEditSet.Put( SvxFontHeightItem( nHeight, 100, EE_CHAR_FONTHEIGHT ) );
rEditSet.Put( SvxFontHeightItem( nCjkHeight, 100, EE_CHAR_FONTHEIGHT_CJK ) );
rEditSet.Put( SvxFontHeightItem( nCtlHeight, 100, EE_CHAR_FONTHEIGHT_CTL ) );
rEditSet.Put( SvxWeightItem ( eWeight, EE_CHAR_WEIGHT ) );
rEditSet.Put( SvxWeightItem ( eCjkWeight, EE_CHAR_WEIGHT_CJK ) );
rEditSet.Put( SvxWeightItem ( eCtlWeight, EE_CHAR_WEIGHT_CTL ) );
- rEditSet.Put( aUnderlineItem );
- rEditSet.Put( aOverlineItem );
+ rEditSet.Put( *aUnderlineItem );
+ rEditSet.Put( *aOverlineItem );
rEditSet.Put( SvxWordLineModeItem( bWordLine, EE_CHAR_WLM ) );
rEditSet.Put( SvxCrossedOutItem( eStrike, EE_CHAR_STRIKEOUT ) );
rEditSet.Put( SvxPostureItem ( eItalic, EE_CHAR_ITALIC ) );
diff --git a/sc/source/core/tool/autoform.cxx b/sc/source/core/tool/autoform.cxx
index fd28eb291ab4..00e0a7430b02 100644
--- a/sc/source/core/tool/autoform.cxx
+++ b/sc/source/core/tool/autoform.cxx
@@ -42,6 +42,10 @@
#include <scresid.hxx>
#include <document.hxx>
+#include <svl/legacyitem.hxx>
+#include <editeng/legacyitem.hxx>
+#include <svx/legacyitem.hxx>
+
/*
* XXX: BIG RED NOTICE! Changes MUST be binary file format compatible and MUST
* be synchronized with Writer's SwTableAutoFmtTbl sw/source/core/doc/tblafmt.cxx
@@ -61,20 +65,9 @@ const sal_uInt16 AUTOFORMAT_DATA_ID_504 = 9802;
const sal_uInt16 AUTOFORMAT_DATA_ID_552 = 9902;
-// --- from 641 on: CJK and CTL font settings
-const sal_uInt16 AUTOFORMAT_DATA_ID_641 = 10002;
-
-// --- from 680/dr14 on: diagonal frame lines
-const sal_uInt16 AUTOFORMAT_ID_680DR14 = 10011;
-const sal_uInt16 AUTOFORMAT_DATA_ID_680DR14 = 10012;
-
// --- from 680/dr25 on: store strings as UTF-8
const sal_uInt16 AUTOFORMAT_ID_680DR25 = 10021;
-// --- from DEV300/overline2 on: overline support
-const sal_uInt16 AUTOFORMAT_ID_300OVRLN = 10031;
-const sal_uInt16 AUTOFORMAT_DATA_ID_300OVRLN = 10032;
-
// --- Bug fix to fdo#31005: Table Autoformats does not save/apply all properties (Writer and Calc)
const sal_uInt16 AUTOFORMAT_ID_31005 = 10041;
const sal_uInt16 AUTOFORMAT_DATA_ID_31005 = 10042;
@@ -119,163 +112,77 @@ namespace
}
}
-ScAfVersions::ScAfVersions() :
- nFontVersion(0),
- nFontHeightVersion(0),
- nWeightVersion(0),
- nPostureVersion(0),
- nUnderlineVersion(0),
- nOverlineVersion(0),
- nCrossedOutVersion(0),
- nContourVersion(0),
- nShadowedVersion(0),
- nColorVersion(0),
- nBoxVersion(0),
- nLineVersion(0),
- nBrushVersion(0),
- nAdjustVersion(0),
- nHorJustifyVersion(0),
- nVerJustifyVersion(0),
- nOrientationVersion(0),
- nMarginVersion(0),
- nBoolVersion(0),
- nInt32Version(0),
- nRotateModeVersion(0),
- nNumFmtVersion(0)
+ScAfVersions::ScAfVersions()
+: AutoFormatVersions(),
+ swVersions()
{
}
void ScAfVersions::Load( SvStream& rStream, sal_uInt16 nVer )
{
- rStream.ReadUInt16( nFontVersion );
- rStream.ReadUInt16( nFontHeightVersion );
- rStream.ReadUInt16( nWeightVersion );
- rStream.ReadUInt16( nPostureVersion );
- rStream.ReadUInt16( nUnderlineVersion );
- if ( nVer >= AUTOFORMAT_ID_300OVRLN )
- rStream.ReadUInt16( nOverlineVersion );
- rStream.ReadUInt16( nCrossedOutVersion );
- rStream.ReadUInt16( nContourVersion );
- rStream.ReadUInt16( nShadowedVersion );
- rStream.ReadUInt16( nColorVersion );
- rStream.ReadUInt16( nBoxVersion );
- if ( nVer >= AUTOFORMAT_ID_680DR14 )
- rStream.ReadUInt16( nLineVersion );
- rStream.ReadUInt16( nBrushVersion );
- rStream.ReadUInt16( nAdjustVersion );
+ LoadBlockA(rStream, nVer);
if (nVer >= AUTOFORMAT_ID_31005)
- rStream >> swVersions;
- rStream.ReadUInt16( nHorJustifyVersion );
- rStream.ReadUInt16( nVerJustifyVersion );
- rStream.ReadUInt16( nOrientationVersion );
- rStream.ReadUInt16( nMarginVersion );
- rStream.ReadUInt16( nBoolVersion );
- if ( nVer >= AUTOFORMAT_ID_504 )
{
- rStream.ReadUInt16( nInt32Version );
- rStream.ReadUInt16( nRotateModeVersion );
+ rStream >> swVersions;
}
- rStream.ReadUInt16( nNumFmtVersion );
+ LoadBlockB(rStream, nVer);
}
void ScAfVersions::Write(SvStream& rStream, sal_uInt16 fileVersion)
{
- rStream.WriteUInt16( SvxFontItem(ATTR_FONT).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxFontHeightItem(240, 100, ATTR_FONT_HEIGHT).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxWeightItem(WEIGHT_NORMAL, ATTR_FONT_WEIGHT).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxPostureItem(ITALIC_NONE, ATTR_FONT_POSTURE).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxUnderlineItem(LINESTYLE_NONE, ATTR_FONT_UNDERLINE).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxOverlineItem(LINESTYLE_NONE, ATTR_FONT_OVERLINE).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxCrossedOutItem(STRIKEOUT_NONE, ATTR_FONT_CROSSEDOUT).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxContourItem(false, ATTR_FONT_CONTOUR).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxShadowedItem(false, ATTR_FONT_SHADOWED).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxColorItem(ATTR_FONT_COLOR).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxBoxItem(ATTR_BORDER).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxLineItem(SID_FRAME_LINESTYLE).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxBrushItem(ATTR_BACKGROUND).GetVersion(fileVersion) );
-
- rStream.WriteUInt16( SvxAdjustItem(SvxAdjust::Left, 0).GetVersion(fileVersion) );
+ AutoFormatVersions::WriteBlockA(rStream, fileVersion);
+
if (fileVersion >= SOFFICE_FILEFORMAT_50)
+ {
WriteAutoFormatSwBlob( rStream, swVersions );
+ }
- rStream.WriteUInt16( SvxHorJustifyItem(SvxCellHorJustify::Standard, ATTR_HOR_JUSTIFY).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxVerJustifyItem(SvxCellVerJustify::Standard, ATTR_VER_JUSTIFY).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxOrientationItem(SvxCellOrientation::Standard, 0).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxMarginItem(ATTR_MARGIN).GetVersion(fileVersion) );
- rStream.WriteUInt16( SfxBoolItem(ATTR_LINEBREAK).GetVersion(fileVersion) );
- rStream.WriteUInt16( SfxInt32Item(ATTR_ROTATE_VALUE).GetVersion(fileVersion) );
- rStream.WriteUInt16( SvxRotateModeItem(SVX_ROTATE_MODE_STANDARD,0).GetVersion(fileVersion) );
-
- rStream.WriteUInt16( 0 ); // Num-Format
-}
-
-ScAutoFormatDataField::ScAutoFormatDataField() :
- aFont( ATTR_FONT ),
- aHeight( 240, 100, ATTR_FONT_HEIGHT ),
- aWeight( WEIGHT_NORMAL, ATTR_FONT_WEIGHT ),
- aPosture( ITALIC_NONE, ATTR_FONT_POSTURE ),
-
- aCJKFont( ATTR_CJK_FONT ),
- aCJKHeight( 240, 100, ATTR_CJK_FONT_HEIGHT ),
- aCJKWeight( WEIGHT_NORMAL, ATTR_CJK_FONT_WEIGHT ),
- aCJKPosture( ITALIC_NONE, ATTR_CJK_FONT_POSTURE ),
-
- aCTLFont( ATTR_CTL_FONT ),
- aCTLHeight( 240, 100, ATTR_CTL_FONT_HEIGHT ),
- aCTLWeight( WEIGHT_NORMAL, ATTR_CTL_FONT_WEIGHT ),
- aCTLPosture( ITALIC_NONE, ATTR_CTL_FONT_POSTURE ),
-
- aUnderline( LINESTYLE_NONE,ATTR_FONT_UNDERLINE ),
- aOverline( LINESTYLE_NONE,ATTR_FONT_OVERLINE ),
- aCrossedOut( STRIKEOUT_NONE, ATTR_FONT_CROSSEDOUT ),
- aContour( false, ATTR_FONT_CONTOUR ),
- aShadowed( false, ATTR_FONT_SHADOWED ),
- aColor( ATTR_FONT_COLOR ),
- aBox( ATTR_BORDER ),
- aTLBR( ATTR_BORDER_TLBR ),
- aBLTR( ATTR_BORDER_BLTR ),
- aBackground( ATTR_BACKGROUND ),
- aAdjust( SvxAdjust::Left, 0 ),
- aHorJustify( SvxCellHorJustify::Standard, ATTR_HOR_JUSTIFY ),
- aVerJustify( SvxCellVerJustify::Standard, ATTR_VER_JUSTIFY ),
- aMargin( ATTR_MARGIN ),
- aLinebreak( ATTR_LINEBREAK ),
- aRotateAngle( ATTR_ROTATE_VALUE ),
- aRotateMode( SVX_ROTATE_MODE_STANDARD, ATTR_ROTATE_MODE )
-{
-}
-
-ScAutoFormatDataField::ScAutoFormatDataField( const ScAutoFormatDataField& rCopy ) :
- aFont( rCopy.aFont ),
- aHeight( rCopy.aHeight ),
- aWeight( rCopy.aWeight ),
- aPosture( rCopy.aPosture ),
- aCJKFont( rCopy.aCJKFont ),
- aCJKHeight( rCopy.aCJKHeight ),
- aCJKWeight( rCopy.aCJKWeight ),
- aCJKPosture( rCopy.aCJKPosture ),
- aCTLFont( rCopy.aCTLFont ),
- aCTLHeight( rCopy.aCTLHeight ),
- aCTLWeight( rCopy.aCTLWeight ),
- aCTLPosture( rCopy.aCTLPosture ),
- aUnderline( rCopy.aUnderline ),
- aOverline( rCopy.aOverline ),
- aCrossedOut( rCopy.aCrossedOut ),
- aContour( rCopy.aContour ),
- aShadowed( rCopy.aShadowed ),
- aColor( rCopy.aColor ),
- aBox( rCopy.aBox ),
- aTLBR( rCopy.aTLBR ),
- aBLTR( rCopy.aBLTR ),
- aBackground( rCopy.aBackground ),
- aAdjust( rCopy.aAdjust ),
- aHorJustify( rCopy.aHorJustify ),
- aVerJustify( rCopy.aVerJustify ),
- aStacked( rCopy.aStacked ),
- aMargin( rCopy.aMargin ),
- aLinebreak( rCopy.aLinebreak ),
- aRotateAngle( rCopy.aRotateAngle ),
- aRotateMode( rCopy.aRotateMode ),
+ AutoFormatVersions::WriteBlockB(rStream, fileVersion);
+}
+
+ScAutoFormatDataField::ScAutoFormatDataField()
+: AutoFormatBase(),
+ m_swFields(),
+ aNumFormat()
+{
+ // need to set default instances for base class AutoFormatBase here
+ // due to ressource defines (e.g. ATTR_FONT) which are not available
+ // in svx and different in the different usages of derivations
+ m_aFont = std::make_shared<SvxFontItem>(ATTR_FONT);
+ m_aHeight = std::make_shared<SvxFontHeightItem>(240, 100, ATTR_FONT_HEIGHT);
+ m_aWeight = std::make_shared<SvxWeightItem>(WEIGHT_NORMAL, ATTR_FONT_WEIGHT);
+ m_aPosture = std::make_shared<SvxPostureItem>(ITALIC_NONE, ATTR_FONT_POSTURE);
+ m_aCJKFont = std::make_shared<SvxFontItem>(ATTR_CJK_FONT);
+ m_aCJKHeight = std::make_shared<SvxFontHeightItem>(240, 100, ATTR_CJK_FONT_HEIGHT);
+ m_aCJKWeight = std::make_shared<SvxWeightItem>(WEIGHT_NORMAL, ATTR_CJK_FONT_WEIGHT);
+ m_aCJKPosture = std::make_shared<SvxPostureItem>(ITALIC_NONE, ATTR_CJK_FONT_POSTURE);
+ m_aCTLFont = std::make_shared<SvxFontItem>(ATTR_CTL_FONT);
+ m_aCTLHeight = std::make_shared<SvxFontHeightItem>(240, 100, ATTR_CTL_FONT_HEIGHT);
+ m_aCTLWeight = std::make_shared<SvxWeightItem>(WEIGHT_NORMAL, ATTR_CTL_FONT_WEIGHT);
+ m_aCTLPosture = std::make_shared<SvxPostureItem>(ITALIC_NONE, ATTR_CTL_FONT_POSTURE);
+ m_aUnderline = std::make_shared<SvxUnderlineItem>(LINESTYLE_NONE,ATTR_FONT_UNDERLINE);
+ m_aOverline = std::make_shared<SvxOverlineItem>(LINESTYLE_NONE,ATTR_FONT_OVERLINE);
+ m_aCrossedOut = std::make_shared<SvxCrossedOutItem>(STRIKEOUT_NONE, ATTR_FONT_CROSSEDOUT);
+ m_aContour = std::make_shared<SvxContourItem>(false, ATTR_FONT_CONTOUR);
+ m_aShadowed = std::make_shared<SvxShadowedItem>(false, ATTR_FONT_SHADOWED);
+ m_aColor = std::make_shared<SvxColorItem>(ATTR_FONT_COLOR);
+ m_aBox = std::make_shared<SvxBoxItem>(ATTR_BORDER);
+ m_aTLBR = std::make_shared<SvxLineItem>(ATTR_BORDER_TLBR);
+ m_aBLTR = std::make_shared<SvxLineItem>(ATTR_BORDER_BLTR);
+ m_aBackground = std::make_shared<SvxBrushItem>(ATTR_BACKGROUND);
+ m_aAdjust = std::make_shared<SvxAdjustItem>(SvxAdjust::Left, 0);
+ m_aHorJustify = std::make_shared<SvxHorJustifyItem>(SvxCellHorJustify::Standard, ATTR_HOR_JUSTIFY);
+ m_aVerJustify = std::make_shared<SvxVerJustifyItem>(SvxCellVerJustify::Standard, ATTR_VER_JUSTIFY);
+ m_aStacked = std::make_shared<SfxBoolItem>();
+ m_aMargin = std::make_shared<SvxMarginItem>(ATTR_MARGIN);
+ m_aLinebreak = std::make_shared<SfxBoolItem>(ATTR_LINEBREAK);
+ m_aRotateAngle = std::make_shared<SfxInt32Item>(ATTR_ROTATE_VALUE);
+ m_aRotateMode = std::make_shared<SvxRotateModeItem>(SVX_ROTATE_MODE_STANDARD, ATTR_ROTATE_MODE);
+}
+
+ScAutoFormatDataField::ScAutoFormatDataField( const ScAutoFormatDataField& rCopy )
+: AutoFormatBase(rCopy),
+ m_swFields(), // was not copied in original, needed?
aNumFormat( rCopy.aNumFormat )
{
}
@@ -284,86 +191,18 @@ ScAutoFormatDataField::~ScAutoFormatDataField()
{
}
-void ScAutoFormatDataField::SetAdjust( const SvxAdjustItem& rAdjust )
-{
- aAdjust.SetAdjust( rAdjust.GetAdjust() );
- aAdjust.SetOneWord( rAdjust.GetOneWord() );
- aAdjust.SetLastBlock( rAdjust.GetLastBlock() );
-}
-
-#define READ( aItem, ItemType, nVers ) \
- pNew = aItem.Create( rStream, nVers ); \
- aItem = *static_cast<ItemType*>(pNew); \
- delete pNew;
-
bool ScAutoFormatDataField::Load( SvStream& rStream, const ScAfVersions& rVersions, sal_uInt16 nVer )
{
- SfxPoolItem* pNew;
- SvxOrientationItem aOrientation( SvxCellOrientation::Standard, 0 );
-
- READ( aFont, SvxFontItem, rVersions.nFontVersion)
- READ( aHeight, SvxFontHeightItem, rVersions.nFontHeightVersion)
- READ( aWeight, SvxWeightItem, rVersions.nWeightVersion)
- READ( aPosture, SvxPostureItem, rVersions.nPostureVersion)
- // --- from 641 on: CJK and CTL font settings
- if( AUTOFORMAT_DATA_ID_641 <= nVer )
- {
- READ( aCJKFont, SvxFontItem, rVersions.nFontVersion)
- READ( aCJKHeight, SvxFontHeightItem, rVersions.nFontHeightVersion)
- READ( aCJKWeight, SvxWeightItem, rVersions.nWeightVersion)
- READ( aCJKPosture, SvxPostureItem, rVersions.nPostureVersion)
- READ( aCTLFont, SvxFontItem, rVersions.nFontVersion)
- READ( aCTLHeight, SvxFontHeightItem, rVersions.nFontHeightVersion)
- READ( aCTLWeight, SvxWeightItem, rVersions.nWeightVersion)
- READ( aCTLPosture, SvxPostureItem, rVersions.nPostureVersion)
- }
- READ( aUnderline, SvxUnderlineItem, rVersions.nUnderlineVersion)
- if ( nVer >= AUTOFORMAT_DATA_ID_300OVRLN )
- {
- READ( aOverline, SvxOverlineItem, rVersions.nOverlineVersion)
- }
- READ( aCrossedOut, SvxCrossedOutItem, rVersions.nCrossedOutVersion)
- READ( aContour, SvxContourItem, rVersions.nContourVersion)
- READ( aShadowed, SvxShadowedItem, rVersions.nShadowedVersion)
- READ( aColor, SvxColorItem, rVersions.nColorVersion)
- READ( aBox, SvxBoxItem, rVersions.nBoxVersion)
-
- // --- from 680/dr14 on: diagonal frame lines
- if( AUTOFORMAT_DATA_ID_680DR14 <= nVer )
- {
- READ( aTLBR, SvxLineItem, rVersions.nLineVersion)
- READ( aBLTR, SvxLineItem, rVersions.nLineVersion)
- }
-
- READ( aBackground, SvxBrushItem, rVersions.nBrushVersion)
-
- pNew = aAdjust.Create( rStream, rVersions.nAdjustVersion );
- SetAdjust( *static_cast<SvxAdjustItem*>(pNew) );
- delete pNew;
+ LoadBlockA( rStream, rVersions, nVer );
if (nVer >= AUTOFORMAT_DATA_ID_31005)
- rStream >> m_swFields;
-
- READ( aHorJustify, SvxHorJustifyItem, rVersions.nHorJustifyVersion)
- READ( aVerJustify, SvxVerJustifyItem, rVersions.nVerJustifyVersion)
- READ( aOrientation, SvxOrientationItem, rVersions.nOrientationVersion)
- READ( aMargin, SvxMarginItem, rVersions.nMarginVersion)
-
- pNew = aLinebreak.Create( rStream, rVersions.nBoolVersion );
- SetLinebreak( *static_cast<SfxBoolItem*>(pNew) );
- delete pNew;
-
- if ( nVer >= AUTOFORMAT_DATA_ID_504 )
{
- pNew = aRotateAngle.Create( rStream, rVersions.nInt32Version );
- SetRotateAngle( *static_cast<SfxInt32Item*>(pNew) );
- delete pNew;
- pNew = aRotateMode.Create( rStream, rVersions.nRotateModeVersion );
- SetRotateMode( *static_cast<SvxRotateModeItem*>(pNew) );
- delete pNew;
+ rStream >> m_swFields;
}
- if( 0 == rVersions.nNumFmtVersion )
+ LoadBlockB( rStream, rVersions, nVer );
+
+ if( 0 == rVersions.nNumFormatVersion )
{
// --- from 680/dr25 on: store strings as UTF-8
rtl_TextEncoding eCharSet = (nVer >= AUTOFORMAT_ID_680DR25) ? RTL_TEXTENCODING_UTF8 : rStream.GetStreamCharSet();
@@ -373,60 +212,22 @@ bool ScAutoFormatDataField::Load( SvStream& rStream, const ScAfVersions& rVersio
// adjust charset in font
rtl_TextEncoding eSysSet = osl_getThreadTextEncoding();
rtl_TextEncoding eSrcSet = rStream.GetStreamCharSet();
- if( eSrcSet != eSysSet && aFont.GetCharSet() == eSrcSet )
- aFont.SetCharSet(eSysSet);
-
- aStacked.SetValue( aOrientation.IsStacked() );
- aRotateAngle.SetValue( aOrientation.GetRotation( aRotateAngle.GetValue() ) );
+ if( eSrcSet != eSysSet && m_aFont->GetCharSet() == eSrcSet )
+ m_aFont->SetCharSet(eSysSet);
return (rStream.GetError() == ERRCODE_NONE);
}
bool ScAutoFormatDataField::Save( SvStream& rStream, sal_uInt16 fileVersion )
{
- SvxOrientationItem aOrientation( aRotateAngle.GetValue(), aStacked.GetValue(), 0 );
-
- aFont.Store ( rStream, aFont.GetVersion( fileVersion ) );
- aHeight.Store ( rStream, aHeight.GetVersion( fileVersion ) );
- aWeight.Store ( rStream, aWeight.GetVersion( fileVersion ) );
- aPosture.Store ( rStream, aPosture.GetVersion( fileVersion ) );
- // --- from 641 on: CJK and CTL font settings
- aCJKFont.Store ( rStream, aCJKFont.GetVersion( fileVersion ) );
- aCJKHeight.Store ( rStream, aCJKHeight.GetVersion( fileVersion ) );
- aCJKWeight.Store ( rStream, aCJKWeight.GetVersion( fileVersion ) );
- aCJKPosture.Store ( rStream, aCJKPosture.GetVersion( fileVersion ) );
- aCTLFont.Store ( rStream, aCTLFont.GetVersion( fileVersion ) );
- aCTLHeight.Store ( rStream, aCTLHeight.GetVersion( fileVersion ) );
- aCTLWeight.Store ( rStream, aCTLWeight.GetVersion( fileVersion ) );
- aCTLPosture.Store ( rStream, aCTLPosture.GetVersion( fileVersion ) );
-
- aUnderline.Store ( rStream, aUnderline.GetVersion( fileVersion ) );
- // --- from DEV300/overline2 on: overline support
- aOverline.Store ( rStream, aOverline.GetVersion( fileVersion ) );
- aCrossedOut.Store ( rStream, aCrossedOut.GetVersion( fileVersion ) );
- aContour.Store ( rStream, aContour.GetVersion( fileVersion ) );
- aShadowed.Store ( rStream, aShadowed.GetVersion( fileVersion ) );
- aColor.Store ( rStream, aColor.GetVersion( fileVersion ) );
- aBox.Store ( rStream, aBox.GetVersion( fileVersion ) );
-
- // --- from 680/dr14 on: diagonal frame lines
- aTLBR.Store ( rStream, aTLBR.GetVersion( fileVersion ) );
- aBLTR.Store ( rStream, aBLTR.GetVersion( fileVersion ) );
-
- aBackground.Store ( rStream, aBackground.GetVersion( fileVersion ) );
-
- aAdjust.Store ( rStream, aAdjust.GetVersion( fileVersion ) );
+ SaveBlockA( rStream, fileVersion );
+
if (fileVersion >= SOFFICE_FILEFORMAT_50)
+ {
WriteAutoFormatSwBlob( rStream, m_swFields );
+ }
- aHorJustify.Store ( rStream, aHorJustify.GetVersion( fileVersion ) );
- aVerJustify.Store ( rStream, aVerJustify.GetVersion( fileVersion ) );
- aOrientation.Store ( rStream, aOrientation.GetVersion( fileVersion ) );
- aMargin.Store ( rStream, aMargin.GetVersion( fileVersion ) );
- aLinebreak.Store ( rStream, aLinebreak.GetVersion( fileVersion ) );
- // rotation from SO5 on
- aRotateAngle.Store ( rStream, aRotateAngle.GetVersion( fileVersion ) );
- aRotateMode.Store ( rStream, aRotateMode.GetVersion( fileVersion ) );
+ SaveBlockB( rStream, fileVersion );
// --- from 680/dr25 on: store strings as UTF-8
aNumFormat.Save( rStream, RTL_TEXTENCODING_UTF8 );
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index de8d9e0d118e..549231097045 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -1138,8 +1138,8 @@ void ScDocShell::Execute( SfxRequest& rReq )
#endif
case SID_OPEN_CALC:
{
- SfxStringItem aApp(SID_DOC_SERVICE, OUString("com.sun.star.sheet.SpreadsheetDocument"));
- SfxStringItem aTarget(SID_TARGETNAME, OUString("_blank"));
+ SfxStringItem aApp(SID_DOC_SERVICE, "com.sun.star.sheet.SpreadsheetDocument");
+ SfxStringItem aTarget(SID_TARGETNAME, "_blank");
GetViewData()->GetDispatcher().ExecuteList(
SID_OPENDOC, SfxCallMode::API|SfxCallMode::SYNCHRON,
{ &aApp, &aTarget });
diff --git a/sc/source/ui/drawfunc/drtxtob.cxx b/sc/source/ui/drawfunc/drtxtob.cxx
index e13883ed3039..f735e56ef082 100644
--- a/sc/source/ui/drawfunc/drtxtob.cxx
+++ b/sc/source/ui/drawfunc/drtxtob.cxx
@@ -204,7 +204,7 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
const SvxFontItem& rItem = pOutView->GetAttribs().Get(EE_CHAR_FONTINFO);
OUString aString;
- SvxFontItem aNewItem( EE_CHAR_FONTINFO );
+ std::shared_ptr<SvxFontItem> aNewItem(std::make_shared<SvxFontItem>(EE_CHAR_FONTINFO));
const SfxItemSet *pArgs = rReq.GetArgs();
const SfxPoolItem* pItem = nullptr;
@@ -221,12 +221,15 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
{
const OUString& aFontName(pFontItem->GetValue());
vcl::Font aFont(aFontName, Size(1,1)); // Size only because of CTOR
- aNewItem = SvxFontItem( aFont.GetFamilyType(), aFont.GetFamilyName(),
- aFont.GetStyleName(), aFont.GetPitch(),
- aFont.GetCharSet(), ATTR_FONT );
+ aNewItem = std::make_shared<SvxFontItem>(
+ aFont.GetFamilyType(), aFont.GetFamilyName(),
+ aFont.GetStyleName(), aFont.GetPitch(),
+ aFont.GetCharSet(), ATTR_FONT);
}
else
- aNewItem = rItem;
+ {
+ aNewItem.reset(static_cast<SvxFontItem*>(rItem.Clone()));
+ }
}
else
ScViewUtil::ExecuteCharMap( rItem, *pViewData->GetViewShell()->GetViewFrame() );
@@ -234,7 +237,7 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
if ( !aString.isEmpty() )
{
SfxItemSet aSet( pOutliner->GetEmptyItemSet() );
- aSet.Put( aNewItem );
+ aSet.Put( *aNewItem );
// If nothing is selected, then SetAttribs of the View selects a word
pOutView->GetOutliner()->QuickSetAttribs( aSet, pOutView->GetSelection() );
pOutView->InsertText(aString);
diff --git a/sc/source/ui/inc/viewfunc.hxx b/sc/source/ui/inc/viewfunc.hxx
index 7719cddf6a5c..963b41f863ec 100644
--- a/sc/source/ui/inc/viewfunc.hxx
+++ b/sc/source/ui/inc/viewfunc.hxx
@@ -71,8 +71,9 @@ public:
~ScViewFunc();
SC_DLLPUBLIC const ScPatternAttr* GetSelectionPattern ();
- void GetSelectionFrame ( SvxBoxItem& rLineOuter,
- SvxBoxInfoItem& rLineInner );
+ void GetSelectionFrame(
+ std::shared_ptr<SvxBoxItem>& rLineOuter,
+ std::shared_ptr<SvxBoxInfoItem>& rLineInner );
SvtScriptType GetSelectionScriptType();
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index b751a8dd893f..26020a86ef4f 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -806,7 +806,7 @@ void ScCellShell::GetState(SfxItemSet &rSet)
// In interpreter may happen via rescheduled Basic
if ( pDoc->IsInInterpreter() )
- rSet.Put( SfxStringItem( nWhich, OUString("...") ) );
+ rSet.Put( SfxStringItem( nWhich, "..." ) );
else
{
FormulaError nErrCode = FormulaError::NONE;
diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx
index b65bd957ab3b..100592811994 100644
--- a/sc/source/ui/view/editsh.cxx
+++ b/sc/source/ui/view/editsh.cxx
@@ -391,7 +391,7 @@ void ScEditShell::Execute( SfxRequest& rReq )
pTableView->GetAttribs().Get(nFontWhich));
OUString aString;
- SvxFontItem aNewItem( EE_CHAR_FONTINFO );
+ std::shared_ptr<SvxFontItem> aNewItem(std::make_shared<SvxFontItem>(EE_CHAR_FONTINFO));
const SfxItemSet *pArgs = rReq.GetArgs();
const SfxPoolItem* pItem = nullptr;
@@ -408,12 +408,15 @@ void ScEditShell::Execute( SfxRequest& rReq )
{
const OUString& aFontName(pFontItem->GetValue());
vcl::Font aFont(aFontName, Size(1,1)); // Size just because CTOR
- aNewItem = SvxFontItem( aFont.GetFamilyType(), aFont.GetFamilyName(),
- aFont.GetStyleName(), aFont.GetPitch(),
- aFont.GetCharSet(), ATTR_FONT );
+ aNewItem = std::make_shared<SvxFontItem>(
+ aFont.GetFamilyType(), aFont.GetFamilyName(),
+ aFont.GetStyleName(), aFont.GetPitch(),
+ aFont.GetCharSet(), ATTR_FONT);
}
else
- aNewItem = rItem;
+ {
+ aNewItem.reset(static_cast<SvxFontItem*>(rItem.Clone()));
+ }
}
else
{
@@ -436,7 +439,7 @@ void ScEditShell::Execute( SfxRequest& rReq )
SfxItemSet aSet( pTableView->GetEmptyItemSet() );
SvxScriptSetItem aSetItem( SID_ATTR_CHAR_FONT, GetPool() );
- aSetItem.PutItemForScriptType( nSetScript, aNewItem );
+ aSetItem.PutItemForScriptType( nSetScript, *aNewItem );
aSet.Put( aSetItem.GetItemSet(), false );
// SetAttribs on the View selects a word, when nothing is selected
@@ -446,7 +449,7 @@ void ScEditShell::Execute( SfxRequest& rReq )
pTopView->InsertText(aString);
SfxStringItem aStringItem( SID_CHARMAP, aString );
- SfxStringItem aFontItem( SID_ATTR_SPECIALCHAR, aNewItem.GetFamilyName() );
+ SfxStringItem aFontItem( SID_ATTR_SPECIALCHAR, aNewItem->GetFamilyName() );
rReq.AppendItem( aFontItem );
rReq.AppendItem( aStringItem );
rReq.Done();
diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index f7315debd5de..0f085f50e913 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -2053,121 +2053,121 @@ void ScFormatShell::GetAttrState( SfxItemSet& rSet )
editeng::SvxBorderLine aLine(nullptr,0,SvxBorderLineStyle::SOLID);
bool bCol = false;
bool bColDisable = false, bStyleDisable = false;
- SvxBoxItem aBoxItem(ATTR_BORDER);
- SvxBoxInfoItem aInfoItem(ATTR_BORDER_INNER);
+ std::shared_ptr<SvxBoxItem> aBoxItem(std::make_shared<SvxBoxItem>(ATTR_BORDER));
+ std::shared_ptr<SvxBoxInfoItem> aInfoItem(std::make_shared<SvxBoxInfoItem>(ATTR_BORDER_INNER));
pTabViewShell->GetSelectionFrame(aBoxItem, aInfoItem);
- if( aBoxItem.GetTop() )
+ if( aBoxItem->GetTop() )
{
bCol = true;
- aCol = aBoxItem.GetTop()->GetColor() ;
+ aCol = aBoxItem->GetTop()->GetColor() ;
aLine.SetColor(aCol);
- aLine.SetWidth( aBoxItem.GetTop()->GetWidth());
- aLine.SetBorderLineStyle( aBoxItem.GetTop()->GetBorderLineStyle());
+ aLine.SetWidth( aBoxItem->GetTop()->GetWidth());
+ aLine.SetBorderLineStyle( aBoxItem->GetTop()->GetBorderLineStyle());
}
- if( aBoxItem.GetBottom() )
+ if( aBoxItem->GetBottom() )
{
if(!bCol)
{
bCol = true;
- aCol = aBoxItem.GetBottom()->GetColor() ;
+ aCol = aBoxItem->GetBottom()->GetColor() ;
aLine.SetColor(aCol);
- aLine.SetWidth( aBoxItem.GetBottom()->GetWidth());
- aLine.SetBorderLineStyle( aBoxItem.GetBottom()->GetBorderLineStyle());
+ aLine.SetWidth( aBoxItem->GetBottom()->GetWidth());
+ aLine.SetBorderLineStyle( aBoxItem->GetBottom()->GetBorderLineStyle());
}
else
{
- if(aCol != aBoxItem.GetBottom()->GetColor() )
+ if(aCol != aBoxItem->GetBottom()->GetColor() )
bColDisable = true;
- if( aLine != *aBoxItem.GetBottom() )
+ if( aLine != *aBoxItem->GetBottom() )
bStyleDisable = true;
}
}
- if( aBoxItem.GetLeft() )
+ if( aBoxItem->GetLeft() )
{
if(!bCol)
{
bCol = true;
- aCol = aBoxItem.GetLeft()->GetColor() ;
+ aCol = aBoxItem->GetLeft()->GetColor() ;
aLine.SetColor(aCol);
- aLine.SetWidth( aBoxItem.GetLeft()->GetWidth());
- aLine.SetBorderLineStyle( aBoxItem.GetLeft()->GetBorderLineStyle());
+ aLine.SetWidth( aBoxItem->GetLeft()->GetWidth());
+ aLine.SetBorderLineStyle( aBoxItem->GetLeft()->GetBorderLineStyle());
}
else
{
- if(aCol != aBoxItem.GetLeft()->GetColor() )
+ if(aCol != aBoxItem->GetLeft()->GetColor() )
bColDisable = true;
- if( aLine != *aBoxItem.GetLeft() )
+ if( aLine != *aBoxItem->GetLeft() )
bStyleDisable = true;
}
}
- if( aBoxItem.GetRight() )
+ if( aBoxItem->GetRight() )
{
if(!bCol)
{
bCol = true;
- aCol = aBoxItem.GetRight()->GetColor() ;
+ aCol = aBoxItem->GetRight()->GetColor() ;
aLine.SetColor(aCol);
- aLine.SetWidth( aBoxItem.GetRight()->GetWidth());
- aLine.SetBorderLineStyle( aBoxItem.GetRight()->GetBorderLineStyle());
+ aLine.SetWidth( aBoxItem->GetRight()->GetWidth());
+ aLine.SetBorderLineStyle( aBoxItem->GetRight()->GetBorderLineStyle());
}
else
{
- if(aCol != aBoxItem.GetRight()->GetColor() )
+ if(aCol != aBoxItem->GetRight()->GetColor() )
bColDisable = true;
- if( aLine != *aBoxItem.GetRight() )
+ if( aLine != *aBoxItem->GetRight() )
bStyleDisable = true;
}
}
- if( aInfoItem.GetVert())
+ if( aInfoItem->GetVert())
{
if(!bCol)
{
bCol = true;
- aCol = aInfoItem.GetVert()->GetColor() ;
+ aCol = aInfoItem->GetVert()->GetColor() ;
aLine.SetColor(aCol);
- aLine.SetWidth( aInfoItem.GetVert()->GetWidth());
- aLine.SetBorderLineStyle( aInfoItem.GetVert()->GetBorderLineStyle());
+ aLine.SetWidth( aInfoItem->GetVert()->GetWidth());
+ aLine.SetBorderLineStyle( aInfoItem->GetVert()->GetBorderLineStyle());
}
else
{
- if(aCol != aInfoItem.GetVert()->GetColor() )
+ if(aCol != aInfoItem->GetVert()->GetColor() )
bColDisable = true;
- if( aLine != *aInfoItem.GetVert() )
+ if( aLine != *aInfoItem->GetVert() )
bStyleDisable = true;
}
}
- if( aInfoItem.GetHori())
+ if( aInfoItem->GetHori())
{
if(!bCol)
{
bCol = true;
- aCol = aInfoItem.GetHori()->GetColor() ;
+ aCol = aInfoItem->GetHori()->GetColor() ;
aLine.SetColor(aCol);
- aLine.SetWidth( aInfoItem.GetHori()->GetWidth());
- aLine.SetBorderLineStyle( aInfoItem.GetHori()->GetBorderLineStyle());
+ aLine.SetWidth( aInfoItem->GetHori()->GetWidth());
+ aLine.SetBorderLineStyle( aInfoItem->GetHori()->GetBorderLineStyle());
}
else
{
- if(aCol != aInfoItem.GetHori()->GetColor() )
+ if(aCol != aInfoItem->GetHori()->GetColor() )
bColDisable = true;
- if( aLine != *aInfoItem.GetHori() )
+ if( aLine != *aInfoItem->GetHori() )
bStyleDisable = true;
}
}
- if( !aInfoItem.IsValid( SvxBoxInfoItemValidFlags::VERT )
- || !aInfoItem.IsValid( SvxBoxInfoItemValidFlags::HORI )
- || !aInfoItem.IsValid( SvxBoxInfoItemValidFlags::LEFT )
- || !aInfoItem.IsValid( SvxBoxInfoItemValidFlags::RIGHT )
- || !aInfoItem.IsValid( SvxBoxInfoItemValidFlags::TOP )
- || !aInfoItem.IsValid( SvxBoxInfoItemValidFlags::BOTTOM ) )
+ if( !aInfoItem->IsValid( SvxBoxInfoItemValidFlags::VERT )
+ || !aInfoItem->IsValid( SvxBoxInfoItemValidFlags::HORI )
+ || !aInfoItem->IsValid( SvxBoxInfoItemValidFlags::LEFT )
+ || !aInfoItem->IsValid( SvxBoxInfoItemValidFlags::RIGHT )
+ || !aInfoItem->IsValid( SvxBoxInfoItemValidFlags::TOP )
+ || !aInfoItem->IsValid( SvxBoxInfoItemValidFlags::BOTTOM ) )
{
bColDisable = true;
bStyleDisable = true;
@@ -2414,15 +2414,15 @@ void ScFormatShell::GetTextAttrState( SfxItemSet& rSet )
void ScFormatShell::GetBorderState( SfxItemSet& rSet )
{
ScTabViewShell* pTabViewShell = GetViewData()->GetViewShell();
- SvxBoxItem aBoxItem( ATTR_BORDER );
- SvxBoxInfoItem aInfoItem( ATTR_BORDER_INNER );
+ std::shared_ptr<SvxBoxItem> aBoxItem(std::make_shared<SvxBoxItem>(ATTR_BORDER));
+ std::shared_ptr<SvxBoxInfoItem> aInfoItem(std::make_shared<SvxBoxInfoItem>(ATTR_BORDER_INNER));
pTabViewShell->GetSelectionFrame( aBoxItem, aInfoItem );
if ( rSet.GetItemState( ATTR_BORDER ) != SfxItemState::UNKNOWN )
- rSet.Put( aBoxItem );
+ rSet.Put( *aBoxItem );
if ( rSet.GetItemState( ATTR_BORDER_INNER ) != SfxItemState::UNKNOWN )
- rSet.Put( aInfoItem );
+ rSet.Put( *aInfoItem );
}
void ScFormatShell::GetAlignState( SfxItemSet& rSet )
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index f0b0e9fb7149..3aaaaccd4f15 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -2413,21 +2413,15 @@ void ScOutputData::DrawEditParam::setPatternToEngine(bool bUseStyleColor)
const SfxPoolItem* pItem;
if ( mpPreviewFontSet->GetItemState( ATTR_FONT, true, &pItem ) == SfxItemState::SET )
{
- SvxFontItem aFontItem(EE_CHAR_FONTINFO);
- aFontItem = static_cast<const SvxFontItem&>(*pItem);
- pSet->Put( aFontItem );
+ pSet->Put(*pItem);
}
if ( mpPreviewFontSet->GetItemState( ATTR_CJK_FONT, true, &pItem ) == SfxItemState::SET )
{
- SvxFontItem aCjkFontItem(EE_CHAR_FONTINFO_CJK);
- aCjkFontItem = static_cast<const SvxFontItem&>(*pItem);
- pSet->Put( aCjkFontItem );
+ pSet->Put(*pItem);
}
if ( mpPreviewFontSet->GetItemState( ATTR_CTL_FONT, true, &pItem ) == SfxItemState::SET )
{
- SvxFontItem aCtlFontItem(EE_CHAR_FONTINFO_CTL);
- aCtlFontItem = static_cast<const SvxFontItem&>(*pItem);
- pSet->Put( aCtlFontItem );
+ pSet->Put(*pItem);
}
}
mpEngine->SetDefaults( pSet );
diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx
index 0ab20a898e52..fbd9ca9564fd 100644
--- a/sc/source/ui/view/tabvwsha.cxx
+++ b/sc/source/ui/view/tabvwsha.cxx
@@ -475,8 +475,8 @@ void ScTabViewShell::ExecuteCellFormatDlg(SfxRequest& rReq, const OString &rName
{
ScDocument* pDoc = GetViewData().GetDocument();
- SvxBoxItem aLineOuter( ATTR_BORDER );
- SvxBoxInfoItem aLineInner( ATTR_BORDER_INNER );
+ std::shared_ptr<SvxBoxItem> aLineOuter(std::make_shared<SvxBoxItem>(ATTR_BORDER));
+ std::shared_ptr<SvxBoxInfoItem> aLineInner(std::make_shared<SvxBoxInfoItem>(ATTR_BORDER_INNER));
const ScPatternAttr* pOldAttrs = GetSelectionPattern();
@@ -506,26 +506,29 @@ void ScTabViewShell::ExecuteCellFormatDlg(SfxRequest& rReq, const OString &rName
// Get border items and put them in the set:
GetSelectionFrame( aLineOuter, aLineInner );
+
//Fix border incorrect for RTL fdo#62399
if( pDoc->IsLayoutRTL( GetViewData().GetTabNo() ) )
{
- SvxBoxItem aNewFrame( aLineOuter );
- SvxBoxInfoItem aTempInfo( aLineInner );
+ std::shared_ptr<SvxBoxItem> aNewFrame(static_cast<SvxBoxItem*>(aLineOuter->Clone()));
+ std::shared_ptr<SvxBoxInfoItem> aTempInfo(static_cast<SvxBoxInfoItem*>(aLineInner->Clone()));
- if ( aLineInner.IsValid(SvxBoxInfoItemValidFlags::LEFT) )
- aNewFrame.SetLine( aLineOuter.GetLeft(), SvxBoxItemLine::RIGHT );
- if ( aLineInner.IsValid(SvxBoxInfoItemValidFlags::RIGHT) )
- aNewFrame.SetLine( aLineOuter.GetRight(), SvxBoxItemLine::LEFT );
+ if ( aLineInner->IsValid(SvxBoxInfoItemValidFlags::LEFT) )
+ aNewFrame->SetLine( aLineOuter->GetLeft(), SvxBoxItemLine::RIGHT );
+ if ( aLineInner->IsValid(SvxBoxInfoItemValidFlags::RIGHT) )
+ aNewFrame->SetLine( aLineOuter->GetRight(), SvxBoxItemLine::LEFT );
- aLineInner.SetValid( SvxBoxInfoItemValidFlags::LEFT, aTempInfo.IsValid(SvxBoxInfoItemValidFlags::RIGHT));
- aLineInner.SetValid( SvxBoxInfoItemValidFlags::RIGHT, aTempInfo.IsValid(SvxBoxInfoItemValidFlags::LEFT));
+ aLineInner->SetValid( SvxBoxInfoItemValidFlags::LEFT, aTempInfo->IsValid(SvxBoxInfoItemValidFlags::RIGHT));
+ aLineInner->SetValid( SvxBoxInfoItemValidFlags::RIGHT, aTempInfo->IsValid(SvxBoxInfoItemValidFlags::LEFT));
- pOldSet->Put( aNewFrame );
+ pOldSet->Put( *aNewFrame );
}
else
- pOldSet->Put( aLineOuter );
+ {
+ pOldSet->Put( *aLineOuter );
+ }
- pOldSet->Put( aLineInner );
+ pOldSet->Put( *aLineInner );
// Generate NumberFormat Value from Value and Language and box it.
pOldSet->Put( SfxUInt32Item( ATTR_VALUE_FORMAT,
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index 96b57048f6b2..bc8a0551417f 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -2683,7 +2683,7 @@ void ScViewFunc::MoveTable(
// execute without SfxCallMode::RECORD, because already contained in move command
SfxStringItem aItem( SID_FILE_NAME, "private:factory/" STRING_SCAPP );
- SfxStringItem aTarget( SID_TARGETNAME, OUString("_blank") );
+ SfxStringItem aTarget( SID_TARGETNAME, "_blank" );
const SfxPoolItem* pRetItem = GetViewData().GetDispatcher().ExecuteList(
SID_OPENDOC, SfxCallMode::API|SfxCallMode::SYNCHRON,
diff --git a/sc/source/ui/view/viewfun4.cxx b/sc/source/ui/view/viewfun4.cxx
index 938571650805..7c34c1b549af 100644
--- a/sc/source/ui/view/viewfun4.cxx
+++ b/sc/source/ui/view/viewfun4.cxx
@@ -619,7 +619,7 @@ bool ScViewFunc::PasteFile( const Point& rPos, const OUString& rFile, bool bLink
SfxStringItem aFileNameItem( SID_FILE_NAME, aStrURL );
SfxStringItem aFilterItem( SID_FILTER_NAME, pFlt->GetName() );
// #i69524# add target, as in SfxApplication when the Open dialog is used
- SfxStringItem aTargetItem( SID_TARGETNAME, OUString("_default") );
+ SfxStringItem aTargetItem( SID_TARGETNAME, "_default" );
// Open Asynchronously, because it can also happen from D&D
// and that is not so good for the MAC...
diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx
index 9fa34128fedc..894259de285b 100644
--- a/sc/source/ui/view/viewfunc.cxx
+++ b/sc/source/ui/view/viewfunc.cxx
@@ -851,14 +851,17 @@ const ScPatternAttr* ScViewFunc::GetSelectionPattern()
}
}
-void ScViewFunc::GetSelectionFrame( SvxBoxItem& rLineOuter,
- SvxBoxInfoItem& rLineInner )
+void ScViewFunc::GetSelectionFrame(
+ std::shared_ptr<SvxBoxItem>& rLineOuter,
+ std::shared_ptr<SvxBoxInfoItem>& rLineInner )
{
ScDocument* pDoc = GetViewData().GetDocument();
const ScMarkData& rMark = GetViewData().GetMarkData();
if ( rMark.IsMarked() || rMark.IsMultiMarked() )
- pDoc->GetSelectionFrame( rMark, rLineOuter, rLineInner );
+ {
+ pDoc->GetSelectionFrame( rMark, *rLineOuter, *rLineInner );
+ }
else
{
const ScPatternAttr* pAttrs =
@@ -866,11 +869,12 @@ void ScViewFunc::GetSelectionFrame( SvxBoxItem& rLineOuter,
GetViewData().GetCurY(),
GetViewData().GetTabNo() );
- rLineOuter = pAttrs->GetItem( ATTR_BORDER );
- rLineInner = pAttrs->GetItem( ATTR_BORDER_INNER );
- rLineInner.SetTable(false);
- rLineInner.SetDist(true);
- rLineInner.SetMinDist(false);
+ rLineOuter.reset(static_cast<SvxBoxItem*>(pAttrs->GetItem(ATTR_BORDER).Clone()));
+ rLineInner.reset(static_cast<SvxBoxInfoItem*>(pAttrs->GetItem(ATTR_BORDER_INNER).Clone()));
+
+ rLineInner->SetTable(false);
+ rLineInner->SetDist(true);
+ rLineInner->SetMinDist(false);
}
}
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 48b061e7caa5..5d690c8a1491 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -1201,7 +1201,7 @@ void SdImportTest::testPDFImport()
void SdImportTest::testPDFImportSkipImages()
{
SfxAllItemSet *pParams = new SfxAllItemSet( SfxGetpApp()->GetPool() );
- pParams->Put( SfxStringItem ( SID_FILE_FILTEROPTIONS, OUString("SkipImages") ) );
+ pParams->Put( SfxStringItem ( SID_FILE_FILTEROPTIONS, "SkipImages" ) );
sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pdf/txtpic.pdf"), PDF, pParams);
SdDrawDocument *pDoc = xDocShRef->GetDoc();
diff --git a/sd/source/ui/table/TableDesignPane.cxx b/sd/source/ui/table/TableDesignPane.cxx
index 2f339b10aff7..d764c4299900 100644
--- a/sd/source/ui/table/TableDesignPane.cxx
+++ b/sd/source/ui/table/TableDesignPane.cxx
@@ -429,13 +429,13 @@ struct CellInfo
{
Color maCellColor;
Color maTextColor;
- SvxBoxItem maBorder;
+ std::shared_ptr<SvxBoxItem> maBorder;
explicit CellInfo( const Reference< XStyle >& xStyle );
};
CellInfo::CellInfo( const Reference< XStyle >& xStyle )
-: maBorder(SDRATTR_TABLE_BORDER)
+: maBorder(std::make_shared<SvxBoxItem>(SDRATTR_TABLE_BORDER))
{
SfxStyleSheet* pStyleSheet = SfxUnoStyleSheet::getUnoStyleSheet( xStyle );
if( !pStyleSheet )
@@ -457,7 +457,7 @@ CellInfo::CellInfo( const Reference< XStyle >& xStyle )
// get border
const SvxBoxItem* pBoxItem = rSet.GetItem( SDRATTR_TABLE_BORDER );
if( pBoxItem )
- maBorder = *pBoxItem;
+ maBorder.reset(static_cast<SvxBoxItem*>(pBoxItem->Clone()));
}
typedef std::vector< std::shared_ptr< CellInfo > > CellInfoVector;
@@ -659,7 +659,7 @@ static const BitmapEx CreateDesignPreview( const Reference< XIndexAccess >& xTab
// draw top border
for( SvxBoxItemLine nLine : o3tl::enumrange<SvxBoxItemLine>() )
{
- const ::editeng::SvxBorderLine* pBorderLine = xCellInfo->maBorder.GetLine(nLine);
+ const ::editeng::SvxBorderLine* pBorderLine = xCellInfo->maBorder->GetLine(nLine);
if( !pBorderLine || ((pBorderLine->GetOutWidth() == 0) && (pBorderLine->GetInWidth()==0)) )
continue;
@@ -671,7 +671,7 @@ static const BitmapEx CreateDesignPreview( const Reference< XIndexAccess >& xTab
std::shared_ptr< CellInfo > xBorderInfo(aMatrix[(nBorderCol * nPreviewColumns) + nBorderRow]);
if( xBorderInfo.get() )
{
- const ::editeng::SvxBorderLine* pBorderLine2 = xBorderInfo->maBorder.GetLine(static_cast<SvxBoxItemLine>(static_cast<int>(nLine)^1));
+ const ::editeng::SvxBorderLine* pBorderLine2 = xBorderInfo->maBorder->GetLine(static_cast<SvxBoxItemLine>(static_cast<int>(nLine)^1));
if( pBorderLine2 && pBorderLine2->HasPriority(*pBorderLine) )
continue; // other border line wins
}
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 74af18c0e071..c8e3bfd77124 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -224,9 +224,9 @@ namespace
try // fdo#48775
{
- SfxStringItem aURL(SID_FILE_NAME, OUString(".component:Bibliography/View1"));
- SfxStringItem aRef(SID_REFERER, OUString("private:user"));
- SfxStringItem aTarget(SID_TARGETNAME, OUString("_blank"));
+ SfxStringItem aURL(SID_FILE_NAME, ".component:Bibliography/View1");
+ SfxStringItem aRef(SID_REFERER, "private:user");
+ SfxStringItem aTarget(SID_TARGETNAME, "_blank");
SfxViewFrame::Current()->GetDispatcher()->ExecuteList(SID_OPENDOC,
SfxCallMode::ASYNCHRON, { &aURL, &aRef, &aTarget });
}
@@ -402,7 +402,7 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
return;
}
- SfxStringItem aNameItem( SID_FILE_NAME, OUString("vnd.sun.star.cmd:logout") );
+ SfxStringItem aNameItem( SID_FILE_NAME, "vnd.sun.star.cmd:logout" );
SfxStringItem aReferer( SID_REFERER, "private/user" );
pImpl->pAppDispat->ExecuteList(SID_OPENDOC,
SfxCallMode::SLOT, { &aNameItem, &aReferer });
diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx
index 965417572ba5..9a2c3fb657f9 100644
--- a/sfx2/source/appl/linkmgr2.cxx
+++ b/sfx2/source/appl/linkmgr2.cxx
@@ -661,7 +661,7 @@ bool SvxInternalLink::Connect( sfx2::SvBaseLink* pLink )
SfxStringItem aName( SID_FILE_NAME, sTopic );
SfxBoolItem aMinimized(SID_MINIMIZED, true);
SfxBoolItem aHidden(SID_HIDDEN, true);
- SfxStringItem aTarget( SID_TARGETNAME, OUString("_blank") );
+ SfxStringItem aTarget( SID_TARGETNAME, "_blank" );
SfxStringItem aReferer( SID_REFERER, sReferer );
SfxUInt16Item aUpdate( SID_UPDATEDOCMODE, nUpdateMode );
SfxBoolItem aReadOnly(SID_DOC_READONLY, false);
diff --git a/sfx2/source/config/evntconf.cxx b/sfx2/source/config/evntconf.cxx
index fbcbe656dec1..1365ead79d69 100644
--- a/sfx2/source/config/evntconf.cxx
+++ b/sfx2/source/config/evntconf.cxx
@@ -95,12 +95,6 @@ SfxPoolItem* SfxEventNamesItem::Clone( SfxItemPool *) const
return new SfxEventNamesItem(*this);
}
-sal_uInt16 SfxEventNamesItem::GetVersion( sal_uInt16 ) const
-{
- OSL_FAIL("not streamable!");
- return 0;
-}
-
void SfxEventNamesItem::AddEvent( const OUString& rName, const OUString& rUIName, SvMacroItemId nID )
{
aEventsList.push_back( SfxEventName( nID, rName, !rUIName.isEmpty() ? rUIName : rName ) );
diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx
index 8c918cae923f..65d0e1e54d62 100644
--- a/sfx2/source/dialog/tabdlg.cxx
+++ b/sfx2/source/dialog/tabdlg.cxx
@@ -103,12 +103,6 @@ SfxPoolItem* SfxTabDialogItem::Clone(SfxItemPool* pToPool) const
return new SfxTabDialogItem( *this, pToPool );
}
-SfxPoolItem* SfxTabDialogItem::Create(SvStream& /*rStream*/, sal_uInt16 /*nVersion*/) const
-{
- OSL_FAIL( "Use it only in UI!" );
- return nullptr;
-}
-
typedef std::vector<Data_Impl*> SfxTabDlgData_Impl;
struct TabDlg_Impl
diff --git a/solenv/clang-format/blacklist b/solenv/clang-format/blacklist
index f7bafad27c4f..50f21b920c39 100644
--- a/solenv/clang-format/blacklist
+++ b/solenv/clang-format/blacklist
@@ -4067,6 +4067,7 @@ editeng/source/items/frmitems.cxx
editeng/source/items/itemtype.cxx
editeng/source/items/justifyitem.cxx
editeng/source/items/numitem.cxx
+editeng/source/items/legacyitem.cxx
editeng/source/items/optitems.cxx
editeng/source/items/paperinf.cxx
editeng/source/items/paraitem.cxx
@@ -6261,6 +6262,7 @@ include/editeng/justifyitem.hxx
include/editeng/keepitem.hxx
include/editeng/kernitem.hxx
include/editeng/langitem.hxx
+include/editeng/legacyitem.hxx
include/editeng/lineitem.hxx
include/editeng/lrspitem.hxx
include/editeng/lspcitem.hxx
@@ -6877,6 +6879,7 @@ include/svl/itemprop.hxx
include/svl/itemset.hxx
include/svl/languageoptions.hxx
include/svl/lckbitem.hxx
+include/svl/legacyitem.hxx
include/svl/listener.hxx
include/svl/lngmisc.hxx
include/svl/lockfilecommon.hxx
@@ -7038,6 +7041,7 @@ include/svx/AccessibleShapeTreeInfo.hxx
include/svx/AccessibleTextHelper.hxx
include/svx/ActionDescriptionProvider.hxx
include/svx/AffineMatrixItem.hxx
+include/svx/autoformathelper.hxx
include/svx/ChildrenManager.hxx
include/svx/ClassificationDialog.hxx
include/svx/ClassificationEditView.hxx
@@ -7168,6 +7172,7 @@ include/svx/langbox.hxx
include/svx/lathe3d.hxx
include/svx/layctrl.hxx
include/svx/lboxctrl.hxx
+include/svx/legacyitem.hxx
include/svx/linectrl.hxx
include/svx/linkwarn.hxx
include/svx/measctrl.hxx
@@ -13621,6 +13626,7 @@ svl/source/items/itemiter.cxx
svl/source/items/itempool.cxx
svl/source/items/itemprop.cxx
svl/source/items/itemset.cxx
+svl/source/items/legacyitem.cxx
svl/source/items/lckbitem.cxx
svl/source/items/macitem.cxx
svl/source/items/poolcach.cxx
@@ -14234,6 +14240,7 @@ svx/source/inc/xmlxtexp.hxx
svx/source/inc/xmlxtimp.hxx
svx/source/items/SmartTagItem.cxx
svx/source/items/algitem.cxx
+svx/source/items/autoformathelper.cxx
svx/source/items/chrtitem.cxx
svx/source/items/clipfmtitem.cxx
svx/source/items/customshapeitem.cxx
@@ -14242,6 +14249,7 @@ svx/source/items/e3ditem.cxx
svx/source/items/galleryitem.cxx
svx/source/items/grfitem.cxx
svx/source/items/hlnkitem.cxx
+svx/source/items/legacyitem.cxx
svx/source/items/numfmtsh.cxx
svx/source/items/numinf.cxx
svx/source/items/ofaitem.cxx
@@ -14656,6 +14664,7 @@ sw/inc/IDocumentUndoRedo.hxx
sw/inc/IGrammarContact.hxx
sw/inc/IMark.hxx
sw/inc/IShellCursorSupplier.hxx
+sw/inc/legacyitem.hxx
sw/inc/PageColumnPopup.hxx
sw/inc/PageMarginPopup.hxx
sw/inc/PageOrientationPopup.hxx
@@ -15352,6 +15361,7 @@ sw/source/core/layout/layact.cxx
sw/source/core/layout/laycache.cxx
sw/source/core/layout/layhelp.hxx
sw/source/core/layout/layouter.cxx
+sw/source/core/layout/legacyitem.cxx
sw/source/core/layout/movedfwdfrmsbyobjpos.cxx
sw/source/core/layout/newfrm.cxx
sw/source/core/layout/objectformatter.cxx
diff --git a/svl/Library_svl.mk b/svl/Library_svl.mk
index 4dad7be2a929..28a043bdb310 100644
--- a/svl/Library_svl.mk
+++ b/svl/Library_svl.mk
@@ -144,6 +144,7 @@ $(eval $(call gb_Library_add_exception_objects,svl,\
svl/source/items/IndexedStyleSheets \
svl/source/items/itemset \
svl/source/items/lckbitem \
+ svl/source/items/legacyitem \
svl/source/items/macitem \
svl/source/items/poolcach \
svl/source/items/poolio \
diff --git a/svl/source/items/aeitem.cxx b/svl/source/items/aeitem.cxx
index afebf9d72a9b..37962147e70c 100644
--- a/svl/source/items/aeitem.cxx
+++ b/svl/source/items/aeitem.cxx
@@ -39,12 +39,6 @@ SfxAllEnumItem::SfxAllEnumItem(sal_uInt16 which, sal_uInt16 nVal):
InsertValue( nVal );
}
-SfxAllEnumItem::SfxAllEnumItem( sal_uInt16 which, SvStream &rStream ):
- SfxAllEnumItem_Base(which, rStream)
-{
- InsertValue( GetValue() );
-}
-
SfxAllEnumItem::SfxAllEnumItem(sal_uInt16 which):
SfxAllEnumItem_Base(which, 0)
{
@@ -83,11 +77,6 @@ SfxPoolItem* SfxAllEnumItem::Clone( SfxItemPool * ) const
return new SfxAllEnumItem(*this);
}
-SfxPoolItem* SfxAllEnumItem::Create( SvStream & rStream, sal_uInt16 ) const
-{
- return new SfxAllEnumItem( Which(), rStream );
-}
-
/**
* In contrast to @see GetPosByValue(sal_uInt16) const
* this internal method returns the position the value would be for non-present values.
diff --git a/svl/source/items/cenumitm.cxx b/svl/source/items/cenumitm.cxx
index d69e072afb93..3889d72a924c 100644
--- a/svl/source/items/cenumitm.cxx
+++ b/svl/source/items/cenumitm.cxx
@@ -143,19 +143,6 @@ bool SfxBoolItem::PutValue(const css::uno::Any& rVal, sal_uInt8)
}
// virtual
-SfxPoolItem * SfxBoolItem::Create(SvStream & rStream, sal_uInt16) const
-{
- return new SfxBoolItem(Which(), rStream);
-}
-
-// virtual
-SvStream & SfxBoolItem::Store(SvStream & rStream, sal_uInt16) const
-{
- rStream.WriteBool( m_bValue ); // not bool for serialization!
- return rStream;
-}
-
-// virtual
SfxPoolItem * SfxBoolItem::Clone(SfxItemPool *) const
{
return new SfxBoolItem(*this);
diff --git a/svl/source/items/cintitem.cxx b/svl/source/items/cintitem.cxx
index 4fc6c754c8ef..4545a8ae2cc5 100644
--- a/svl/source/items/cintitem.cxx
+++ b/svl/source/items/cintitem.cxx
@@ -62,35 +62,12 @@ bool CntByteItem::PutValue(const css::uno::Any& rVal, sal_uInt8)
}
// virtual
-SfxPoolItem * CntByteItem::Create(SvStream & rStream, sal_uInt16) const
-{
- short nTheValue = 0;
- rStream.ReadInt16( nTheValue );
- return new CntByteItem(Which(), sal_uInt8(nTheValue));
-}
-
-// virtual
-SvStream & CntByteItem::Store(SvStream & rStream, sal_uInt16) const
-{
- rStream.WriteInt16( short(m_nValue) );
- return rStream;
-}
-
-// virtual
SfxPoolItem * CntByteItem::Clone(SfxItemPool *) const
{
return new CntByteItem(*this);
}
-CntUInt16Item::CntUInt16Item(sal_uInt16 which, SvStream & rStream) :
- SfxPoolItem(which)
-{
- sal_uInt16 nTheValue = 0;
- rStream.ReadUInt16( nTheValue );
- m_nValue = nTheValue;
-}
-
// virtual
bool CntUInt16Item::operator ==(const SfxPoolItem & rItem) const
{
@@ -133,32 +110,12 @@ bool CntUInt16Item::PutValue(const css::uno::Any& rVal, sal_uInt8)
}
// virtual
-SfxPoolItem * CntUInt16Item::Create(SvStream & rStream, sal_uInt16) const
-{
- return new CntUInt16Item(Which(), rStream);
-}
-
-// virtual
-SvStream & CntUInt16Item::Store(SvStream &rStream, sal_uInt16) const
-{
- rStream.WriteUInt16( m_nValue );
- return rStream;
-}
-
-// virtual
SfxPoolItem * CntUInt16Item::Clone(SfxItemPool *) const
{
return new CntUInt16Item(*this);
}
-CntInt32Item::CntInt32Item(sal_uInt16 which, SvStream & rStream)
- : SfxPoolItem(which)
- , m_nValue(0)
-{
- rStream.ReadInt32( m_nValue );
-}
-
// virtual
bool CntInt32Item::operator ==(const SfxPoolItem & rItem) const
{
@@ -199,33 +156,12 @@ bool CntInt32Item::PutValue(const css::uno::Any& rVal, sal_uInt8)
}
// virtual
-SfxPoolItem * CntInt32Item::Create(SvStream & rStream, sal_uInt16) const
-{
- return new CntInt32Item(Which(), rStream);
-}
-
-// virtual
-SvStream & CntInt32Item::Store(SvStream &rStream, sal_uInt16) const
-{
- rStream.WriteInt32( m_nValue );
- return rStream;
-}
-
-// virtual
SfxPoolItem * CntInt32Item::Clone(SfxItemPool *) const
{
return new CntInt32Item(*this);
}
-CntUInt32Item::CntUInt32Item(sal_uInt16 which, SvStream & rStream) :
- SfxPoolItem(which)
-{
- sal_uInt32 nTheValue = 0;
- rStream.ReadUInt32( nTheValue );
- m_nValue = nTheValue;
-}
-
// virtual
bool CntUInt32Item::operator ==(const SfxPoolItem & rItem) const
{
@@ -269,19 +205,6 @@ bool CntUInt32Item::PutValue(const css::uno::Any& rVal, sal_uInt8)
}
// virtual
-SfxPoolItem * CntUInt32Item::Create(SvStream & rStream, sal_uInt16) const
-{
- return new CntUInt32Item(Which(), rStream);
-}
-
-// virtual
-SvStream & CntUInt32Item::Store(SvStream &rStream, sal_uInt16) const
-{
- rStream.WriteUInt32( m_nValue );
- return rStream;
-}
-
-// virtual
SfxPoolItem * CntUInt32Item::Clone(SfxItemPool *) const
{
return new CntUInt32Item(*this);
diff --git a/svl/source/items/flagitem.cxx b/svl/source/items/flagitem.cxx
index 9bd233c0e91f..96db1c338413 100644
--- a/svl/source/items/flagitem.cxx
+++ b/svl/source/items/flagitem.cxx
@@ -31,13 +31,6 @@ SfxFlagItem::SfxFlagItem( sal_uInt16 nW, sal_uInt16 nV ) :
}
-SvStream& SfxFlagItem::Store(SvStream &rStream, sal_uInt16) const
-{
- rStream.WriteUInt16( nVal );
- return rStream;
-}
-
-
bool SfxFlagItem::GetPresentation
(
SfxItemPresentation /*ePresentation*/,
@@ -61,13 +54,6 @@ sal_uInt8 SfxFlagItem::GetFlagCount() const
}
-SfxPoolItem* SfxFlagItem::Create(SvStream &, sal_uInt16) const
-{
- SAL_INFO("svl", "calling Create() on SfxFlagItem -- override!");
- return nullptr;
-}
-
-
bool SfxFlagItem::operator==( const SfxPoolItem& rItem ) const
{
assert(SfxPoolItem::operator==(rItem));
diff --git a/svl/source/items/int64item.cxx b/svl/source/items/int64item.cxx
index b5dc818b9d46..c32794a359ff 100644
--- a/svl/source/items/int64item.cxx
+++ b/svl/source/items/int64item.cxx
@@ -15,12 +15,6 @@ SfxInt64Item::SfxInt64Item( sal_uInt16 nWhich, sal_Int64 nVal ) :
{
}
-SfxInt64Item::SfxInt64Item( sal_uInt16 nWhich, SvStream& rStream ) :
- SfxPoolItem(nWhich), mnValue(0)
-{
- rStream.ReadInt64(mnValue);
-}
-
SfxInt64Item::~SfxInt64Item() {}
bool SfxInt64Item::operator== ( const SfxPoolItem& rItem ) const
@@ -57,16 +51,6 @@ bool SfxInt64Item::PutValue(
return false;
}
-SfxPoolItem* SfxInt64Item::Create( SvStream& rStream, sal_uInt16 /*nItemVersion*/ ) const
-{
- return new SfxInt64Item(Which(), rStream);
-}
-
-SvStream& SfxInt64Item::Store( SvStream& rStream, sal_uInt16 /*nItemVersion*/ ) const
-{
- return rStream.WriteInt64(mnValue);
-}
-
SfxPoolItem* SfxInt64Item::Clone( SfxItemPool* /*pOther*/ ) const
{
return new SfxInt64Item(*this);
diff --git a/svl/source/items/intitem.cxx b/svl/source/items/intitem.cxx
index 8e8ce37ea335..70be1383349e 100644
--- a/svl/source/items/intitem.cxx
+++ b/svl/source/items/intitem.cxx
@@ -35,27 +35,11 @@ SfxPoolItem* SfxByteItem::CreateDefault()
return new SfxByteItem();
};
-// virtual
-SfxPoolItem * SfxByteItem::Create(SvStream & rStream, sal_uInt16) const
-{
- short nValue = 0;
- rStream.ReadInt16( nValue );
- return new SfxByteItem(Which(), sal_uInt8(nValue));
-}
-
SfxPoolItem* SfxInt16Item::CreateDefault()
{
return new SfxInt16Item();
};
-SfxInt16Item::SfxInt16Item(sal_uInt16 which, SvStream & rStream):
- SfxPoolItem(which)
-{
- short nTheValue = 0;
- rStream.ReadInt16( nTheValue );
- m_nValue = nTheValue;
-}
-
// virtual
bool SfxInt16Item::operator ==(const SfxPoolItem & rItem) const
{
@@ -97,19 +81,6 @@ bool SfxInt16Item::PutValue(const css::uno::Any& rVal, sal_uInt8 )
return false;
}
-// virtual
-SfxPoolItem * SfxInt16Item::Create(SvStream & rStream, sal_uInt16) const
-{
- return new SfxInt16Item(Which(), rStream);
-}
-
-// virtual
-SvStream & SfxInt16Item::Store(SvStream & rStream, sal_uInt16) const
-{
- rStream.WriteInt16( short(m_nValue) );
- return rStream;
-}
-
SfxPoolItem * SfxInt16Item::Clone(SfxItemPool *) const
{
return new SfxInt16Item(*this);
diff --git a/svl/source/items/lckbitem.cxx b/svl/source/items/lckbitem.cxx
index 5c2efba1e9b1..a610380243cc 100644
--- a/svl/source/items/lckbitem.cxx
+++ b/svl/source/items/lckbitem.cxx
@@ -34,17 +34,6 @@ SfxLockBytesItem::SfxLockBytesItem()
}
-SfxLockBytesItem::SfxLockBytesItem( sal_uInt16 nW, SvStream &rStream )
-: SfxPoolItem( nW )
-{
- rStream.Seek( 0 );
- _xVal = new SvLockBytes( new SvMemoryStream(), true );
-
- SvStream aLockBytesStream( _xVal.get() );
- rStream.ReadStream( aLockBytesStream );
-}
-
-
SfxLockBytesItem::~SfxLockBytesItem()
{
}
@@ -62,42 +51,6 @@ SfxPoolItem* SfxLockBytesItem::Clone(SfxItemPool *) const
}
-#define MAX_BUF 32000
-
-SfxPoolItem* SfxLockBytesItem::Create( SvStream &rStream, sal_uInt16 ) const
-{
- sal_uInt32 nSize = 0;
- sal_uLong nActRead = 0;
- sal_Char cTmpBuf[MAX_BUF];
- SvMemoryStream aNewStream;
- rStream.ReadUInt32( nSize );
-
- do {
- sal_uLong nToRead;
- if( (nSize - nActRead) > MAX_BUF )
- nToRead = MAX_BUF;
- else
- nToRead = nSize - nActRead;
- nActRead += rStream.ReadBytes( cTmpBuf, nToRead );
- aNewStream.WriteBytes( cTmpBuf, nToRead );
- } while( nSize > nActRead );
-
- return new SfxLockBytesItem( Which(), aNewStream );
-}
-
-
-SvStream& SfxLockBytesItem::Store(SvStream &rStream, sal_uInt16 ) const
-{
- SvStream aLockBytesStream( _xVal.get() );
- sal_uInt32 nSize = aLockBytesStream.Seek( STREAM_SEEK_TO_END );
- aLockBytesStream.Seek( 0 );
-
- rStream.WriteUInt32( nSize );
- rStream.WriteStream( aLockBytesStream );
-
- return rStream;
-}
-
// virtual
bool SfxLockBytesItem::PutValue( const css::uno::Any& rVal, sal_uInt8 )
{
diff --git a/svl/source/items/legacyitem.cxx b/svl/source/items/legacyitem.cxx
new file mode 100755
index 000000000000..b0daa3b9066e
--- /dev/null
+++ b/svl/source/items/legacyitem.cxx
@@ -0,0 +1,69 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <svl/legacyitem.hxx>
+#include <tools/stream.hxx>
+#include <svl/eitem.hxx>
+#include <svl/cintitem.hxx>
+
+namespace legacy
+{
+ namespace SfxBool
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SfxBoolItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ bool tmp(false);
+ rStrm.ReadCharAsBool(tmp);
+ rItem.SetValue(tmp);
+ }
+
+ SvStream& Store(const SfxBoolItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteBool(rItem.GetValue()); // not bool for serialization!
+ return rStrm;
+ }
+ }
+ namespace CntInt32
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(CntInt32Item& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_Int32 tmp(0);
+ rStrm.ReadInt32(tmp);
+ rItem.SetValue(tmp);
+ }
+
+ SvStream& Store(const CntInt32Item& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteInt32(rItem.GetValue());
+ return rStrm;
+ }
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/items/macitem.cxx b/svl/source/items/macitem.cxx
index f45b7bfe9bf2..3c7fac91143a 100644
--- a/svl/source/items/macitem.cxx
+++ b/svl/source/items/macitem.cxx
@@ -248,11 +248,4 @@ void SvxMacroItem::SetMacro( SvMacroItemId nEvent, const SvxMacro& rMacro )
aMacroTable.Insert( nEvent, rMacro);
}
-
-sal_uInt16 SvxMacroItem::GetVersion( sal_uInt16 nFileFormatVersion ) const
-{
- return SOFFICE_FILEFORMAT_31 == nFileFormatVersion
- ? 0 : SvxMacroTableDtor::GetVersion();
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/items/poolitem.cxx b/svl/source/items/poolitem.cxx
index 346e38324bce..a5501dc907d8 100644
--- a/svl/source/items/poolitem.cxx
+++ b/svl/source/items/poolitem.cxx
@@ -26,6 +26,450 @@
#include <libxml/xmlwriter.h>
#include <typeinfo>
+//////////////////////////////////////////////////////////////////////////////
+// list of classes derived from SfxPoolItem
+// will not be kept up-to-date, but give a good overview for right now
+//////////////////////////////////////////////////////////////////////////////
+//
+// class SbxItem : public SfxPoolItem
+// class SvxChartColorTableItem : public SfxPoolItem
+// class DriverPoolingSettingsItem final : public SfxPoolItem
+// class DatabaseMapItem final : public SfxPoolItem
+// class DbuTypeCollectionItem : public SfxPoolItem
+// class OptionalBoolItem : public SfxPoolItem
+// class OStringListItem : public SfxPoolItem
+// class MediaItem : public SfxPoolItem
+// class SvxBoxItem : public SfxPoolItem
+// class SvxBoxInfoItem : public SfxPoolItem
+// class SvxBrushItem : public SfxPoolItem
+// class SvxBulletItem : public SfxPoolItem
+// class SvxColorItem : public SfxPoolItem
+// class SvxBackgroundColorItem : public SvxColorItem
+// class SvxFontHeightItem : public SfxPoolItem
+// class SvxFieldItem : public SfxPoolItem
+// class SvxFontListItem : public SfxPoolItem
+// class SvxFontItem : public SfxPoolItem
+// class SvxHyphenZoneItem : public SfxPoolItem
+// class SvxLineItem : public SfxPoolItem
+// class SvxLRSpaceItem : public SfxPoolItem
+// class SvxNumBulletItem : public SfxPoolItem
+// class SfxHyphenRegionItem: public SfxPoolItem
+// class SvxProtectItem : public SfxPoolItem
+// class SvxSizeItem : public SfxPoolItem
+// class SwFormatFrameSize: public SvxSizeItem
+// class SvxTabStopItem : public SfxPoolItem
+// class SvxTwoLinesItem : public SfxPoolItem
+// class SvxULSpaceItem : public SfxPoolItem
+// class SvXMLAttrContainerItem: public SfxPoolItem
+// class SfxLinkItem : public SfxPoolItem
+// class SfxEventNamesItem : public SfxPoolItem
+// class SfxFrameItem: public SfxPoolItem
+// class SfxUnoAnyItem : public SfxPoolItem
+// class SfxUnoFrameItem : public SfxPoolItem
+// class SfxMacroInfoItem: public SfxPoolItem
+// class SfxObjectItem: public SfxPoolItem
+// class SfxObjectShellItem: public SfxPoolItem
+// class SfxViewFrameItem: public SfxPoolItem
+// class SfxWatermarkItem: public SfxPoolItem
+// class SfxEnumItemInterface: public SfxPoolItem
+// class SvxAdjustItem : public SfxEnumItemInterface
+// class SvxEscapementItem : public SfxEnumItemInterface
+// class SvxLineSpacingItem : public SfxEnumItemInterface
+// class SvxShadowItem : public SfxEnumItemInterface
+// class SfxEnumItem : public SfxEnumItemInterface
+// class SvxCharReliefItem : public SfxEnumItem<FontRelief>
+// class SvxCaseMapItem : public SfxEnumItem<SvxCaseMap>
+// class SvxCrossedOutItem : public SfxEnumItem<FontStrikeout>
+// class SvxFormatBreakItem : public SfxEnumItem<SvxBreak>
+// class SvxFrameDirectionItem : public SfxEnumItem<SvxFrameDirection>
+// class SvxHorJustifyItem: public SfxEnumItem<SvxCellHorJustify>
+// class SvxVerJustifyItem: public SfxEnumItem<SvxCellVerJustify>
+// class SvxJustifyMethodItem: public SfxEnumItem<SvxCellJustifyMethod>
+// class SvxLanguageItem_Base: public SfxEnumItem<LanguageType>
+// class SvxLanguageItem : public SvxLanguageItem_Base
+// class SvxPostureItem : public SfxEnumItem<FontItalic>
+// class SvxTextLineItem : public SfxEnumItem<FontLineStyle>
+// class SvxUnderlineItem : public SvxTextLineItem
+// class SvxOverlineItem : public SvxTextLineItem
+// class SvxWeightItem : public SfxEnumItem<FontWeight>
+// class SfxAllEnumItem_Base: public SfxEnumItem<sal_uInt16>
+// class SfxAllEnumItem: public SfxAllEnumItem_Base
+// class SvxOrientationItem: public SfxEnumItem<SvxCellOrientation>
+// class SvxChartRegressItem : public SfxEnumItem<SvxChartRegress>
+// class SvxChartTextOrderItem : public SfxEnumItem<SvxChartTextOrder>
+// class SvxChartKindErrorItem : public SfxEnumItem<SvxChartKindError>
+// class SvxChartIndicateItem : public SfxEnumItem<SvxChartIndicate>
+// class SvxRotateModeItem: public SfxEnumItem<SvxRotateMode>
+// class SdrGrafModeItem_Base: public SfxEnumItem<GraphicDrawMode>
+// class SdrGrafModeItem : public SdrGrafModeItem_Base
+// class SdrTextAniDirectionItem: public SfxEnumItem<SdrTextAniDirection>
+// class SdrTextVertAdjustItem: public SfxEnumItem<SdrTextVertAdjust>
+// class SdrTextHorzAdjustItem: public SfxEnumItem<SdrTextHorzAdjust>
+// class SdrTextAniKindItem: public SfxEnumItem<SdrTextAniKind>
+// class SdrTextFitToSizeTypeItem : public SfxEnumItem<css::drawing::TextFitToSizeType>
+// class SdrCaptionEscDirItem: public SfxEnumItem<SdrCaptionEscDir>
+// class SdrCaptionTypeItem: public SfxEnumItem<SdrCaptionType>
+// class SdrEdgeKindItem: public SfxEnumItem<SdrEdgeKind>
+// class SdrMeasureTextHPosItem: public SfxEnumItem<css::drawing::MeasureTextHorzPos>
+// class SdrMeasureTextVPosItem: public SfxEnumItem<css::drawing::MeasureTextVertPos>
+// class SdrMeasureUnitItem: public SfxEnumItem<FieldUnit>
+// class XFillStyleItem : public SfxEnumItem<css::drawing::FillStyle>
+// class XFillBmpPosItem : public SfxEnumItem<RectPoint>
+// class XFormTextAdjustItem : public SfxEnumItem<XFormTextAdjust>
+// class XFormTextShadowItem : public SfxEnumItem<XFormTextShadow>
+// class XLineStyleItem : public SfxEnumItem<css::drawing::LineStyle>
+// class XLineJointItem : public SfxEnumItem<css::drawing::LineJoint>
+// class XLineCapItem : public SfxEnumItem<css::drawing::LineCap>
+// class XFormTextStyleItem : public SfxEnumItem<XFormTextStyle>
+// class ScViewObjectModeItem: public SfxEnumItem<ScVObjMode>
+// class SdrCircKindItem: public SfxEnumItem<SdrCircKind>
+// class SdrMeasureKindItem: public SfxEnumItem<SdrMeasureKind>
+// class SwFormatFillOrder: public SfxEnumItem<SwFillOrder>
+// class SwFormatFootnoteEndAtTextEnd : public SfxEnumItem<SwFootnoteEndPosEnum>
+// class SwFormatFootnoteAtTextEnd : public SwFormatFootnoteEndAtTextEnd
+// class SwFormatEndAtTextEnd : public SwFormatFootnoteEndAtTextEnd
+// class SwFormatSurround: public SfxEnumItem<css::text::WrapTextMode>
+// class SwMirrorGrf : public SfxEnumItem<MirrorGraph>
+// class SwDrawModeGrf_Base: public SfxEnumItem<GraphicDrawMode>
+// class SwDrawModeGrf : public SwDrawModeGrf_Base
+//class CntByteItem: public SfxPoolItem
+// class SfxByteItem: public CntByteItem
+// class SvxOrphansItem: public SfxByteItem
+// class SvxPaperBinItem : public SfxByteItem
+// class SvxWidowsItem: public SfxByteItem
+// class SwTransparencyGrf : public SfxByteItem
+//class CntUInt16Item: public SfxPoolItem
+// class SfxUInt16Item: public CntUInt16Item
+// class SvxTextRotateItem : public SfxUInt16Item
+// class SvxCharRotateItem : public SvxTextRotateItem
+// class SvxCharScaleWidthItem : public SfxUInt16Item
+// class SvxEmphasisMarkItem : public SfxUInt16Item
+// class SvxParaVertAlignItem : public SfxUInt16Item
+// class SvxWritingModeItem : public SfxUInt16Item
+// class SvxZoomItem: public SfxUInt16Item
+// class SdrPercentItem : public SfxUInt16Item
+// class SdrGrafTransparenceItem : public SdrPercentItem
+// class SdrTextAniCountItem: public SfxUInt16Item
+// class SdrTextAniDelayItem: public SfxUInt16Item
+// class Svx3DNormalsKindItem : public SfxUInt16Item
+// class Svx3DTextureProjectionXItem : public SfxUInt16Item
+// class Svx3DTextureProjectionYItem : public SfxUInt16Item
+// class Svx3DTextureKindItem : public SfxUInt16Item
+// class Svx3DTextureModeItem : public SfxUInt16Item
+// class Svx3DPerspectiveItem : public SfxUInt16Item
+// class Svx3DShadeModeItem : public SfxUInt16Item
+// class SdrEdgeLineDeltaCountItem: public SfxUInt16Item
+// class SvxViewLayoutItem: public SfxUInt16Item
+// class XFillBmpPosOffsetXItem : public SfxUInt16Item
+// class XFillBmpPosOffsetYItem : public SfxUInt16Item
+// class XFillBmpTileOffsetXItem : public SfxUInt16Item
+// class XFillBmpTileOffsetYItem : public SfxUInt16Item
+// class XFillTransparenceItem: public SfxUInt16Item
+// class XFormTextShadowTranspItem: public SfxUInt16Item
+// class XGradientStepCountItem: public SfxUInt16Item
+// class XLineTransparenceItem: public SfxUInt16Item
+// class SvxZoomSliderItem: public SfxUInt16Item
+// class SdrLayerIdItem: public SfxUInt16Item
+// class SwRotationGrf : public SfxUInt16Item
+//class CntInt32Item: public SfxPoolItem
+// class SfxInt32Item: public CntInt32Item
+// class SfxMetricItem: public SfxInt32Item
+// class XFillBmpSizeXItem : public SfxMetricItem
+// class XFillBmpSizeYItem : public SfxMetricItem
+// class XFormTextDistanceItem : public SfxMetricItem
+// class XFormTextShadowXValItem : public SfxMetricItem
+// class XFormTextShadowYValItem : public SfxMetricItem
+// class XFormTextStartItem : public SfxMetricItem
+// class XLineEndWidthItem : public SfxMetricItem
+// class XLineStartWidthItem : public SfxMetricItem
+// class XLineWidthItem : public SfxMetricItem
+// class SdrAngleItem: public SfxInt32Item
+//
+// class SdrCaptionAngleItem: public SdrAngleItem
+// class SdrMeasureTextFixedAngleItem: public SdrAngleItem
+// class SdrMeasureTextAutoAngleViewItem: public SdrAngleItem
+// class SdrRotateAllItem: public SdrAngleItem
+// class SdrRotateOneItem: public SdrAngleItem
+// class SdrShearAngleItem: public SdrAngleItem
+// class SdrHorzShearAllItem: public SdrAngleItem
+// class SdrVertShearAllItem: public SdrAngleItem
+// class SdrHorzShearOneItem: public SdrAngleItem
+// class SdrVertShearOneItem: public SdrAngleItem
+// class SdrMetricItem: public SfxInt32Item
+// class SdrCaptionEscAbsItem: public SdrMetricItem
+// class SdrCaptionGapItem: public SdrMetricItem
+// class SdrCaptionLineLenItem: public SdrMetricItem
+// class SdrEdgeNode1HorzDistItem: public SdrMetricItem
+// class SdrEdgeNode1VertDistItem: public SdrMetricItem
+// class SdrEdgeNode2HorzDistItem: public SdrMetricItem
+// class SdrEdgeNode2VertDistItem: public SdrMetricItem
+// class SdrEdgeNode1GlueDistItem: public SdrMetricItem
+// class SdrEdgeNode2GlueDistItem: public SdrMetricItem
+// class SdrAllPositionXItem: public SdrMetricItem
+// class SdrAllPositionYItem: public SdrMetricItem
+// class SdrAllSizeWidthItem: public SdrMetricItem
+// class SdrAllSizeHeightItem: public SdrMetricItem
+// class SdrLogicSizeWidthItem: public SdrMetricItem
+// class SdrLogicSizeHeightItem: public SdrMetricItem
+// class SdrMeasureOverhangItem: public SdrMetricItem
+// class SdrMoveXItem: public SdrMetricItem
+// class SdrMoveYItem: public SdrMetricItem
+// class SdrOnePositionXItem: public SdrMetricItem
+// class SdrOnePositionYItem: public SdrMetricItem
+// class SdrOneSizeWidthItem: public SdrMetricItem
+// class SdrOneSizeHeightItem: public SdrMetricItem
+// class SdrTransformRef1XItem: public SdrMetricItem
+// class SdrTransformRef1YItem: public SdrMetricItem
+// class SdrTransformRef2XItem: public SdrMetricItem
+// class SdrTransformRef2YItem: public SdrMetricItem
+// class SdrCaptionEscRelItem: public SfxInt32Item
+//class CntUInt32Item: public SfxPoolItem
+// class SfxUInt32Item: public CntUInt32Item
+// class SvxRsidItem : public SfxUInt32Item
+// class SdrGrafGamma100Item : public SfxUInt32Item
+// class SwTableBoxNumFormat : public SfxUInt32Item
+//class CntUnencodedStringItem: public SfxPoolItem
+// class SfxStringItem: public CntUnencodedStringItem
+// class SvxPageModelItem : public SfxStringItem
+// class SfxDocumentInfoItem : public SfxStringItem
+// class SvxPostItAuthorItem: public SfxStringItem
+// class SvxPostItDateItem: public SfxStringItem
+// class SvxPostItTextItem: public SfxStringItem
+// class SvxPostItIdItem: public SfxStringItem
+// class SdrMeasureFormatStringItem: public SfxStringItem
+// class NameOrIndex : public SfxStringItem
+// class XFillBitmapItem : public NameOrIndex
+// class XColorItem : public NameOrIndex
+// class XFillColorItem : public XColorItem
+// class XFormTextShadowColorItem : public XColorItem
+// class XLineColorItem : public XColorItem
+// class XSecondaryFillColorItem : public XColorItem
+// class XFillGradientItem : public NameOrIndex
+// class XFillFloatTransparenceItem : public XFillGradientItem
+// class XFillHatchItem : public NameOrIndex
+// class XLineDashItem : public NameOrIndex
+// class XLineEndItem : public NameOrIndex
+// class XLineStartItem : public NameOrIndex
+// class SfxScriptOrganizerItem : public SfxStringItem
+// class SdrLayerNameItem: public SfxStringItem
+// class SwNumRuleItem : public SfxStringItem
+//class SfxBoolItem : public SfxPoolItem
+// class SvxAutoKernItem : public SfxBoolItem
+// class SvxBlinkItem : public SfxBoolItem
+// class SvxCharHiddenItem : public SfxBoolItem
+// class SvxContourItem : public SfxBoolItem
+// class SvxForbiddenRuleItem : public SfxBoolItem
+// class SvxHangingPunctuationItem : public SfxBoolItem
+// class SvxFormatKeepItem : public SfxBoolItem
+// class SvxNoHyphenItem : public SfxBoolItem
+// class SvxOpaqueItem : public SfxBoolItem
+// class SvxParaGridItem : public SfxBoolItem
+// class SvxPrintItem : public SfxBoolItem
+// class SvxScriptSpaceItem : public SfxBoolItem
+// class SvxShadowedItem : public SfxBoolItem
+// class SvxFormatSplitItem : public SfxBoolItem
+// class SvxWordLineModeItem : public SfxBoolItem
+// class SdrOnOffItem: public SfxBoolItem
+// class SdrGrafInvertItem : public SdrOnOffItem
+// class SdrTextFixedCellHeightItem : public SfxBoolItem
+// class SdrYesNoItem: public SfxBoolItem
+// class SdrTextAniStartInsideItem: public SdrYesNoItem
+// class SdrTextAniStopInsideItem: public SdrYesNoItem
+// class SdrCaptionEscIsRelItem: public SdrYesNoItem
+// class SdrCaptionFitLineLenItem: public SdrYesNoItem
+// class SdrMeasureBelowRefEdgeItem: public SdrYesNoItem
+// class SdrMeasureTextIsFixedAngleItem: public SdrYesNoItem
+// class SdrMeasureTextRota90Item: public SdrYesNoItem
+// class SdrMeasureTextUpsideDownItem: public SdrYesNoItem
+// class SdrMeasureTextAutoAngleItem: public SdrYesNoItem
+// class SdrObjPrintableItem: public SdrYesNoItem
+// class SdrObjVisibleItem: public SdrYesNoItem
+// class Svx3DReducedLineGeometryItem : public SfxBoolItem
+// class Svx3DSmoothNormalsItem : public SfxBoolItem
+// class Svx3DSmoothLidsItem : public SfxBoolItem
+// class Svx3DCharacterModeItem : public SfxBoolItem
+// class Svx3DCloseFrontItem : public SfxBoolItem
+// class Svx3DCloseBackItem : public SfxBoolItem
+// class XFillBackgroundItem : public SfxBoolItem
+// class XFillBmpSizeLogItem : public SfxBoolItem
+// class XFillBmpTileItem : public SfxBoolItem
+// class XFillBmpStretchItem : public SfxBoolItem
+// class XFormTextMirrorItem : public SfxBoolItem
+// class XFormTextOutlineItem : public SfxBoolItem
+// class XLineEndCenterItem : public SfxBoolItem
+// class XLineStartCenterItem : public SfxBoolItem
+// class XFormTextHideFormItem : public SfxBoolItem
+// class SwFormatNoBalancedColumns : public SfxBoolItem
+// class SwFormatEditInReadonly : public SfxBoolItem
+// class SwFormatFollowTextFlow : public SfxBoolItem
+// class SwFormatLayoutSplit : public SfxBoolItem
+// class SwFormatRowSplit : public SfxBoolItem
+// class SwInvertGrf: public SfxBoolItem
+// class SwHeaderAndFooterEatSpacingItem : public SfxBoolItem
+// class SwRegisterItem : public SfxBoolItem
+// class SwParaConnectBorderItem : public SfxBoolItem
+// class SfxFlagItem: public SfxPoolItem
+// class SfxTemplateItem: public SfxFlagItem
+// class SfxGlobalNameItem: public SfxPoolItem
+// class SfxGrabBagItem : public SfxPoolItem
+// class SfxIntegerListItem : public SfxPoolItem
+// class SfxInt64Item : public SfxPoolItem
+// class SfxInt16Item: public SfxPoolItem
+// class SvxKerningItem : public SfxInt16Item
+// class SfxImageItem : public SfxInt16Item
+// class SdrSignedPercentItem : public SfxInt16Item
+// class SdrGrafRedItem : public SdrSignedPercentItem
+// class SdrGrafGreenItem : public SdrSignedPercentItem
+// class SdrGrafBlueItem : public SdrSignedPercentItem
+// class SdrGrafLuminanceItem : public SdrSignedPercentItem
+// class SdrGrafContrastItem : public SdrSignedPercentItem
+// class SdrTextAniAmountItem: public SfxInt16Item
+// class SdrMeasureDecimalPlacesItem: public SfxInt16Item
+// class ScMergeFlagAttr: public SfxInt16Item
+// class SwLuminanceGrf : public SfxInt16Item
+// class SwContrastGrf : public SfxInt16Item
+// class SwChannelGrf : public SfxInt16Item
+// class SfxLockBytesItem : public SfxPoolItem
+// class SvxMacroItem: public SfxPoolItem
+// class SfxVoidItem final: public SfxPoolItem
+// class SfxSetItem: public SfxPoolItem
+// class SvxScriptSetItem : public SfxSetItem
+// class SfxTabDialogItem: public SfxSetItem
+// class SvxSetItem: public SfxSetItem
+// class XFillAttrSetItem : public SfxSetItem
+// class XLineAttrSetItem : public SfxSetItem
+// class ScPatternAttr: public SfxSetItem
+// class SfxPointItem: public SfxPoolItem
+// class SfxRectangleItem: public SfxPoolItem
+// class SfxRangeItem : public SfxPoolItem
+// class SfxStringListItem : public SfxPoolItem
+// class SvxSearchItem : public SfxPoolItem
+// class SfxVisibilityItem: public SfxPoolItem
+// class AffineMatrixItem : public SfxPoolItem
+// class SvxMarginItem: public SfxPoolItem
+// class SvxDoubleItem : public SfxPoolItem
+// class SvxClipboardFormatItem : public SfxPoolItem
+// class SvxColorListItem: public SfxPoolItem
+// class SvxGradientListItem : public SfxPoolItem
+// class SvxHatchListItem : public SfxPoolItem
+// class SvxBitmapListItem : public SfxPoolItem
+// class SvxPatternListItem : public SfxPoolItem
+// class SvxDashListItem : public SfxPoolItem
+// class SvxLineEndListItem : public SfxPoolItem
+// class SvxB3DVectorItem : public SfxPoolItem
+// class SvxGalleryItem : public SfxPoolItem
+// class SvxGrfCrop : public SfxPoolItem
+// class SdrGrafCropItem : public SvxGrfCrop
+// class SwCropGrf : public SvxGrfCrop
+// class SvxHyperlinkItem : public SfxPoolItem
+// class SvxNumberInfoItem : public SfxPoolItem
+// class OfaPtrItem : public SfxPoolItem
+// class OfaRefItem : public SfxPoolItem
+// class SvxGridItem : public SvxOptionsGrid, public SfxPoolItem
+// class SdOptionsGridItem : public SvxGridItem
+// class SvxPageItem: public SfxPoolItem
+// class SvxLongLRSpaceItem : public SfxPoolItem
+// class SvxLongULSpaceItem : public SfxPoolItem
+// class SvxPagePosSizeItem : public SfxPoolItem
+// class SvxColumnItem : public SfxPoolItem
+// class SvxObjectItem : public SfxPoolItem
+// class SdrCustomShapeGeometryItem : public SfxPoolItem
+// class SvxSmartTagItem : public SfxPoolItem
+// class SvxGraphicItem: public SfxPoolItem
+// class SdrFractionItem: public SfxPoolItem
+// class SdrScaleItem: public SdrFractionItem
+// class SdrMeasureScaleItem: public SdrScaleItem
+// class SdrResizeXAllItem: public SdrFractionItem
+// class SdrResizeYAllItem: public SdrFractionItem
+// class SdrResizeXOneItem: public SdrFractionItem
+// class SdrResizeYOneItem: public SdrFractionItem
+// class ScMergeAttr: public SfxPoolItem
+// class ScProtectionAttr: public SfxPoolItem
+// class ScPageHFItem : public SfxPoolItem
+// class ScPageScaleToItem : public SfxPoolItem
+// class ScCondFormatItem : public SfxPoolItem
+// class ScTpDefaultsItem : public SfxPoolItem
+// class ScTpCalcItem : public SfxPoolItem
+// class ScTpFormulaItem : public SfxPoolItem
+// class ScTpPrintItem : public SfxPoolItem
+// class ScTpViewItem : public SfxPoolItem
+// class ScCondFormatDlgItem : public SfxPoolItem
+// class ScInputStatusItem : public SfxPoolItem
+// class ScSortItem : public SfxPoolItem
+// class ScQueryItem : public SfxPoolItem
+// class ScSubTotalItem : public SfxPoolItem
+// class cUserListItem : public SfxPoolItem
+// class ScConsolidateItem : public SfxPoolItem
+// class ScPivotItem : public SfxPoolItem
+// class ScSolveItem : public SfxPoolItem
+// class ScTabOpItem : public SfxPoolItem
+// class SdOptionsLayoutItem : public SfxPoolItem
+// class SdOptionsMiscItem : public SfxPoolItem
+// class SdOptionsSnapItem : public SfxPoolItem
+// class SdOptionsPrintItem : public SfxPoolItem
+// class SwCondCollItem : public SfxPoolItem
+// class SwTableBoxFormula : public SfxPoolItem, public SwTableFormula
+// class SwTableBoxValue : public SfxPoolItem
+// class SwFormatCharFormat: public SfxPoolItem, public SwClient
+// class SwFormatAnchor: public SfxPoolItem
+// class SwFormatAutoFormat: public SfxPoolItem
+// class SwFormatCol : public SfxPoolItem
+// class SwFormatChain: public SfxPoolItem
+// class SwFormatContent: public SfxPoolItem
+// class SwFormatFlyCnt : public SfxPoolItem
+// class SwFormatField : public SfxPoolItem
+// class SwFormatFootnote : public SfxPoolItem
+// class SwFormatHeader: public SfxPoolItem, public SwClient
+// class SwFormatFooter: public SfxPoolItem, public SwClient
+// class SwFormatINetFormat : public SfxPoolItem
+// class SwFormatLineNumber: public SfxPoolItem
+// class SwFormatMeta : public SfxPoolItem
+// class SwFormatVertOrient: public SfxPoolItem
+// class SwFormatHoriOrient: public SfxPoolItem
+// class SwFormatPageDesc : public SfxPoolItem, public SwClient
+// class SwFormatRefMark : public SfxPoolItem
+// class SwFormatRuby : public SfxPoolItem
+// class SwFormatURL: public SfxPoolItem
+// class SwFormatWrapInfluenceOnObjPos: public SfxPoolItem
+// class SwGammaGrf : public SfxPoolItem
+// class SwMsgPoolItem : public SfxPoolItem
+// class SwPtrMsgPoolItem : public SwMsgPoolItem
+// class SwFormatChg: public SwMsgPoolItem
+// class SwInsText: public SwMsgPoolItem
+// class SwDelChr: public SwMsgPoolItem
+// class SwDelText: public SwMsgPoolItem
+// class SwUpdateAttr : public SwMsgPoolItem
+// class SwRefMarkFieldUpdate : public SwMsgPoolItem
+// class SwDocPosUpdate : public SwMsgPoolItem
+// class SwTableFormulaUpdate : public SwMsgPoolItem
+// class SwAutoFormatGetDocNode: public SwMsgPoolItem
+// class SwAttrSetChg: public SwMsgPoolItem
+// class SwCondCollCondChg: public SwMsgPoolItem
+// class SwVirtPageNumInfo: public SwMsgPoolItem
+// class SwFindNearestNode : public SwMsgPoolItem
+// class SwStringMsgPoolItem : public SwMsgPoolItem
+// class SwFormatDrop: public SfxPoolItem, public SwClient
+// class SwTextGridItem : public SfxPoolItem
+// class SwTOXMark : public SfxPoolItem
+// class SwFltAnchor : public SfxPoolItem
+// class SwFltRedline : public SfxPoolItem
+// class SwFltBookmark : public SfxPoolItem
+// class SwFltRDFMark : public SfxPoolItem
+// class SwFltTOX : public SfxPoolItem
+// class SwDocDisplayItem : public SfxPoolItem
+// class SwElemItem : public SfxPoolItem
+// class SwAddPrinterItem : public SfxPoolItem, public SwPrintData
+// class SwShadowCursorItem : public SfxPoolItem
+// class SwTestItem : public SfxPoolItem
+// class SwEnvItem : public SfxPoolItem
+// class SwLabItem : public SfxPoolItem
+// class SwWrtShellItem: public SfxPoolItem
+// class SwPageFootnoteInfoItem : public SfxPoolItem
+// class SwPtrItem : public SfxPoolItem
+// class SwUINumRuleItem : public SfxPoolItem
+// class SwPaMItem : public SfxPoolItem
+//////////////////////////////////////////////////////////////////////////////
+
SfxPoolItem::SfxPoolItem(sal_uInt16 const nWhich)
: m_nRefCount(0)
, m_nWhich(nWhich)
@@ -48,25 +492,6 @@ bool SfxPoolItem::operator==( const SfxPoolItem& rCmp ) const
}
-SfxPoolItem* SfxPoolItem::Create(SvStream &, sal_uInt16) const
-{
- assert(!"this item is not serialisable");
- return Clone();
-}
-
-
-sal_uInt16 SfxPoolItem::GetVersion( sal_uInt16 ) const
-{
- return 0;
-}
-
-
-SvStream& SfxPoolItem::Store(SvStream &rStream, sal_uInt16 ) const
-{
- assert(!"this item is not serialisable");
- return rStream;
-}
-
/**
* This virtual method allows to get a textual representation of the value
* for the SfxPoolItem subclasses. It should be overridden by all UI-relevant
diff --git a/svl/source/items/ptitem.cxx b/svl/source/items/ptitem.cxx
index 03493d143e04..ed228db34e87 100644
--- a/svl/source/items/ptitem.cxx
+++ b/svl/source/items/ptitem.cxx
@@ -73,21 +73,6 @@ SfxPoolItem* SfxPointItem::Clone(SfxItemPool *) const
}
-SfxPoolItem* SfxPointItem::Create(SvStream &rStream, sal_uInt16 ) const
-{
- Point aStr;
- ReadPair( rStream, aStr );
- return new SfxPointItem(Which(), aStr);
-}
-
-
-SvStream& SfxPointItem::Store(SvStream &rStream, sal_uInt16 ) const
-{
- WritePair( rStream, aVal );
- return rStream;
-}
-
-
bool SfxPointItem::QueryValue( uno::Any& rVal,
sal_uInt8 nMemberId ) const
{
diff --git a/svl/source/items/rectitem.cxx b/svl/source/items/rectitem.cxx
index d481a78df22d..170bf76db521 100644
--- a/svl/source/items/rectitem.cxx
+++ b/svl/source/items/rectitem.cxx
@@ -73,21 +73,6 @@ SfxPoolItem* SfxRectangleItem::Clone(SfxItemPool *) const
}
-SfxPoolItem* SfxRectangleItem::Create(SvStream &rStream, sal_uInt16 ) const
-{
- tools::Rectangle aStr;
- ReadRectangle( rStream, aStr );
- return new SfxRectangleItem(Which(), aStr);
-}
-
-
-SvStream& SfxRectangleItem::Store(SvStream &rStream, sal_uInt16 ) const
-{
- WriteRectangle( rStream, aVal );
- return rStream;
-}
-
-
bool SfxRectangleItem::QueryValue( css::uno::Any& rVal,
sal_uInt8 nMemberId) const
{
diff --git a/svl/source/items/rngitem.cxx b/svl/source/items/rngitem.cxx
index 6b0a3768d555..1cabc517eb79 100644
--- a/svl/source/items/rngitem.cxx
+++ b/svl/source/items/rngitem.cxx
@@ -59,21 +59,4 @@ SfxPoolItem* SfxRangeItem::Clone(SfxItemPool *) const
return new SfxRangeItem( Which(), nFrom, nTo );
}
-
-SfxPoolItem* SfxRangeItem::Create(SvStream &rStream, sal_uInt16) const
-{
- sal_uInt16 nVon(0), nBis(0);
- rStream.ReadUInt16( nVon );
- rStream.ReadUInt16( nBis );
- return new SfxRangeItem( Which(), nVon, nBis );
-}
-
-
-SvStream& SfxRangeItem::Store(SvStream &rStream, sal_uInt16) const
-{
- rStream.WriteUInt16( nFrom );
- rStream.WriteUInt16( nTo );
- return rStream;
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/items/slstitm.cxx b/svl/source/items/slstitm.cxx
index 64d960226d86..e366badc8167 100644
--- a/svl/source/items/slstitm.cxx
+++ b/svl/source/items/slstitm.cxx
@@ -47,24 +47,6 @@ SfxStringListItem::SfxStringListItem( sal_uInt16 which, const std::vector<OUStri
}
-SfxStringListItem::SfxStringListItem( sal_uInt16 which, SvStream& rStream ) :
- SfxPoolItem( which )
-{
- sal_Int32 nEntryCount;
- rStream.ReadInt32( nEntryCount );
-
- if( nEntryCount )
- mpList.reset(new std::vector<OUString>);
-
- if (mpList)
- {
- for( sal_Int32 i=0; i < nEntryCount; i++ )
- {
- mpList->push_back( readByteString(rStream) );
- }
- }
-}
-
SfxStringListItem::~SfxStringListItem()
{
}
@@ -113,30 +95,6 @@ SfxPoolItem* SfxStringListItem::Clone( SfxItemPool *) const
}
-SfxPoolItem* SfxStringListItem::Create( SvStream & rStream, sal_uInt16 ) const
-{
- return new SfxStringListItem( Which(), rStream );
-}
-
-
-SvStream& SfxStringListItem::Store( SvStream & rStream, sal_uInt16 ) const
-{
- if( !mpList )
- {
- rStream.WriteInt32( 0 );
- return rStream;
- }
-
- sal_uInt32 nCount = mpList->size();
- rStream.WriteUInt32( nCount );
-
- for( sal_uInt32 i=0; i < nCount; i++ )
- writeByteString(rStream, (*mpList)[i]);
-
- return rStream;
-}
-
-
void SfxStringListItem::SetString( const OUString& rStr )
{
mpList.reset( new std::vector<OUString> );
diff --git a/svl/source/items/stritem.cxx b/svl/source/items/stritem.cxx
index 37ed45c4a7f8..131e468e6b99 100644
--- a/svl/source/items/stritem.cxx
+++ b/svl/source/items/stritem.cxx
@@ -25,27 +25,6 @@
// virtual
-SfxStringItem::SfxStringItem(sal_uInt16 which, SvStream & rStream):
- CntUnencodedStringItem(which)
-{
- SetValue(readByteString(rStream));
-}
-
-
-// virtual
-SfxPoolItem * SfxStringItem::Create(SvStream & rStream, sal_uInt16) const
-{
- return new SfxStringItem(Which(), rStream);
-}
-
-// virtual
-SvStream & SfxStringItem::Store(SvStream & rStream, sal_uInt16) const
-{
- writeByteString(rStream, GetValue());
- return rStream;
-}
-
-// virtual
SfxPoolItem * SfxStringItem::Clone(SfxItemPool *) const
{
return new SfxStringItem(*this);
diff --git a/svl/source/items/visitem.cxx b/svl/source/items/visitem.cxx
index d35fc6078db2..d1ad3efc01a2 100644
--- a/svl/source/items/visitem.cxx
+++ b/svl/source/items/visitem.cxx
@@ -23,14 +23,6 @@
#include <tools/stream.hxx>
-SfxVisibilityItem::SfxVisibilityItem(sal_uInt16 which, SvStream & rStream):
- SfxPoolItem(which)
-{
- bool bValue = false;
- rStream.ReadCharAsBool( bValue );
- m_nValue.bVisible = bValue;
-}
-
// virtual
bool SfxVisibilityItem::operator ==(const SfxPoolItem & rItem) const
{
@@ -68,19 +60,6 @@ bool SfxVisibilityItem::PutValue(const css::uno::Any& rVal, sal_uInt8)
}
// virtual
-SfxPoolItem * SfxVisibilityItem::Create(SvStream & rStream, sal_uInt16) const
-{
- return new SfxVisibilityItem(Which(), rStream);
-}
-
-// virtual
-SvStream & SfxVisibilityItem::Store(SvStream & rStream, sal_uInt16) const
-{
- rStream.WriteUChar( m_nValue.bVisible );
- return rStream;
-}
-
-// virtual
SfxPoolItem * SfxVisibilityItem::Clone(SfxItemPool *) const
{
return new SfxVisibilityItem(*this);
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index 4677f3b475f4..6589179eb025 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -160,8 +160,10 @@ $(eval $(call gb_Library_add_exception_objects,svx,\
svx/source/dialog/txenctab \
svx/source/engine3d/float3d \
svx/source/items/algitem \
+ svx/source/items/autoformathelper \
svx/source/items/hlnkitem \
svx/source/items/numfmtsh \
+ svx/source/items/legacyitem \
svx/source/items/numinf \
svx/source/items/ofaitem \
svx/source/items/pageitem \
diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx
index 8141ec50b80f..04cd33c9d327 100644
--- a/svx/source/dialog/svxruler.cxx
+++ b/svx/source/dialog/svxruler.cxx
@@ -131,7 +131,7 @@ struct SvxRuler_Impl {
long lMaxRightLogic;
long lLastLMargin;
long lLastRMargin;
- SvxProtectItem aProtectItem;
+ std::unique_ptr<SvxProtectItem> aProtectItem;
std::unique_ptr<SfxBoolItem> pTextRTLItem;
sal_uInt16 nControlerItems;
sal_uInt16 nIdx;
@@ -148,7 +148,8 @@ struct SvxRuler_Impl {
SvxRuler_Impl() :
nPercSize(0), nTotalDist(0),
lOldWinPos(0), lMaxLeftLogic(0), lMaxRightLogic(0),
- lLastLMargin(0), lLastRMargin(0), aProtectItem(SID_RULER_PROTECT),
+ lLastLMargin(0), lLastRMargin(0),
+ aProtectItem(std::make_unique<SvxProtectItem>(SID_RULER_PROTECT)),
nControlerItems(0), nIdx(0),
nColLeftPix(0), nColRightPix(0),
bIsTableRows(false),
@@ -498,8 +499,8 @@ inline sal_uInt16 SvxRuler::GetObjectBordersOff(sal_uInt16 nIdx) const
void SvxRuler::UpdateFrame()
{
const RulerMarginStyle nMarginStyle =
- ( mxRulerImpl->aProtectItem.IsSizeProtected() ||
- mxRulerImpl->aProtectItem.IsPosProtected() ) ?
+ ( mxRulerImpl->aProtectItem->IsSizeProtected() ||
+ mxRulerImpl->aProtectItem->IsPosProtected() ) ?
RulerMarginStyle::NONE : RulerMarginStyle::Sizeable;
if(mxLRSpaceItem.get() && mxPagePosItem.get())
@@ -745,7 +746,7 @@ void SvxRuler::UpdateFrame(const SvxLongULSpaceItem *pItem) // new value
void SvxRuler::Update( const SvxProtectItem* pItem )
{
if( pItem )
- mxRulerImpl->aProtectItem = *pItem;
+ mxRulerImpl->aProtectItem.reset(static_cast<SvxProtectItem*>(pItem->Clone()));
}
void SvxRuler::UpdateTextRTL(const SfxBoolItem* pItem)
@@ -800,8 +801,8 @@ void SvxRuler::UpdateColumns()
RulerBorderStyle nStyleFlags = RulerBorderStyle::Variable;
bool bProtectColumns =
- mxRulerImpl->aProtectItem.IsSizeProtected() ||
- mxRulerImpl->aProtectItem.IsPosProtected();
+ mxRulerImpl->aProtectItem->IsSizeProtected() ||
+ mxRulerImpl->aProtectItem->IsPosProtected();
if( !bProtectColumns )
{
@@ -1392,8 +1393,8 @@ void SvxRuler::AdjustMargin1(long lInputDiff)
const long lDragPos = lInputDiff;
bool bProtectColumns =
- mxRulerImpl->aProtectItem.IsSizeProtected() ||
- mxRulerImpl->aProtectItem.IsPosProtected();
+ mxRulerImpl->aProtectItem->IsSizeProtected() ||
+ mxRulerImpl->aProtectItem->IsPosProtected();
const RulerMarginStyle nMarginStyle =
bProtectColumns ? RulerMarginStyle::NONE : RulerMarginStyle::Sizeable;
@@ -1524,8 +1525,8 @@ void SvxRuler::DragMargin2()
}
bool bProtectColumns =
- mxRulerImpl->aProtectItem.IsSizeProtected() ||
- mxRulerImpl->aProtectItem.IsPosProtected();
+ mxRulerImpl->aProtectItem->IsSizeProtected() ||
+ mxRulerImpl->aProtectItem->IsPosProtected();
const RulerMarginStyle nMarginStyle = bProtectColumns ? RulerMarginStyle::NONE : RulerMarginStyle::Sizeable;
@@ -2549,7 +2550,7 @@ void SvxRuler::Click()
if(mxTabStopItem.get() &&
(nFlags & SvxRulerSupportFlags::TABS) == SvxRulerSupportFlags::TABS)
{
- bool bContentProtected = mxRulerImpl->aProtectItem.IsContentProtected();
+ bool bContentProtected = mxRulerImpl->aProtectItem->IsContentProtected();
if( bContentProtected ) return;
const long lPos = GetClickPos();
if((bRTL && lPos < std::min(GetFirstLineIndent(), GetLeftIndent()) && lPos > GetRightIndent()) ||
@@ -2613,7 +2614,7 @@ void SvxRuler::CalcMinMax()
{
//top border is not moveable when table rows are displayed
// protection of content means the margin is not moveable
- if(bHorz && !mxRulerImpl->aProtectItem.IsContentProtected())
+ if(bHorz && !mxRulerImpl->aProtectItem->IsContentProtected())
{
nMaxLeft = mpBorders[0].nMinPos + lNullPix;
if(nDragType & SvxRulerDragFlags::OBJECT_SIZE_PROPORTIONAL)
@@ -2701,7 +2702,7 @@ void SvxRuler::CalcMinMax()
{
// get the bottom move range from the last border position - only available for rows!
// protection of content means the margin is not moveable
- if(bHorz || mxRulerImpl->aProtectItem.IsContentProtected())
+ if(bHorz || mxRulerImpl->aProtectItem->IsContentProtected())
{
nMaxLeft = nMaxRight = mpBorders[mxColumnItem->Count() - 1].nMaxPos + lNullPix;
}
@@ -3109,7 +3110,7 @@ bool SvxRuler::StartDrag()
<SvxRuler::CalcMinMax()>
<SvxRuler::EndDrag()>
*/
- bool bContentProtected = mxRulerImpl->aProtectItem.IsContentProtected();
+ bool bContentProtected = mxRulerImpl->aProtectItem->IsContentProtected();
if(!bValid)
return false;
diff --git a/svx/source/engine3d/svx3ditems.cxx b/svx/source/engine3d/svx3ditems.cxx
index 8b1efe4dfc44..8fe5b55948b0 100644
--- a/svx/source/engine3d/svx3ditems.cxx
+++ b/svx/source/engine3d/svx3ditems.cxx
@@ -35,11 +35,6 @@ Svx3DReducedLineGeometryItem::Svx3DReducedLineGeometryItem(bool bVal)
: SfxBoolItem(SDRATTR_3DOBJ_REDUCED_LINE_GEOMETRY, bVal)
{}
-sal_uInt16 Svx3DReducedLineGeometryItem::GetVersion(sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 1;
-}
-
SfxPoolItem * Svx3DReducedLineGeometryItem::Clone(SfxItemPool *) const
{
return new Svx3DReducedLineGeometryItem(*this);
@@ -78,11 +73,6 @@ Svx3DSmoothNormalsItem::Svx3DSmoothNormalsItem(bool bVal)
: SfxBoolItem(SDRATTR_3DOBJ_SMOOTH_NORMALS, bVal)
{}
-sal_uInt16 Svx3DSmoothNormalsItem::GetVersion(sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 1;
-}
-
SfxPoolItem * Svx3DSmoothNormalsItem::Clone(SfxItemPool *) const
{
return new Svx3DSmoothNormalsItem(*this);
@@ -93,11 +83,6 @@ Svx3DSmoothLidsItem::Svx3DSmoothLidsItem(bool bVal)
: SfxBoolItem(SDRATTR_3DOBJ_SMOOTH_LIDS, bVal)
{}
-sal_uInt16 Svx3DSmoothLidsItem::GetVersion(sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 1;
-}
-
SfxPoolItem * Svx3DSmoothLidsItem::Clone(SfxItemPool *) const
{
return new Svx3DSmoothLidsItem(*this);
@@ -108,11 +93,6 @@ Svx3DCharacterModeItem::Svx3DCharacterModeItem(bool bVal)
: SfxBoolItem(SDRATTR_3DOBJ_CHARACTER_MODE, bVal)
{}
-sal_uInt16 Svx3DCharacterModeItem::GetVersion(sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 1;
-}
-
SfxPoolItem * Svx3DCharacterModeItem::Clone(SfxItemPool *) const
{
return new Svx3DCharacterModeItem(*this);
@@ -123,11 +103,6 @@ Svx3DCloseFrontItem::Svx3DCloseFrontItem(bool bVal)
: SfxBoolItem(SDRATTR_3DOBJ_CLOSE_FRONT, bVal)
{}
-sal_uInt16 Svx3DCloseFrontItem::GetVersion(sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 1;
-}
-
SfxPoolItem * Svx3DCloseFrontItem::Clone(SfxItemPool *) const
{
return new Svx3DCloseFrontItem(*this);
@@ -138,11 +113,6 @@ Svx3DCloseBackItem::Svx3DCloseBackItem(bool bVal)
: SfxBoolItem(SDRATTR_3DOBJ_CLOSE_BACK, bVal)
{}
-sal_uInt16 Svx3DCloseBackItem::GetVersion(sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 1;
-}
-
SfxPoolItem * Svx3DCloseBackItem::Clone(SfxItemPool *) const
{
return new Svx3DCloseBackItem(*this);
diff --git a/svx/source/items/algitem.cxx b/svx/source/items/algitem.cxx
index 4d9a7baecebd..ef11c6a9408b 100644
--- a/svx/source/items/algitem.cxx
+++ b/svx/source/items/algitem.cxx
@@ -133,14 +133,6 @@ SfxPoolItem* SvxOrientationItem::Clone( SfxItemPool* ) const
}
-SfxPoolItem* SvxOrientationItem::Create( SvStream& rStream, sal_uInt16 ) const
-{
- sal_uInt16 nVal;
- rStream.ReadUInt16( nVal );
- return new SvxOrientationItem( static_cast<SvxCellOrientation>(nVal), Which() );
-}
-
-
sal_uInt16 SvxOrientationItem::GetValueCount() const
{
return static_cast<sal_uInt16>(SvxCellOrientation::Stacked) + 1; // last enum value + 1
@@ -256,30 +248,6 @@ SfxPoolItem* SvxMarginItem::Clone( SfxItemPool* ) const
}
-SfxPoolItem* SvxMarginItem::Create( SvStream& rStream, sal_uInt16 ) const
-{
- sal_Int16 nLeft;
- sal_Int16 nTop;
- sal_Int16 nRight;
- sal_Int16 nBottom;
- rStream.ReadInt16( nLeft );
- rStream.ReadInt16( nTop );
- rStream.ReadInt16( nRight );
- rStream.ReadInt16( nBottom );
- return new SvxMarginItem( nLeft, nTop, nRight, nBottom, Which() );
-}
-
-
-SvStream& SvxMarginItem::Store( SvStream &rStream, sal_uInt16 /*nItemVersion*/) const
-{
- rStream.WriteInt16( nLeftMargin );
- rStream.WriteInt16( nTopMargin );
- rStream.WriteInt16( nRightMargin );
- rStream.WriteInt16( nBottomMargin );
- return rStream;
-}
-
-
bool SvxMarginItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
{
bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
diff --git a/svx/source/items/autoformathelper.cxx b/svx/source/items/autoformathelper.cxx
new file mode 100755
index 000000000000..1304ab0a25a6
--- /dev/null
+++ b/svx/source/items/autoformathelper.cxx
@@ -0,0 +1,380 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <svx/autoformathelper.hxx>
+#include <tools/stream.hxx>
+#include <svl/legacyitem.hxx>
+#include <editeng/legacyitem.hxx>
+#include <svx/legacyitem.hxx>
+#include <editeng/fontitem.hxx>
+#include <editeng/fhgtitem.hxx>
+#include <editeng/wghtitem.hxx>
+#include <editeng/postitem.hxx>
+#include <editeng/udlnitem.hxx>
+#include <editeng/crossedoutitem.hxx>
+#include <editeng/contouritem.hxx>
+#include <editeng/shdditem.hxx>
+#include <editeng/colritem.hxx>
+#include <editeng/boxitem.hxx>
+#include <editeng/lineitem.hxx>
+#include <editeng/brushitem.hxx>
+#include <editeng/adjustitem.hxx>
+#include <editeng/justifyitem.hxx>
+#include <svl/eitem.hxx>
+#include <svx/algitem.hxx>
+#include <svl/intitem.hxx>
+#include <svx/rotmodit.hxx>
+#include <osl/thread.h>
+
+//////////////////////////////////////////////////////////////////////////////
+
+AutoFormatVersions::AutoFormatVersions()
+: nFontVersion(0),
+ nFontHeightVersion(0),
+ nWeightVersion(0),
+ nPostureVersion(0),
+ nUnderlineVersion(0),
+ nOverlineVersion(0),
+ nCrossedOutVersion(0),
+ nContourVersion(0),
+ nShadowedVersion(0),
+ nColorVersion(0),
+ nBoxVersion(0),
+ nLineVersion(0),
+ nBrushVersion(0),
+ nAdjustVersion(0),
+ nHorJustifyVersion(0),
+ nVerJustifyVersion(0),
+ nOrientationVersion(0),
+ nMarginVersion(0),
+ nBoolVersion(0),
+ nInt32Version(0),
+ nRotateModeVersion(0),
+ nNumFormatVersion(0)
+{
+}
+
+const sal_uInt16 AUTOFORMAT_ID_300OVRLN = 10031;
+const sal_uInt16 AUTOFORMAT_ID_680DR14 = 10011;
+const sal_uInt16 AUTOFORMAT_ID_504 = 9801;
+
+void AutoFormatVersions::LoadBlockA( SvStream& rStream, sal_uInt16 nVer )
+{
+ rStream.ReadUInt16( nFontVersion );
+ rStream.ReadUInt16( nFontHeightVersion );
+ rStream.ReadUInt16( nWeightVersion );
+ rStream.ReadUInt16( nPostureVersion );
+ rStream.ReadUInt16( nUnderlineVersion );
+ if ( nVer >= AUTOFORMAT_ID_300OVRLN )
+ rStream.ReadUInt16( nOverlineVersion );
+ rStream.ReadUInt16( nCrossedOutVersion );
+ rStream.ReadUInt16( nContourVersion );
+ rStream.ReadUInt16( nShadowedVersion );
+ rStream.ReadUInt16( nColorVersion );
+ rStream.ReadUInt16( nBoxVersion );
+ if ( nVer >= AUTOFORMAT_ID_680DR14 )
+ rStream.ReadUInt16( nLineVersion );
+ rStream.ReadUInt16( nBrushVersion );
+ rStream.ReadUInt16( nAdjustVersion );
+}
+
+void AutoFormatVersions::LoadBlockB( SvStream& rStream, sal_uInt16 nVer )
+{
+ rStream.ReadUInt16( nHorJustifyVersion );
+ rStream.ReadUInt16( nVerJustifyVersion );
+ rStream.ReadUInt16( nOrientationVersion );
+ rStream.ReadUInt16( nMarginVersion );
+ rStream.ReadUInt16( nBoolVersion );
+ if ( nVer >= AUTOFORMAT_ID_504 )
+ {
+ rStream.ReadUInt16( nInt32Version );
+ rStream.ReadUInt16( nRotateModeVersion );
+ }
+ rStream.ReadUInt16( nNumFormatVersion );
+}
+
+void AutoFormatVersions::WriteBlockA(SvStream& rStream, sal_uInt16 fileVersion)
+{
+ rStream.WriteUInt16(legacy::SvxFont::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxFontHeight::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxWeight::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxPosture::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxTextLine::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxTextLine::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxCrossedOut::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SfxBool::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SfxBool::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxColor::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxBox::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxLine::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxBrush::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxAdjust::GetVersion(fileVersion));
+}
+
+void AutoFormatVersions::WriteBlockB(SvStream& rStream, sal_uInt16 fileVersion)
+{
+ rStream.WriteUInt16(legacy::SvxHorJustify::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxVerJustify::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxOrientation::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxMargin::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SfxBool::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::CntInt32::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SvxRotateMode::GetVersion(fileVersion));
+ rStream.WriteUInt16( 0 ); // NumberFormat
+}
+
+//////////////////////////////////////////////////////////////////////////////
+
+void AutoFormatBase::SetFont( const SvxFontItem& rNew ) { m_aFont.reset(static_cast<SvxFontItem*>(rNew.Clone())); }
+void AutoFormatBase::SetHeight( const SvxFontHeightItem& rNew ) { m_aHeight.reset(static_cast<SvxFontHeightItem*>(rNew.Clone())); }
+void AutoFormatBase::SetWeight( const SvxWeightItem& rNew ) { m_aWeight.reset(static_cast<SvxWeightItem*>(rNew.Clone())); }
+void AutoFormatBase::SetPosture( const SvxPostureItem& rNew ) { m_aPosture.reset(static_cast<SvxPostureItem*>(rNew.Clone())); }
+void AutoFormatBase::SetCJKFont( const SvxFontItem& rNew ) { m_aCJKFont.reset(static_cast<SvxFontItem*>(rNew.Clone())); }
+void AutoFormatBase::SetCJKHeight( const SvxFontHeightItem& rNew ) { m_aCJKHeight.reset(static_cast<SvxFontHeightItem*>(rNew.Clone())); }
+void AutoFormatBase::SetCJKWeight( const SvxWeightItem& rNew ) { m_aCJKWeight.reset(static_cast<SvxWeightItem*>(rNew.Clone())); }
+void AutoFormatBase::SetCJKPosture( const SvxPostureItem& rNew ) { m_aCJKPosture.reset(static_cast<SvxPostureItem*>(rNew.Clone())); }
+void AutoFormatBase::SetCTLFont( const SvxFontItem& rNew ) { m_aCTLFont.reset(static_cast<SvxFontItem*>(rNew.Clone())); }
+void AutoFormatBase::SetCTLHeight( const SvxFontHeightItem& rNew ) { m_aCTLHeight.reset(static_cast<SvxFontHeightItem*>(rNew.Clone())); }
+void AutoFormatBase::SetCTLWeight( const SvxWeightItem& rNew ) { m_aCTLWeight.reset(static_cast<SvxWeightItem*>(rNew.Clone())); }
+void AutoFormatBase::SetCTLPosture( const SvxPostureItem& rNew ) { m_aCTLPosture.reset(static_cast<SvxPostureItem*>(rNew.Clone())); }
+void AutoFormatBase::SetUnderline( const SvxUnderlineItem& rNew ) { m_aUnderline.reset(static_cast<SvxUnderlineItem*>(rNew.Clone())); }
+void AutoFormatBase::SetOverline( const SvxOverlineItem& rNew ) { m_aOverline.reset(static_cast<SvxOverlineItem*>(rNew.Clone())); }
+void AutoFormatBase::SetCrossedOut( const SvxCrossedOutItem& rNew ) { m_aCrossedOut.reset(static_cast<SvxCrossedOutItem*>(rNew.Clone())); }
+void AutoFormatBase::SetContour( const SvxContourItem& rNew ) { m_aContour.reset(static_cast<SvxContourItem*>(rNew.Clone())); }
+void AutoFormatBase::SetShadowed( const SvxShadowedItem& rNew ) { m_aShadowed.reset(static_cast<SvxShadowedItem*>(rNew.Clone())); }
+void AutoFormatBase::SetColor( const SvxColorItem& rNew ) { m_aColor.reset(static_cast<SvxColorItem*>(rNew.Clone())); }
+void AutoFormatBase::SetBox( const SvxBoxItem& rNew ) { m_aBox.reset(static_cast<SvxBoxItem*>(rNew.Clone())); }
+void AutoFormatBase::SetTLBR( const SvxLineItem& rNew ) { m_aTLBR.reset(static_cast<SvxLineItem*>(rNew.Clone())); }
+void AutoFormatBase::SetBLTR( const SvxLineItem& rNew ) { m_aBLTR.reset(static_cast<SvxLineItem*>(rNew.Clone())); }
+void AutoFormatBase::SetBackground( const SvxBrushItem& rNew ) { m_aBackground.reset(static_cast<SvxBrushItem*>(rNew.Clone())); }
+void AutoFormatBase::SetAdjust( const SvxAdjustItem& rNew ) { m_aAdjust.reset(static_cast<SvxAdjustItem*>(rNew.Clone())); }
+void AutoFormatBase::SetHorJustify( const SvxHorJustifyItem& rNew ) { m_aHorJustify.reset(static_cast<SvxHorJustifyItem*>(rNew.Clone())); }
+void AutoFormatBase::SetVerJustify( const SvxVerJustifyItem& rNew ) { m_aVerJustify.reset(static_cast<SvxVerJustifyItem*>(rNew.Clone())); }
+void AutoFormatBase::SetStacked( const SfxBoolItem& rNew ) { m_aStacked.reset(static_cast<SfxBoolItem*>(rNew.Clone())); }
+void AutoFormatBase::SetMargin( const SvxMarginItem& rNew ) { m_aMargin.reset(static_cast<SvxMarginItem*>(rNew.Clone())); }
+void AutoFormatBase::SetLinebreak( const SfxBoolItem& rNew ) { m_aLinebreak.reset(static_cast<SfxBoolItem*>(rNew.Clone())); }
+void AutoFormatBase::SetRotateAngle( const SfxInt32Item& rNew ) { m_aRotateAngle.reset(static_cast<SfxInt32Item*>(rNew.Clone())); }
+void AutoFormatBase::SetRotateMode( const SvxRotateModeItem& rNew ) { m_aRotateMode.reset(static_cast<SvxRotateModeItem*>(rNew.Clone())); }
+
+AutoFormatBase::AutoFormatBase()
+: m_aFont(),
+ m_aHeight(),
+ m_aWeight(),
+ m_aPosture(),
+ m_aCJKFont(),
+ m_aCJKHeight(),
+ m_aCJKWeight(),
+ m_aCJKPosture(),
+ m_aCTLFont(),
+ m_aCTLHeight(),
+ m_aCTLWeight(),
+ m_aCTLPosture(),
+ m_aUnderline(),
+ m_aOverline(),
+ m_aCrossedOut(),
+ m_aContour(),
+ m_aShadowed(),
+ m_aColor(),
+ m_aBox(),
+ m_aTLBR(),
+ m_aBLTR(),
+ m_aBackground(),
+ m_aAdjust(),
+ m_aHorJustify(),
+ m_aVerJustify(),
+ m_aStacked(),
+ m_aMargin(),
+ m_aLinebreak(),
+ m_aRotateAngle(),
+ m_aRotateMode()
+{
+}
+
+AutoFormatBase::AutoFormatBase( const AutoFormatBase& rNew )
+: m_aFont(static_cast<SvxFontItem*>(rNew.m_aFont->Clone())),
+ m_aHeight(static_cast<SvxFontHeightItem*>(rNew.m_aHeight->Clone())),
+ m_aWeight(static_cast<SvxWeightItem*>(rNew.m_aWeight->Clone())),
+ m_aPosture(static_cast<SvxPostureItem*>(rNew.m_aPosture->Clone())),
+ m_aCJKFont(static_cast<SvxFontItem*>(rNew.m_aCJKFont->Clone())),
+ m_aCJKHeight(static_cast<SvxFontHeightItem*>(rNew.m_aCJKHeight->Clone())),
+ m_aCJKWeight(static_cast<SvxWeightItem*>(rNew.m_aCJKWeight->Clone())),
+ m_aCJKPosture(static_cast<SvxPostureItem*>(rNew.m_aCJKPosture->Clone())),
+ m_aCTLFont(static_cast<SvxFontItem*>(rNew.m_aCTLFont->Clone())),
+ m_aCTLHeight(static_cast<SvxFontHeightItem*>(rNew.m_aCTLHeight->Clone())),
+ m_aCTLWeight(static_cast<SvxWeightItem*>(rNew.m_aCTLWeight->Clone())),
+ m_aCTLPosture(static_cast<SvxPostureItem*>(rNew.m_aCTLPosture->Clone())),
+ m_aUnderline(static_cast<SvxUnderlineItem*>(rNew.m_aUnderline->Clone())),
+ m_aOverline(static_cast<SvxOverlineItem*>(rNew.m_aOverline->Clone())),
+ m_aCrossedOut(static_cast<SvxCrossedOutItem*>(rNew.m_aCrossedOut->Clone())),
+ m_aContour(static_cast<SvxContourItem*>(rNew.m_aContour->Clone())),
+ m_aShadowed(static_cast<SvxShadowedItem*>(rNew.m_aShadowed->Clone())),
+ m_aColor(static_cast<SvxColorItem*>(rNew.m_aColor->Clone())),
+ m_aBox(static_cast<SvxBoxItem*>(rNew.m_aBox->Clone())),
+ m_aTLBR(static_cast<SvxLineItem*>(rNew.m_aTLBR->Clone())),
+ m_aBLTR(static_cast<SvxLineItem*>(rNew.m_aBLTR->Clone())),
+ m_aBackground(static_cast<SvxBrushItem*>(rNew.m_aBackground->Clone())),
+ m_aAdjust(static_cast<SvxAdjustItem*>(rNew.m_aAdjust->Clone())),
+ m_aHorJustify(static_cast<SvxHorJustifyItem*>(rNew.m_aHorJustify->Clone())),
+ m_aVerJustify(static_cast<SvxVerJustifyItem*>(rNew.m_aVerJustify->Clone())),
+ m_aStacked(static_cast<SfxBoolItem*>(rNew.m_aStacked->Clone())),
+ m_aMargin(static_cast<SvxMarginItem*>(rNew.m_aMargin->Clone())),
+ m_aLinebreak(static_cast<SfxBoolItem*>(rNew.m_aLinebreak->Clone())),
+ m_aRotateAngle(static_cast<SfxInt32Item*>(rNew.m_aRotateAngle->Clone())),
+ m_aRotateMode(static_cast<SvxRotateModeItem*>(rNew.m_aRotateMode->Clone()))
+{
+}
+
+AutoFormatBase::~AutoFormatBase()
+{
+}
+
+const sal_uInt16 AUTOFORMAT_DATA_ID_641 = 10002;
+const sal_uInt16 AUTOFORMAT_DATA_ID_300OVRLN = 10032;
+const sal_uInt16 AUTOFORMAT_DATA_ID_680DR14 = 10012;
+const sal_uInt16 AUTOFORMAT_DATA_ID_504 = 9802;
+
+bool AutoFormatBase::LoadBlockA( SvStream& rStream, const AutoFormatVersions& rVersions, sal_uInt16 nVer )
+{
+ legacy::SvxFont::Create(*m_aFont, rStream, rVersions.nFontVersion);
+
+ if( rStream.GetStreamCharSet() == m_aFont->GetCharSet() )
+ {
+ m_aFont->SetCharSet(::osl_getThreadTextEncoding());
+ }
+
+ legacy::SvxFontHeight::Create(*m_aHeight, rStream, rVersions.nFontHeightVersion);
+ legacy::SvxWeight::Create(*m_aWeight, rStream, rVersions.nWeightVersion);
+ legacy::SvxPosture::Create(*m_aPosture, rStream, rVersions.nPostureVersion);
+
+ // --- from 641 on: CJK and CTL font settings
+ if( AUTOFORMAT_DATA_ID_641 <= nVer )
+ {
+ legacy::SvxFont::Create(*m_aCJKFont, rStream, rVersions.nFontVersion);
+ legacy::SvxFontHeight::Create(*m_aCJKHeight, rStream, rVersions.nFontHeightVersion);
+ legacy::SvxWeight::Create(*m_aCJKWeight, rStream, rVersions.nWeightVersion);
+ legacy::SvxPosture::Create(*m_aCJKPosture, rStream, rVersions.nPostureVersion);
+
+ legacy::SvxFont::Create(*m_aCTLFont, rStream, rVersions.nFontVersion);
+ legacy::SvxFontHeight::Create(*m_aCTLHeight, rStream, rVersions.nFontHeightVersion);
+ legacy::SvxWeight::Create(*m_aCTLWeight, rStream, rVersions.nWeightVersion);
+ legacy::SvxPosture::Create(*m_aCTLPosture, rStream, rVersions.nPostureVersion);
+ }
+
+ legacy::SvxTextLine::Create(*m_aUnderline, rStream, rVersions.nUnderlineVersion);
+
+ if( nVer >= AUTOFORMAT_DATA_ID_300OVRLN )
+ {
+ legacy::SvxTextLine::Create(*m_aOverline, rStream, rVersions.nOverlineVersion);
+ }
+
+ legacy::SvxCrossedOut::Create(*m_aCrossedOut, rStream, rVersions.nCrossedOutVersion);
+ legacy::SfxBool::Create(*m_aContour, rStream, rVersions.nContourVersion);
+ legacy::SfxBool::Create(*m_aShadowed, rStream, rVersions.nShadowedVersion);
+ legacy::SvxColor::Create(*m_aColor, rStream, rVersions.nColorVersion);
+ legacy::SvxBox::Create(*m_aBox, rStream, rVersions.nBoxVersion);
+
+ // --- from 680/dr14 on: diagonal frame lines
+ if( nVer >= AUTOFORMAT_DATA_ID_680DR14 )
+ {
+ legacy::SvxLine::Create(*m_aTLBR, rStream, rVersions.nLineVersion);
+ legacy::SvxLine::Create(*m_aBLTR, rStream, rVersions.nLineVersion);
+ }
+
+ legacy::SvxBrush::Create(*m_aBackground, rStream, rVersions.nBrushVersion);
+ legacy::SvxAdjust::Create(*m_aAdjust, rStream, rVersions.nAdjustVersion);
+
+ return ERRCODE_NONE == rStream.GetError();
+}
+
+bool AutoFormatBase::LoadBlockB( SvStream& rStream, const AutoFormatVersions& rVersions, sal_uInt16 nVer )
+{
+ legacy::SvxHorJustify::Create(*m_aHorJustify, rStream, rVersions.nHorJustifyVersion);
+ legacy::SvxVerJustify::Create(*m_aVerJustify, rStream, rVersions.nVerJustifyVersion);
+ SvxOrientationItem aOrientation( SvxCellOrientation::Standard, 0);
+ legacy::SvxOrientation::Create(aOrientation, rStream, rVersions.nOrientationVersion);
+ legacy::SvxMargin::Create(*m_aMargin, rStream, rVersions.nMarginVersion);
+ legacy::SfxBool::Create(*m_aLinebreak, rStream, rVersions.nBoolVersion);
+
+ if ( nVer >= AUTOFORMAT_DATA_ID_504 )
+ {
+ legacy::CntInt32::Create(*m_aRotateAngle, rStream, rVersions.nInt32Version);
+ legacy::SvxRotateMode::Create(*m_aRotateMode, rStream, rVersions.nRotateModeVersion);
+ }
+
+ m_aStacked->SetValue( aOrientation.IsStacked() );
+ m_aRotateAngle->SetValue( aOrientation.GetRotation( m_aRotateAngle->GetValue() ) );
+
+ return ERRCODE_NONE == rStream.GetError();
+}
+
+bool AutoFormatBase::SaveBlockA( SvStream& rStream, sal_uInt16 fileVersion ) const
+{
+ legacy::SvxFont::Store(*m_aFont, rStream, legacy::SvxFont::GetVersion(fileVersion));
+ legacy::SvxFontHeight::Store(*m_aHeight, rStream, legacy::SvxFontHeight::GetVersion(fileVersion));
+ legacy::SvxWeight::Store(*m_aWeight, rStream, legacy::SvxWeight::GetVersion(fileVersion));
+ legacy::SvxPosture::Store(*m_aPosture, rStream, legacy::SvxPosture::GetVersion(fileVersion));
+
+ // --- from 641 on: CJK and CTL font settings
+ legacy::SvxFont::Store(*m_aCJKFont, rStream, legacy::SvxFont::GetVersion(fileVersion));
+ legacy::SvxFontHeight::Store(*m_aCJKHeight, rStream, legacy::SvxFontHeight::GetVersion(fileVersion));
+ legacy::SvxWeight::Store(*m_aCJKWeight, rStream, legacy::SvxWeight::GetVersion(fileVersion));
+ legacy::SvxPosture::Store(*m_aCJKPosture, rStream, legacy::SvxPosture::GetVersion(fileVersion));
+
+ legacy::SvxFont::Store(*m_aCTLFont, rStream, legacy::SvxFont::GetVersion(fileVersion));
+ legacy::SvxFontHeight::Store(*m_aCTLHeight, rStream, legacy::SvxFontHeight::GetVersion(fileVersion));
+ legacy::SvxWeight::Store(*m_aCTLWeight, rStream, legacy::SvxWeight::GetVersion(fileVersion));
+ legacy::SvxPosture::Store(*m_aCTLPosture, rStream, legacy::SvxPosture::GetVersion(fileVersion));
+
+ legacy::SvxTextLine::Store(*m_aUnderline, rStream, legacy::SvxTextLine::GetVersion(fileVersion));
+
+ // --- from DEV300/overline2 on: overline support
+ legacy::SvxTextLine::Store(*m_aOverline, rStream, legacy::SvxTextLine::GetVersion(fileVersion));
+ legacy::SvxCrossedOut::Store(*m_aCrossedOut, rStream, legacy::SvxCrossedOut::GetVersion(fileVersion));
+ legacy::SfxBool::Store(*m_aContour, rStream, legacy::SfxBool::GetVersion(fileVersion));
+ legacy::SfxBool::Store(*m_aShadowed, rStream, legacy::SfxBool::GetVersion(fileVersion));
+ legacy::SvxColor::Store(*m_aColor, rStream, legacy::SvxColor::GetVersion(fileVersion));
+ legacy::SvxBox::Store(*m_aBox, rStream, legacy::SvxBox::GetVersion(fileVersion));
+
+ // --- from 680/dr14 on: diagonal frame lines
+ legacy::SvxLine::Store(*m_aTLBR, rStream, legacy::SvxLine::GetVersion(fileVersion));
+ legacy::SvxLine::Store(*m_aBLTR, rStream, legacy::SvxLine::GetVersion(fileVersion));
+ legacy::SvxBrush::Store(*m_aBackground, rStream, legacy::SvxBrush::GetVersion(fileVersion));
+ legacy::SvxAdjust::Store(*m_aAdjust, rStream, legacy::SvxAdjust::GetVersion(fileVersion));
+
+ return ERRCODE_NONE == rStream.GetError();
+}
+
+bool AutoFormatBase::SaveBlockB( SvStream& rStream, sal_uInt16 fileVersion ) const
+{
+ legacy::SvxHorJustify::Store(*m_aHorJustify, rStream, legacy::SvxHorJustify::GetVersion(fileVersion));
+ legacy::SvxVerJustify::Store(*m_aVerJustify, rStream, legacy::SvxVerJustify::GetVersion(fileVersion));
+ SvxOrientationItem aOrientation( m_aRotateAngle->GetValue(), m_aStacked->GetValue(), 0 );
+ legacy::SvxOrientation::Store(aOrientation, rStream, legacy::SvxOrientation::GetVersion(fileVersion));
+ legacy::SvxMargin::Store(*m_aMargin, rStream, legacy::SvxMargin::GetVersion(fileVersion));
+ legacy::SfxBool::Store(*m_aLinebreak, rStream, legacy::SfxBool::GetVersion(fileVersion));
+
+ // Calc Rotation from SO5
+ legacy::CntInt32::Store(*m_aRotateAngle, rStream, legacy::CntInt32::GetVersion(fileVersion));
+ legacy::SvxRotateMode::Store(*m_aRotateMode, rStream, legacy::SvxRotateMode::GetVersion(fileVersion));
+
+ return ERRCODE_NONE == rStream.GetError();
+}
+
+//////////////////////////////////////////////////////////////////////////////
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/items/chrtitem.cxx b/svx/source/items/chrtitem.cxx
index f4479727fa9b..5c128c6806a9 100644
--- a/svx/source/items/chrtitem.cxx
+++ b/svx/source/items/chrtitem.cxx
@@ -162,13 +162,6 @@ SfxPoolItem* SvxChartKindErrorItem::Clone(SfxItemPool* /*pPool*/) const
}
-sal_uInt16 SvxChartKindErrorItem::GetVersion (sal_uInt16 nFileFormatVersion) const
-{
- return (nFileFormatVersion == SOFFICE_FILEFORMAT_31)
- ? USHRT_MAX
- : 0;
-}
-
SvxChartIndicateItem::SvxChartIndicateItem(SvxChartIndicate eOrient,
sal_uInt16 nId) :
SfxEnumItem(nId, eOrient)
@@ -182,13 +175,6 @@ SfxPoolItem* SvxChartIndicateItem::Clone(SfxItemPool* /*pPool*/) const
}
-sal_uInt16 SvxChartIndicateItem::GetVersion (sal_uInt16 nFileFormatVersion) const
-{
- return (nFileFormatVersion == SOFFICE_FILEFORMAT_31)
- ? USHRT_MAX
- : 0;
-}
-
SvxChartRegressItem::SvxChartRegressItem(SvxChartRegress eOrient,
sal_uInt16 nId) :
SfxEnumItem(nId, eOrient)
@@ -202,12 +188,4 @@ SfxPoolItem* SvxChartRegressItem::Clone(SfxItemPool* /*pPool*/) const
}
-sal_uInt16 SvxChartRegressItem::GetVersion (sal_uInt16 nFileFormatVersion) const
-{
- return (nFileFormatVersion == SOFFICE_FILEFORMAT_31)
- ? USHRT_MAX
- : 0;
-}
-
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/items/customshapeitem.cxx b/svx/source/items/customshapeitem.cxx
index fba55040dc37..329c2f09b7e0 100644
--- a/svx/source/items/customshapeitem.cxx
+++ b/svx/source/items/customshapeitem.cxx
@@ -265,15 +265,12 @@ SfxPoolItem* SdrCustomShapeGeometryItem::Clone( SfxItemPool * /*pPool*/ ) const
return new SdrCustomShapeGeometryItem( aPropSeq );
}
-sal_uInt16 SdrCustomShapeGeometryItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/ ) const
-{
- return 1;
-}
bool SdrCustomShapeGeometryItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const
{
rVal <<= aPropSeq;
return true;
}
+
bool SdrCustomShapeGeometryItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/ )
{
if ( ! ( rVal >>= aPropSeq ) )
diff --git a/svx/source/items/e3ditem.cxx b/svx/source/items/e3ditem.cxx
index 86f749c6eaab..1c83aa408f33 100644
--- a/svx/source/items/e3ditem.cxx
+++ b/svx/source/items/e3ditem.cxx
@@ -94,11 +94,6 @@ bool SvxB3DVectorItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/ )
}
-sal_uInt16 SvxB3DVectorItem::GetVersion (sal_uInt16 nFileFormatVersion) const
-{
- return (nFileFormatVersion == SOFFICE_FILEFORMAT_31) ? USHRT_MAX : 0;
-}
-
void SvxB3DVectorItem::dumpAsXml(xmlTextWriterPtr pWriter) const
{
xmlTextWriterStartElement(pWriter, BAD_CAST("SvxB3DVectorItem"));
diff --git a/svx/source/items/legacyitem.cxx b/svx/source/items/legacyitem.cxx
new file mode 100755
index 000000000000..005f97d2d95b
--- /dev/null
+++ b/svx/source/items/legacyitem.cxx
@@ -0,0 +1,105 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <svx/legacyitem.hxx>
+#include <tools/stream.hxx>
+#include <svx/algitem.hxx>
+#include <svx/rotmodit.hxx>
+
+namespace legacy
+{
+ namespace SvxOrientation
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxOrientationItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt16 nVal(0);
+ rStrm.ReadUInt16( nVal );
+ rItem.SetValue(static_cast<::SvxCellOrientation>(nVal));
+ }
+
+ SvStream& Store(const SvxOrientationItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteUInt16( static_cast<sal_uInt16>(rItem.GetValue()) );
+ return rStrm;
+ }
+ }
+
+ namespace SvxMargin
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxMarginItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_Int16 nLeft(0);
+ sal_Int16 nTop(0);
+ sal_Int16 nRight(0);
+ sal_Int16 nBottom(0);
+
+ rStrm.ReadInt16( nLeft );
+ rStrm.ReadInt16( nTop );
+ rStrm.ReadInt16( nRight );
+ rStrm.ReadInt16( nBottom );
+
+ rItem.SetLeftMargin(nLeft);
+ rItem.SetTopMargin(nTop);
+ rItem.SetRightMargin(nRight);
+ rItem.SetBottomMargin(nBottom);
+ }
+
+ SvStream& Store(const SvxMarginItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteInt16( rItem.GetLeftMargin() );
+ rStrm.WriteInt16( rItem.GetTopMargin() );
+ rStrm.WriteInt16( rItem.GetRightMargin() );
+ rStrm.WriteInt16( rItem.GetBottomMargin() );
+ return rStrm;
+ }
+ }
+
+ namespace SvxRotateMode
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SvxRotateModeItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ sal_uInt16 nVal(0);
+ rStrm.ReadUInt16( nVal );
+ rItem.SetValue(static_cast<::SvxRotateMode>(nVal));
+ }
+
+ SvStream& Store(const SvxRotateModeItem& rItem, SvStream& rStrm, sal_uInt16)
+ {
+ rStrm.WriteUInt16( static_cast<sal_uInt16>(rItem.GetValue()) );
+ return rStrm;
+ }
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/items/rotmodit.cxx b/svx/source/items/rotmodit.cxx
index bf147b2aa2d6..274a01d46160 100644
--- a/svx/source/items/rotmodit.cxx
+++ b/svx/source/items/rotmodit.cxx
@@ -56,13 +56,6 @@ SvxRotateModeItem::~SvxRotateModeItem()
{
}
-SfxPoolItem* SvxRotateModeItem::Create( SvStream& rStream, sal_uInt16 ) const
-{
- sal_uInt16 nVal;
- rStream.ReadUInt16( nVal );
- return new SvxRotateModeItem( static_cast<SvxRotateMode>(nVal),Which() );
-}
-
bool SvxRotateModeItem::GetPresentation(
SfxItemPresentation ePres,
MapUnit /*eCoreUnit*/, MapUnit /*ePresUnit*/,
@@ -96,11 +89,6 @@ SfxPoolItem* SvxRotateModeItem::Clone( SfxItemPool* ) const
return new SvxRotateModeItem( *this );
}
-sal_uInt16 SvxRotateModeItem::GetVersion( sal_uInt16 /*nFileVersion*/ ) const
-{
- return 0;
-}
-
bool SvxRotateModeItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) const
{
sal_Int32 nUno = table::CellVertJustify2::STANDARD;
diff --git a/svx/source/svdraw/svdattr.cxx b/svx/source/svdraw/svdattr.cxx
index c99b7e2ce467..5223c72e6889 100644
--- a/svx/source/svdraw/svdattr.cxx
+++ b/svx/source/svdraw/svdattr.cxx
@@ -1335,10 +1335,7 @@ SfxPoolItem* SdrTextFixedCellHeightItem::Clone( SfxItemPool * /*pPool*/) const
{
return new SdrTextFixedCellHeightItem( GetValue() );
}
-sal_uInt16 SdrTextFixedCellHeightItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 1;
-}
+
bool SdrTextFixedCellHeightItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
{
bool bValue = GetValue();
@@ -1938,11 +1935,6 @@ SfxPoolItem* SdrGrafCropItem::Clone( SfxItemPool* /*pPool*/) const
return new SdrGrafCropItem( *this );
}
-sal_uInt16 SdrGrafCropItem::GetVersion( sal_uInt16 /*nFileVersion*/) const
-{
- // GRFCROP_VERSION_MOVETOSVX is 1
- return GRFCROP_VERSION_MOVETOSVX;
-}
SdrTextAniStartInsideItem::~SdrTextAniStartInsideItem()
{
}
diff --git a/svx/source/unodraw/unobrushitemhelper.cxx b/svx/source/unodraw/unobrushitemhelper.cxx
index 7f8738d0f6ba..d465036d1edf 100644
--- a/svx/source/unodraw/unobrushitemhelper.cxx
+++ b/svx/source/unodraw/unobrushitemhelper.cxx
@@ -172,7 +172,7 @@ static sal_uInt16 getTransparenceForSvxBrushItem(const SfxItemSet& rSourceSet, b
return nFillTransparence;
}
-static SvxBrushItem getSvxBrushItemForSolid(const SfxItemSet& rSourceSet, bool bSearchInParents, sal_uInt16 nBackgroundID)
+static std::shared_ptr<SvxBrushItem> getSvxBrushItemForSolid(const SfxItemSet& rSourceSet, bool bSearchInParents, sal_uInt16 nBackgroundID)
{
Color aFillColor(rSourceSet.Get(XATTR_FILLCOLOR, bSearchInParents).GetColorValue());
@@ -189,10 +189,10 @@ static SvxBrushItem getSvxBrushItemForSolid(const SfxItemSet& rSourceSet, bool b
aFillColor.SetTransparency(aTargetTrans);
}
- return SvxBrushItem(aFillColor, nBackgroundID);
+ return std::shared_ptr<SvxBrushItem>(new SvxBrushItem(aFillColor, nBackgroundID));
}
-SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt16 nBackgroundID, bool bSearchInParents, bool bXMLImportHack)
+std::shared_ptr<SvxBrushItem> getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt16 nBackgroundID, bool bSearchInParents, bool bXMLImportHack)
{
const XFillStyleItem* pXFillStyleItem(rSourceSet.GetItem<XFillStyleItem>(XATTR_FILLSTYLE, bSearchInParents));
@@ -207,10 +207,10 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt
aFillColor.SetTransparency(0xff);
- return SvxBrushItem(aFillColor, nBackgroundID);
+ return std::shared_ptr<SvxBrushItem>(new SvxBrushItem(aFillColor, nBackgroundID));
}
- SvxBrushItem aRetval(nBackgroundID);
+ std::shared_ptr<SvxBrushItem> aRetval(new SvxBrushItem(nBackgroundID));
switch(pXFillStyleItem->GetValue())
{
@@ -249,7 +249,7 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt
aMixedColor.SetTransparency(aTargetTrans);
}
- aRetval = SvxBrushItem(aMixedColor, nBackgroundID);
+ aRetval = std::shared_ptr<SvxBrushItem>(new SvxBrushItem(aMixedColor, nBackgroundID));
break;
}
case drawing::FillStyle_HATCH:
@@ -281,7 +281,7 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt
const sal_uInt8 aTargetTrans(std::min(sal_uInt8(0xfe), static_cast< sal_uInt8 >((nFillTransparence * 254) / 100)));
aHatchColor.SetTransparency(aTargetTrans);
- aRetval = SvxBrushItem(aHatchColor, nBackgroundID);
+ aRetval = std::shared_ptr<SvxBrushItem>(new SvxBrushItem(aHatchColor, nBackgroundID));
}
break;
@@ -324,7 +324,7 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt
}
// create with given graphic and position
- aRetval = SvxBrushItem(aGraphic, aSvxGraphicPosition, nBackgroundID);
+ aRetval = std::shared_ptr<SvxBrushItem>(new SvxBrushItem(aGraphic, aSvxGraphicPosition, nBackgroundID));
// get evtl. mixed transparence
const sal_uInt16 nFillTransparence(getTransparenceForSvxBrushItem(rSourceSet, bSearchInParents));
@@ -332,7 +332,7 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet& rSourceSet, sal_uInt
if(0 != nFillTransparence)
{
// #i125189# nFillTransparence is in range [0..100] and needs to be in [0..100] signed
- aRetval.setGraphicTransparency(static_cast< sal_Int8 >(nFillTransparence));
+ aRetval->setGraphicTransparency(static_cast< sal_Int8 >(nFillTransparence));
}
break;
diff --git a/svx/source/xoutdev/xattr.cxx b/svx/source/xoutdev/xattr.cxx
index 0830a9055f11..db10ce427596 100644
--- a/svx/source/xoutdev/xattr.cxx
+++ b/svx/source/xoutdev/xattr.cxx
@@ -1870,11 +1870,6 @@ SfxPoolItem* XSecondaryFillColorItem::Clone(SfxItemPool* /*pPool*/) const
return new XSecondaryFillColorItem(*this);
}
-sal_uInt16 XSecondaryFillColorItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/ ) const
-{
- return 2;
-}
-
bool XSecondaryFillColorItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -1982,14 +1977,6 @@ const XGradient& XFillGradientItem::GetGradientValue() const // GetValue -> GetG
return aGradient;
}
-sal_uInt16 XFillGradientItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/) const
-{
- // !!! this version number also represents the version number of superclasses
- // !!! (e.g. XFillFloatTransparenceItem); if you make any changes here,
- // !!! the superclass is also affected
- return 1;
-}
-
bool XFillGradientItem::GetPresentation
(
SfxItemPresentation /*ePres*/,
@@ -2283,13 +2270,6 @@ SfxPoolItem* XFillFloatTransparenceItem::Clone( SfxItemPool* /*pPool*/) const
return new XFillFloatTransparenceItem( *this );
}
-sal_uInt16 XFillFloatTransparenceItem::GetVersion( sal_uInt16 nFileFormatVersion ) const
-{
- // !!! if version number of this object must be increased, please !!!
- // !!! increase version number of base class XFillGradientItem !!!
- return XFillGradientItem::GetVersion( nFileFormatVersion );
-}
-
bool XFillFloatTransparenceItem::QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId ) const
{
return XFillGradientItem::QueryValue( rVal, nMemberId );
diff --git a/svx/source/xoutdev/xattr2.cxx b/svx/source/xoutdev/xattr2.cxx
index 54fad1415071..2469c66981b7 100644
--- a/svx/source/xoutdev/xattr2.cxx
+++ b/svx/source/xoutdev/xattr2.cxx
@@ -78,11 +78,6 @@ XLineJointItem::XLineJointItem( css::drawing::LineJoint eLineJoint ) :
{
}
-sal_uInt16 XLineJointItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 1;
-}
-
SfxPoolItem* XLineJointItem::Clone(SfxItemPool* /*pPool*/) const
{
return new XLineJointItem( *this );
@@ -240,11 +235,6 @@ XLineCapItem::XLineCapItem(css::drawing::LineCap eLineCap)
{
}
-sal_uInt16 XLineCapItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 1;
-}
-
SfxPoolItem* XLineCapItem::Clone(SfxItemPool* /*pPool*/) const
{
return new XLineCapItem( *this );
diff --git a/svx/source/xoutdev/xattrbmp.cxx b/svx/source/xoutdev/xattrbmp.cxx
index 9a2d47d631ff..a7b204217638 100644
--- a/svx/source/xoutdev/xattrbmp.cxx
+++ b/svx/source/xoutdev/xattrbmp.cxx
@@ -167,11 +167,6 @@ bool XFillBitmapItem::isPattern() const
return vcl::bitmap::isHistorical8x8(GetGraphicObject().GetGraphic().GetBitmapEx(), aBack, aFront);
}
-sal_uInt16 XFillBitmapItem::GetVersion(sal_uInt16 /*nFileFormatVersion*/) const
-{
- return 2;
-}
-
bool XFillBitmapItem::GetPresentation(
SfxItemPresentation /*ePres*/,
MapUnit /*eCoreUnit*/,
diff --git a/sw/CppunitTest_sw_uiwriter.mk b/sw/CppunitTest_sw_uiwriter.mk
index eaf0b0d15a17..e6867b790b9d 100644
--- a/sw/CppunitTest_sw_uiwriter.mk
+++ b/sw/CppunitTest_sw_uiwriter.mk
@@ -36,6 +36,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sw_uiwriter, \
vcl \
tl \
utl \
+ svx \
))
$(eval $(call gb_CppunitTest_use_externals,sw_uiwriter,\
diff --git a/sw/Library_sw.mk b/sw/Library_sw.mk
index 9f92d20e643f..ededa54c689b 100644
--- a/sw/Library_sw.mk
+++ b/sw/Library_sw.mk
@@ -326,6 +326,7 @@ $(eval $(call gb_Library_add_exception_objects,sw,\
sw/source/core/layout/layact \
sw/source/core/layout/laycache \
sw/source/core/layout/layouter \
+ sw/source/core/layout/legacyitem \
sw/source/core/layout/movedfwdfrmsbyobjpos \
sw/source/core/layout/newfrm \
sw/source/core/layout/objectformatter \
diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index 9bba13ef17be..fd8ab6c58fdd 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -1474,7 +1474,7 @@ public:
/// Call again without bOptimize to ensure equal height in case some row's content didn't fit.
bool BalanceRowHeight( const SwCursor& rCursor, bool bTstOnly, const bool bOptimize );
void SetRowBackground( const SwCursor& rCursor, const SvxBrushItem &rNew );
- static bool GetRowBackground( const SwCursor& rCursor, SvxBrushItem &rToFill );
+ static bool GetRowBackground( const SwCursor& rCursor, std::shared_ptr<SvxBrushItem>& rToFill );
void SetTabBorders( const SwCursor& rCursor, const SfxItemSet& rSet );
void SetTabLineStyle( const SwCursor& rCursor,
const Color* pColor, bool bSetLine,
@@ -1491,7 +1491,7 @@ public:
the values of the same property over any other boxes in the selection; if any value is different from
that of the first box, the property is unset (and false is returned).
*/
- static bool GetBoxAttr( const SwCursor& rCursor, SfxPoolItem &rToFill );
+ static bool GetBoxAttr( const SwCursor& rCursor, std::shared_ptr<SfxPoolItem>& rToFill );
void SetBoxAlign( const SwCursor& rCursor, sal_uInt16 nAlign );
static sal_uInt16 GetBoxAlign( const SwCursor& rCursor );
/// Adjusts selected cell widths in such a way, that their content does not need to be wrapped (if possible).
diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx
index 886cb2d7bf39..4d619d4d65f0 100644
--- a/sw/inc/fesh.hxx
+++ b/sw/inc/fesh.hxx
@@ -665,16 +665,16 @@ public:
void SetTabLineStyle(const Color* pColor, bool bSetLine = false, const editeng::SvxBorderLine* pBorderLine = nullptr);
void SetTabBackground( const SvxBrushItem &rNew );
- void GetTabBackground( SvxBrushItem &rToFill ) const;
+ void GetTabBackground( std::shared_ptr<SvxBrushItem>& rToFill ) const;
void SetBoxBackground( const SvxBrushItem &rNew );
- bool GetBoxBackground( SvxBrushItem &rToFill ) const; ///< FALSE ambiguous.
+ bool GetBoxBackground( std::shared_ptr<SvxBrushItem>& rToFill ) const; ///< FALSE ambiguous.
void SetBoxDirection( const SvxFrameDirectionItem& rNew );
- bool GetBoxDirection( SvxFrameDirectionItem& rToFill ) const; ///< FALSE ambiguous.
+ bool GetBoxDirection( std::shared_ptr<SvxFrameDirectionItem>& rToFill ) const; ///< FALSE ambiguous.
void SetRowBackground( const SvxBrushItem &rNew );
- bool GetRowBackground( SvxBrushItem &rToFill ) const; ///< FALSE ambiguous.
+ bool GetRowBackground( std::shared_ptr<SvxBrushItem>& rToFill ) const; ///< FALSE ambiguous.
SwTab WhichMouseTabCol( const Point &rPt ) const;
void GetTabCols( SwTabCols &rToFill ) const; ///< Info about columns and margins.
diff --git a/sw/inc/fmtornt.hxx b/sw/inc/fmtornt.hxx
index 055db32bade3..24ffdc907e26 100644
--- a/sw/inc/fmtornt.hxx
+++ b/sw/inc/fmtornt.hxx
@@ -38,7 +38,6 @@ class SW_DLLPUBLIC SwFormatVertOrient: public SfxPoolItem
public:
SwFormatVertOrient( SwTwips nY = 0, sal_Int16 eVert = css::text::VertOrientation::NONE,
sal_Int16 eRel = css::text::RelOrientation::PRINT_AREA );
- inline SwFormatVertOrient &operator=( const SwFormatVertOrient &rCpy );
SwFormatVertOrient(SwFormatVertOrient const &) = default; // SfxPoolItem copy function dichotomy
/// "Pure virtual methods" of SfxPoolItem.
@@ -52,9 +51,6 @@ public:
virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override;
virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override;
- SvStream& Store(SvStream &rStream, sal_uInt16 itemVersion) const override;
- SfxPoolItem* Create(SvStream &rStream, sal_uInt16 itemVersion) const override;
-
sal_Int16 GetVertOrient() const { return m_eOrient; }
sal_Int16 GetRelationOrient() const { return m_eRelation; }
void SetVertOrient( sal_Int16 eNew ) { m_eOrient = eNew; }
@@ -75,7 +71,6 @@ class SW_DLLPUBLIC SwFormatHoriOrient: public SfxPoolItem
public:
SwFormatHoriOrient( SwTwips nX = 0, sal_Int16 eHori = css::text::HoriOrientation::NONE,
sal_Int16 eRel = css::text::RelOrientation::PRINT_AREA, bool bPos = false );
- inline SwFormatHoriOrient &operator=( const SwFormatHoriOrient &rCpy );
SwFormatHoriOrient(SwFormatHoriOrient const &) = default; // SfxPoolItem copy function dichotomy
/// "Pure virtual methods" of SfxPoolItem.
@@ -103,22 +98,6 @@ public:
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
-inline SwFormatVertOrient &SwFormatVertOrient::operator=( const SwFormatVertOrient &rCpy )
-{
- m_nYPos = rCpy.GetPos();
- m_eOrient = rCpy.GetVertOrient();
- m_eRelation = rCpy.GetRelationOrient();
- return *this;
-}
-inline SwFormatHoriOrient &SwFormatHoriOrient::operator=( const SwFormatHoriOrient &rCpy )
-{
- m_nXPos = rCpy.GetPos();
- m_eOrient = rCpy.GetHoriOrient();
- m_eRelation = rCpy.GetRelationOrient();
- m_bPosToggle = rCpy.IsPosToggle();
- return *this;
-}
-
inline const SwFormatVertOrient &SwAttrSet::GetVertOrient(bool bInP) const
{ return Get( RES_VERT_ORIENT,bInP); }
inline const SwFormatHoriOrient &SwAttrSet::GetHoriOrient(bool bInP) const
diff --git a/sw/inc/format.hxx b/sw/inc/format.hxx
index cbeda7237f66..849b14d8b688 100644
--- a/sw/inc/format.hxx
+++ b/sw/inc/format.hxx
@@ -96,7 +96,7 @@ public:
}
SfxItemState GetItemState( sal_uInt16 nWhich, bool bSrchInParent = true,
const SfxPoolItem **ppItem = nullptr ) const;
- SfxItemState GetBackgroundState(SvxBrushItem &rItem) const;
+ SfxItemState GetBackgroundState(std::shared_ptr<SvxBrushItem>& rItem) const;
virtual bool SetFormatAttr( const SfxPoolItem& rAttr );
virtual bool SetFormatAttr( const SfxItemSet& rSet );
virtual bool ResetFormatAttr( sal_uInt16 nWhich1, sal_uInt16 nWhich2 = 0 );
@@ -203,7 +203,7 @@ public:
inline const SvxFormatKeepItem &GetKeep( bool = true ) const;
// Create SvxBrushItem for Background fill (partially for backwards compatibility)
- SvxBrushItem makeBackgroundBrushItem( bool = true ) const;
+ std::shared_ptr<SvxBrushItem> makeBackgroundBrushItem( bool = true ) const;
inline const SvxShadowItem &GetShadow( bool = true ) const;
inline const SwFormatPageDesc &GetPageDesc( bool = true ) const;
diff --git a/sw/inc/legacyitem.hxx b/sw/inc/legacyitem.hxx
new file mode 100755
index 000000000000..6df864b9de58
--- /dev/null
+++ b/sw/inc/legacyitem.hxx
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef INCLUDED_SW_LEGACYITEM_HXX
+#define INCLUDED_SW_LEGACYITEM_HXX
+
+#include "swdllapi.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// // sw
+// SwFormatVertOrient m_aVerticalAlignment;
+//////////////////////////////////////////////////////////////////////////////
+
+class SvStream;
+class SwFormatVertOrient;
+
+namespace legacy
+{
+ namespace SwFormatVert
+ {
+ sal_uInt16 SW_DLLPUBLIC GetVersion(sal_uInt16 nFileFormatVersion);
+ void SW_DLLPUBLIC Create(SwFormatVertOrient& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ SW_DLLPUBLIC SvStream& Store(const SwFormatVertOrient& rItem, SvStream& rStrm, sal_uInt16 nItemVersion);
+ }
+}
+
+#endif // INCLUDED_SW_LEGACYITEM_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx
index b8efd5b985af..debe937dd0bf 100644
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@ -486,7 +486,7 @@ public:
SwTwips GetAdditionalIndentForStartingNewList() const;
- void ClearLRSpaceItemDueToListLevelIndents( SvxLRSpaceItem& o_rLRSpaceItem ) const;
+ void ClearLRSpaceItemDueToListLevelIndents( std::shared_ptr<SvxLRSpaceItem>& o_rLRSpaceItem ) const;
/** return left margin for tab stop position calculation
diff --git a/sw/inc/paratr.hxx b/sw/inc/paratr.hxx
index 78c03ff0e2df..a66ec00beebd 100644
--- a/sw/inc/paratr.hxx
+++ b/sw/inc/paratr.hxx
@@ -138,8 +138,6 @@ public:
SwNumRuleItem( const OUString& rRuleName )
: SfxStringItem( RES_PARATR_NUMRULE, rRuleName ) {}
- SwNumRuleItem& operator=( const SwNumRuleItem& rCpy )
- { SetValue( rCpy.GetValue() ); return *this; }
SwNumRuleItem(SwNumRuleItem const &) = default; // SfxPoolItem copy function dichotomy
/// "pure virtual methods" of SfxPoolItem
diff --git a/sw/inc/tblafmt.hxx b/sw/inc/tblafmt.hxx
index 2170091abe5d..8b0320f9f929 100644
--- a/sw/inc/tblafmt.hxx
+++ b/sw/inc/tblafmt.hxx
@@ -49,6 +49,7 @@
#include <editeng/frmdiritem.hxx>
#include <editeng/shaditem.hxx>
#include <svx/rotmodit.hxx>
+#include <svx/autoformathelper.hxx>
#include <svl/intitem.hxx>
#include <editeng/lineitem.hxx>
#include "fmtpdsc.hxx"
@@ -60,125 +61,49 @@ struct SwAfVersions;
class SvNumberFormatter;
class SwTable;
-class SwBoxAutoFormat
+class SwBoxAutoFormat : public AutoFormatBase
{
- // common attributes of Calc and Writer
- // --- from 641 on: CJK and CTL font settings
- SvxFontItem m_aFont;
- SvxFontHeightItem m_aHeight;
- SvxWeightItem m_aWeight;
- SvxPostureItem m_aPosture;
-
- SvxFontItem m_aCJKFont;
- SvxFontHeightItem m_aCJKHeight;
- SvxWeightItem m_aCJKWeight;
- SvxPostureItem m_aCJKPosture;
-
- SvxFontItem m_aCTLFont;
- SvxFontHeightItem m_aCTLHeight;
- SvxWeightItem m_aCTLWeight;
- SvxPostureItem m_aCTLPosture;
-
- SvxUnderlineItem m_aUnderline;
- SvxOverlineItem m_aOverline;
- SvxCrossedOutItem m_aCrossedOut;
- SvxContourItem m_aContour;
- SvxShadowedItem m_aShadowed;
- SvxColorItem m_aColor;
- SvxBoxItem m_aBox;
- SvxLineItem m_aTLBR;
- SvxLineItem m_aBLTR;
- SvxBrushItem m_aBackground;
-
// Writer specific
- SvxAdjustItem m_aAdjust;
- SvxFrameDirectionItem m_aTextOrientation;
- SwFormatVertOrient m_aVerticalAlignment;
-
- // Calc specific
- SvxHorJustifyItem m_aHorJustify;
- SvxVerJustifyItem m_aVerJustify;
- SfxBoolItem m_aStacked;
- SvxMarginItem m_aMargin;
- SfxBoolItem m_aLinebreak;
- SfxInt32Item m_aRotateAngle;
- SvxRotateModeItem m_aRotateMode;
+ std::shared_ptr<SvxFrameDirectionItem> m_aTextOrientation;
+ std::shared_ptr<SwFormatVertOrient> m_aVerticalAlignment;
// number format
- OUString m_sNumFormatString;
- LanguageType m_eSysLanguage, m_eNumFormatLanguage;
+ OUString m_sNumFormatString;
+ LanguageType m_eSysLanguage;
+ LanguageType m_eNumFormatLanguage;
css::uno::WeakReference<css::uno::XInterface> m_wXObject;
- friend class SwDocTest;
public:
SwBoxAutoFormat();
SwBoxAutoFormat( const SwBoxAutoFormat& rNew );
~SwBoxAutoFormat();
- SwBoxAutoFormat& operator=( const SwBoxAutoFormat& rNew );
/// Comparing based of boxes backgrounds.
bool operator==(const SwBoxAutoFormat& rRight);
// The get-methods.
- const SvxFontItem &GetFont() const { return m_aFont; }
- const SvxFontHeightItem &GetHeight() const { return m_aHeight; }
- const SvxWeightItem &GetWeight() const { return m_aWeight; }
- const SvxPostureItem &GetPosture() const { return m_aPosture; }
- const SvxFontItem &GetCJKFont() const { return m_aCJKFont; }
- const SvxFontHeightItem &GetCJKHeight() const { return m_aCJKHeight; }
- const SvxWeightItem &GetCJKWeight() const { return m_aCJKWeight; }
- const SvxPostureItem &GetCJKPosture() const { return m_aCJKPosture; }
- const SvxFontItem &GetCTLFont() const { return m_aCTLFont; }
- const SvxFontHeightItem &GetCTLHeight() const { return m_aCTLHeight; }
- const SvxWeightItem &GetCTLWeight() const { return m_aCTLWeight; }
- const SvxPostureItem &GetCTLPosture() const { return m_aCTLPosture; }
- const SvxUnderlineItem &GetUnderline() const { return m_aUnderline; }
- const SvxOverlineItem &GetOverline() const { return m_aOverline; }
- const SvxCrossedOutItem &GetCrossedOut() const { return m_aCrossedOut; }
- const SvxContourItem &GetContour() const { return m_aContour; }
- const SvxShadowedItem &GetShadowed() const { return m_aShadowed; }
- const SvxColorItem &GetColor() const { return m_aColor; }
- const SvxAdjustItem &GetAdjust() const { return m_aAdjust; }
- const SvxFrameDirectionItem& GetTextOrientation() const { return m_aTextOrientation; }
- const SwFormatVertOrient& GetVerticalAlignment() const { return m_aVerticalAlignment; }
- const SvxBoxItem &GetBox() const { return m_aBox; }
- const SvxBrushItem &GetBackground() const { return m_aBackground; }
+ const SvxFrameDirectionItem& GetTextOrientation() const { return *m_aTextOrientation; }
+ const SwFormatVertOrient& GetVerticalAlignment() const { return *m_aVerticalAlignment; }
+
void GetValueFormat( OUString& rFormat, LanguageType& rLng, LanguageType& rSys ) const
{ rFormat = m_sNumFormatString; rLng = m_eNumFormatLanguage; rSys = m_eSysLanguage; }
+ const OUString& GetNumFormatString() const { return m_sNumFormatString; }
+ const LanguageType& GetSysLanguage() const { return m_eSysLanguage; }
+ const LanguageType& GetNumFormatLanguage() const { return m_eNumFormatLanguage; }
+
// The set-methods.
- void SetFont( const SvxFontItem& rNew ) { m_aFont = rNew; }
- void SetHeight( const SvxFontHeightItem& rNew ) { m_aHeight = rNew; }
- void SetWeight( const SvxWeightItem& rNew ) { m_aWeight = rNew; }
- void SetPosture( const SvxPostureItem& rNew ) { m_aPosture = rNew; }
- void SetCJKFont( const SvxFontItem& rNew ) { m_aCJKFont = rNew; }
- void SetCJKHeight( const SvxFontHeightItem& rNew ) { m_aCJKHeight = rNew; }
- void SetCJKWeight( const SvxWeightItem& rNew ) { m_aCJKWeight = rNew; }
- void SetCJKPosture( const SvxPostureItem& rNew ) { m_aCJKPosture = rNew; }
- void SetCTLFont( const SvxFontItem& rNew ) { m_aCTLFont = rNew; }
- void SetCTLHeight( const SvxFontHeightItem& rNew ) { m_aCTLHeight = rNew; }
- void SetCTLWeight( const SvxWeightItem& rNew ) { m_aCTLWeight = rNew; }
- void SetCTLPosture( const SvxPostureItem& rNew ) { m_aCTLPosture = rNew; }
- void SetUnderline( const SvxUnderlineItem& rNew ) { m_aUnderline = rNew; }
- void SetOverline( const SvxOverlineItem& rNew ) { m_aOverline = rNew; }
- void SetCrossedOut( const SvxCrossedOutItem& rNew ) { m_aCrossedOut = rNew; }
- void SetContour( const SvxContourItem& rNew ) { m_aContour = rNew; }
- void SetShadowed( const SvxShadowedItem& rNew ) { m_aShadowed = rNew; }
- void SetColor( const SvxColorItem& rNew ) { m_aColor = rNew; }
- void SetAdjust( const SvxAdjustItem& rNew )
- {
- m_aAdjust.SetAdjust( rNew.GetAdjust() );
- m_aAdjust.SetOneWord( rNew.GetOneWord() );
- m_aAdjust.SetLastBlock( rNew.GetLastBlock() );
- }
- void SetTextOrientation(const SvxFrameDirectionItem& rNew) { m_aTextOrientation = rNew; }
- void SetVerticalAlignment(const SwFormatVertOrient& rNew) { m_aVerticalAlignment = rNew; }
- void SetBox( const SvxBoxItem& rNew ) { m_aBox = rNew; }
- void SetBackground( const SvxBrushItem& rNew ) { m_aBackground = rNew; }
+ void SetTextOrientation( const SvxFrameDirectionItem& rNew ) { m_aTextOrientation.reset(static_cast<SvxFrameDirectionItem*>(rNew.Clone())); }
+ void SetVerticalAlignment( const SwFormatVertOrient& rNew ) { m_aVerticalAlignment.reset(static_cast<SwFormatVertOrient*>(rNew.Clone())); }
+
void SetValueFormat( const OUString& rFormat, LanguageType eLng, LanguageType eSys )
{ m_sNumFormatString = rFormat; m_eNumFormatLanguage = eLng; m_eSysLanguage = eSys; }
+ void SetNumFormatString(const OUString& rNew) { m_sNumFormatString = rNew; }
+ void SetSysLanguage(const LanguageType& rNew) { m_eSysLanguage = rNew; }
+ void SetNumFormatLanguage(const LanguageType& rNew) { m_eNumFormatLanguage = rNew; }
+
css::uno::WeakReference<css::uno::XInterface> const& GetXObject() const
{ return m_wXObject; }
void SetXObject(css::uno::Reference<css::uno::XInterface> const& xObject)
@@ -186,7 +111,6 @@ public:
bool Load( SvStream& rStream, const SwAfVersions& rVersions, sal_uInt16 nVer );
bool Save( SvStream& rStream, sal_uInt16 fileVersion ) const;
- void SaveVersionNo( SvStream& rStream, sal_uInt16 fileVersion ) const;
};
enum class SwTableAutoFormatUpdateFlags { Char = 1, Box = 2 };
@@ -262,14 +186,14 @@ class SW_DLLPUBLIC SwTableAutoFormat
SwBoxAutoFormat* m_aBoxAutoFormat[ 16 ];
// Writer-specific options
- SvxFormatBreakItem m_aBreak;
+ std::shared_ptr<SvxFormatBreakItem> m_aBreak;
SwFormatPageDesc m_aPageDesc;
- SvxFormatKeepItem m_aKeepWithNextPara;
+ std::shared_ptr<SvxFormatKeepItem> m_aKeepWithNextPara;
sal_uInt16 m_aRepeatHeading;
bool m_bLayoutSplit;
bool m_bRowSplit;
bool m_bCollapsingBorders;
- SvxShadowItem m_aShadow;
+ std::shared_ptr<SvxShadowItem> m_aShadow;
bool m_bHidden;
bool m_bUserDefined;
@@ -280,6 +204,14 @@ public:
SwTableAutoFormat& operator=( const SwTableAutoFormat& rNew );
+ const SvxFormatBreakItem& GetBreak() const { return *m_aBreak; }
+ const SvxFormatKeepItem& GetKeepWithNextPara() const { return *m_aKeepWithNextPara; }
+ const SvxShadowItem& GetShadow() const { return *m_aShadow; }
+
+ void SetBreak(const SvxFormatBreakItem& rNew) { m_aBreak.reset(static_cast<SvxFormatBreakItem*>(rNew.Clone())); }
+ void SetKeepWithNextPara(const SvxFormatKeepItem& rNew) { m_aKeepWithNextPara.reset(static_cast<SvxFormatKeepItem*>(rNew.Clone())); }
+ void SetShadow(const SvxShadowItem& rNew) { m_aShadow.reset(static_cast<SvxShadowItem*>(rNew.Clone())); }
+
void SetBoxFormat( const SwBoxAutoFormat& rNew, sal_uInt8 nPos );
const SwBoxAutoFormat& GetBoxFormat( sal_uInt8 nPos ) const;
SwBoxAutoFormat& GetBoxFormat( sal_uInt8 nPos );
diff --git a/sw/qa/core/filters-test.cxx b/sw/qa/core/filters-test.cxx
index bf265b15388f..67db9346e52e 100644
--- a/sw/qa/core/filters-test.cxx
+++ b/sw/qa/core/filters-test.cxx
@@ -99,7 +99,7 @@ bool SwFiltersTest::filter(const OUString &rFilter, const OUString &rURL,
if (rUserData == FILTER_TEXT_DLG)
{
pSrcMed->GetItemSet()->Put(
- SfxStringItem(SID_FILE_FILTEROPTIONS, OUString("UTF8,LF,Liberation Mono,en-US")));
+ SfxStringItem(SID_FILE_FILTEROPTIONS, "UTF8,LF,Liberation Mono,en-US"));
}
bool bLoaded = xDocShRef->DoLoad(pSrcMed);
diff --git a/sw/qa/core/uwriter.cxx b/sw/qa/core/uwriter.cxx
index 0540212e2140..20ac02c6a3b0 100644
--- a/sw/qa/core/uwriter.cxx
+++ b/sw/qa/core/uwriter.cxx
@@ -1279,49 +1279,47 @@ void SwDocTest::testTableAutoFormats()
SvxBrushItem aBackground( Color(0xFF11FF), RES_BACKGROUND );
aBoxAF.SetBackground( aBackground );
//Set m_aTLBR
- aBoxAF.m_aTLBR.ScaleMetrics( 11,12 );
- SvxLineItem aTLBRLine = aBoxAF.m_aTLBR;
+ SvxLineItem aTLBRLine(0); aTLBRLine.ScaleMetrics( 11,12 );
+ aBoxAF.SetTLBR(aTLBRLine);
//Set m_aBLTR
- aBoxAF.m_aBLTR.ScaleMetrics( 13,14 );
- SvxLineItem aBLTRLine = aBoxAF.m_aBLTR;
+ SvxLineItem aBLTRLine(0); aBLTRLine.ScaleMetrics( 13,14 );
+ aBoxAF.SetBLTR(aBLTRLine);
//Set m_aHorJustify
SvxHorJustifyItem aHJustify( SvxCellHorJustify::Center, 0 );
- aBoxAF.m_aHorJustify = aHJustify;
+ aBoxAF.SetHorJustify(aHJustify);
//Set m_aVerJustify
SvxVerJustifyItem aVJustify( SvxCellVerJustify::Center , 0 );
- aBoxAF.m_aVerJustify = aVJustify;
+ aBoxAF.SetVerJustify(aVJustify);
//Set m_aStacked
- aBoxAF.m_aStacked.SetValue( true );
- SfxBoolItem aStacked = aBoxAF.m_aStacked;
+ SfxBoolItem aStacked(0, true);
+ aBoxAF.SetStacked(aStacked);
//Set m_aMargin
- aBoxAF.m_aMargin.SetLeftMargin( sal_Int16(4) );
- aBoxAF.m_aMargin.SetRightMargin( sal_Int16(3) );
- aBoxAF.m_aMargin.SetTopMargin( sal_Int16(2) );
- aBoxAF.m_aMargin.SetBottomMargin( sal_Int16(3) );
- SvxMarginItem aMargin = aBoxAF.m_aMargin;
+ SvxMarginItem aSvxMarginItem(sal_Int16(4), sal_Int16(2), sal_Int16(3), sal_Int16(3), 0);
+ aBoxAF.SetMargin(aSvxMarginItem);
//Set m_aLinebreak
- aBoxAF.m_aLinebreak.SetValue( true );
- SfxBoolItem aLBreak = aBoxAF.m_aLinebreak;
+ SfxBoolItem aLBreak(0, true);
+ aBoxAF.SetLinebreak(aLBreak);
//Set m_aRotateAngle
- aBoxAF.m_aRotateAngle.SetValue( sal_Int32(5) );
- SfxInt32Item aRAngle = aBoxAF.m_aRotateAngle;
+ SfxInt32Item aRAngle(sal_Int32(5));
+ aBoxAF.SetRotateAngle(aRAngle);
//Set m_aRotateMode
- aBoxAF.m_aRotateMode.SetValue( SVX_ROTATE_MODE_CENTER );
+ SvxRotateModeItem aSvxRotateModeItem(SVX_ROTATE_MODE_CENTER, 0);
+ aBoxAF.SetRotateMode(aSvxRotateModeItem);
//Set m_sNumFormatString
OUString aNFString = "UnitTestFormat";
- aBoxAF.m_sNumFormatString = aNFString;
+ aBoxAF.SetNumFormatString(aNFString);
//Set m_eSysLanguage
LanguageType aSLang( LANGUAGE_ENGLISH_INDIA );
- aBoxAF.m_eSysLanguage = aSLang;
+ aBoxAF.SetSysLanguage(aSLang);
//Set m_eNumFormatLanguage
LanguageType aNFLang( LANGUAGE_GERMAN );
- aBoxAF.m_eNumFormatLanguage = aNFLang;
+ aBoxAF.SetNumFormatLanguage(aNFLang);
//Set m_aBreak
SvxFormatBreakItem aBreak( SvxBreak::PageBefore, 0 );
- aTableAF.m_aBreak = aBreak;
+ aTableAF.SetBreak(aBreak);
//Set m_aKeepWithNextPara
SvxFormatKeepItem aKWNPara( true, 0 );
- aTableAF.m_aKeepWithNextPara = aKWNPara;
+ aTableAF.SetKeepWithNextPara(aKWNPara);
//Set m_aPageDesc
SwFormatPageDesc aPDesc;
uno::Any aPDAny( sal_uInt16(3) );
@@ -1341,7 +1339,7 @@ void SwDocTest::testTableAutoFormats()
aTableAF.m_bCollapsingBorders = aCBorders;
//Set m_aShadow
SvxShadowItem aShadow( 0, nullptr, 103, SvxShadowLocation::BottomLeft );
- aTableAF.m_aShadow = aShadow;
+ aTableAF.SetShadow(aShadow);
//Set bInclFont
bool aIFont = false;
aTableAF.m_bInclFont = aIFont;
@@ -1434,21 +1432,21 @@ void SwDocTest::testTableAutoFormats()
//GetBackground
CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetBackground() == aBackground ) );
//Get m_aTLBR
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_aTLBR == aTLBRLine ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetTLBR() == aTLBRLine ) );
//Get m_aBLTR
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_aBLTR == aBLTRLine ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetBLTR() == aBLTRLine ) );
//Get m_aHorJustify
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_aHorJustify == aHJustify ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetHorJustify() == aHJustify ) );
//Get m_aVerJustify
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_aVerJustify == aVJustify ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetVerJustify() == aVJustify ) );
//Get m_aStacked
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_aStacked == aStacked ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetStacked() == aStacked ) );
//Get m_aMargin
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_aMargin == aMargin ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetMargin() == aSvxMarginItem ) );
//Get m_aLinebreak
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_aLinebreak == aLBreak ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetLinebreak() == aLBreak ) );
//Get m_aRotateAngle
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_aRotateAngle == aRAngle ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetRotateAngle() == aRAngle ) );
#if !((defined(__clang__) && __clang_major__ == 4 && __clang_minor__ == 0) \
|| (defined __APPLE__ && defined __clang__ \
&& defined __apple_build_version__ \
@@ -1456,19 +1454,19 @@ void SwDocTest::testTableAutoFormats()
&& __apple_build_version__ <= 9000099))
// Temporary fix for mysterious problem with Clang in F26 and Xcode 9
//Get m_aRotateMode
- SvxRotateModeItem aRMode = aBoxAF.m_aRotateMode;
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_aRotateMode == aRMode ) );
+ //SvxRotateModeItem aRMode = aBoxAF.m_aRotateMode;GetRotateMode
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetRotateMode() == aSvxRotateModeItem ) );
#endif
//Get m_sNumFormatString
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_sNumFormatString == aNFString ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetNumFormatString() == aNFString ) );
//Get m_eSysLanguage
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_eSysLanguage == aSLang ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetSysLanguage() == aSLang ) );
//Get m_eNumFormatLanguage
- CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).m_eNumFormatLanguage == aNFLang ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBoxFormat(0).GetNumFormatLanguage() == aNFLang ) );
//Get m_aBreak
- CPPUNIT_ASSERT( bool( pLoadAF->m_aBreak == aBreak ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetBreak() == aBreak ) );
//Get m_aKeepWithNextPara
- CPPUNIT_ASSERT( bool( pLoadAF->m_aKeepWithNextPara == aKWNPara ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetKeepWithNextPara() == aKWNPara ) );
//Get m_aPageDesc
CPPUNIT_ASSERT( bool( pLoadAF->m_aPageDesc == aPDesc ) );
//Get m_aRepeatHeading
@@ -1480,7 +1478,7 @@ void SwDocTest::testTableAutoFormats()
//Get m_bCollapsingBorders
CPPUNIT_ASSERT( bool( pLoadAF->m_bCollapsingBorders == aCBorders ) );
//Get m_aShadow
- CPPUNIT_ASSERT( bool( pLoadAF->m_aShadow == aShadow ) );
+ CPPUNIT_ASSERT( bool( pLoadAF->GetShadow() == aShadow ) );
//Get bInclFont
CPPUNIT_ASSERT( bool( pLoadAF->m_bInclFont == aIFont ) );
//Get bInclJustify
diff --git a/sw/source/core/attr/format.cxx b/sw/source/core/attr/format.cxx
index af0ebc16bc1c..300118c72abb 100644
--- a/sw/source/core/attr/format.cxx
+++ b/sw/source/core/attr/format.cxx
@@ -382,14 +382,14 @@ const SfxPoolItem& SwFormat::GetFormatAttr( sal_uInt16 nWhich, bool bInParents )
{
// FALLBACKBREAKHERE should not be used; instead use [XATTR_FILL_FIRST .. XATTR_FILL_LAST]
SAL_INFO("sw.core", "Do no longer use SvxBrushItem, instead use [XATTR_FILL_FIRST .. XATTR_FILL_LAST] FillAttributes or makeBackgroundBrushItem (simple fallback is in place and used)");
- static SvxBrushItem aSvxBrushItem(RES_BACKGROUND);
+ static std::shared_ptr<SvxBrushItem> aSvxBrushItem; //(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
// fill the local static SvxBrushItem from the current ItemSet so that
// the fill attributes [XATTR_FILL_FIRST .. XATTR_FILL_LAST] are used
// as good as possible to create a fallback representation and return that
aSvxBrushItem = getSvxBrushItemFromSourceSet(m_aSet, RES_BACKGROUND, bInParents);
- return aSvxBrushItem;
+ return *aSvxBrushItem;
}
return m_aSet.Get( nWhich, bInParents );
@@ -409,12 +409,11 @@ SfxItemState SwFormat::GetItemState( sal_uInt16 nWhich, bool bSrchInParent, cons
// if yes, fill the local SvxBrushItem using the new fill attributes
// as good as possible to have an instance for the pointer to point
// to and return as state that it is set
-
- static SvxBrushItem aSvxBrushItem(RES_BACKGROUND);
+ static std::shared_ptr<SvxBrushItem> aSvxBrushItem; //(RES_BACKGROUND);
aSvxBrushItem = getSvxBrushItemFromSourceSet(m_aSet, RES_BACKGROUND, bSrchInParent);
if( ppItem )
- *ppItem = &aSvxBrushItem;
+ *ppItem = aSvxBrushItem.get();
return SfxItemState::SET;
}
@@ -430,7 +429,7 @@ SfxItemState SwFormat::GetItemState( sal_uInt16 nWhich, bool bSrchInParent, cons
return m_aSet.GetItemState( nWhich, bSrchInParent, ppItem );
}
-SfxItemState SwFormat::GetBackgroundState(SvxBrushItem &rItem) const
+SfxItemState SwFormat::GetBackgroundState(std::shared_ptr<SvxBrushItem>& rItem) const
{
if (supportsFullDrawingLayerFillAttributeSet())
{
@@ -454,7 +453,7 @@ SfxItemState SwFormat::GetBackgroundState(SvxBrushItem &rItem) const
const SfxPoolItem* pItem = nullptr;
SfxItemState eRet = m_aSet.GetItemState(RES_BACKGROUND, true, &pItem);
if (pItem)
- rItem = *static_cast<const SvxBrushItem*>(pItem);
+ rItem.reset(static_cast<SvxBrushItem*>(pItem->Clone()));
return eRet;
}
@@ -782,7 +781,7 @@ void SwFormat::SetGrabBagItem(const uno::Any& rVal)
m_pGrabBagItem->PutValue(rVal, 0);
}
-SvxBrushItem SwFormat::makeBackgroundBrushItem(bool bInP) const
+std::shared_ptr<SvxBrushItem> SwFormat::makeBackgroundBrushItem(bool bInP) const
{
if (supportsFullDrawingLayerFillAttributeSet())
{
@@ -795,7 +794,7 @@ SvxBrushItem SwFormat::makeBackgroundBrushItem(bool bInP) const
return getSvxBrushItemFromSourceSet(m_aSet, RES_BACKGROUND, bInP);
}
- return m_aSet.GetBackground(bInP);
+ return std::shared_ptr<SvxBrushItem>(static_cast<SvxBrushItem*>(m_aSet.GetBackground(bInP).Clone()));
}
drawinglayer::attribute::SdrAllFillAttributesHelperPtr SwFormat::getSdrAllFillAttributesHelper() const
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index c6ff7c163462..1fe99be1dd2a 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -4306,9 +4306,9 @@ SwFlyFrameFormat* DocumentContentOperationsManager::InsNoTextNode( const SwPosit
#define NUMRULE_STATE \
SfxItemState aNumRuleState = SfxItemState::UNKNOWN; \
- SwNumRuleItem aNumRuleItem; \
+ std::shared_ptr<SwNumRuleItem> aNumRuleItem; \
SfxItemState aListIdState = SfxItemState::UNKNOWN; \
- SfxStringItem aListIdItem( RES_PARATR_LIST_ID, OUString() ); \
+ std::shared_ptr<SfxStringItem> aListIdItem; \
#define PUSH_NUMRULE_STATE \
lcl_PushNumruleState( aNumRuleState, aNumRuleItem, aListIdState, aListIdItem, pDestTextNd );
@@ -4316,9 +4316,10 @@ SwFlyFrameFormat* DocumentContentOperationsManager::InsNoTextNode( const SwPosit
#define POP_NUMRULE_STATE \
lcl_PopNumruleState( aNumRuleState, aNumRuleItem, aListIdState, aListIdItem, pDestTextNd, rPam );
-static void lcl_PushNumruleState( SfxItemState &aNumRuleState, SwNumRuleItem &aNumRuleItem,
- SfxItemState &aListIdState, SfxStringItem &aListIdItem,
- const SwTextNode *pDestTextNd )
+static void lcl_PushNumruleState(
+ SfxItemState &aNumRuleState, std::shared_ptr<SwNumRuleItem>& aNumRuleItem,
+ SfxItemState &aListIdState, std::shared_ptr<SfxStringItem>& aListIdItem,
+ const SwTextNode *pDestTextNd )
{
// Safe numrule item at destination.
// #i86492# - Safe also <ListId> item of destination.
@@ -4328,20 +4329,22 @@ static void lcl_PushNumruleState( SfxItemState &aNumRuleState, SwNumRuleItem &aN
const SfxPoolItem * pItem = nullptr;
aNumRuleState = pAttrSet->GetItemState(RES_PARATR_NUMRULE, false, &pItem);
if (SfxItemState::SET == aNumRuleState)
- aNumRuleItem = *static_cast<const SwNumRuleItem *>( pItem);
+ {
+ aNumRuleItem.reset(static_cast<SwNumRuleItem*>(pItem->Clone()));
+ }
- aListIdState =
- pAttrSet->GetItemState(RES_PARATR_LIST_ID, false, &pItem);
+ aListIdState = pAttrSet->GetItemState(RES_PARATR_LIST_ID, false, &pItem);
if (SfxItemState::SET == aListIdState)
{
- aListIdItem.SetValue( static_cast<const SfxStringItem*>(pItem)->GetValue() );
+ aListIdItem.reset(static_cast<SfxStringItem*>(pItem->Clone()));
}
}
}
-static void lcl_PopNumruleState( SfxItemState aNumRuleState, const SwNumRuleItem &aNumRuleItem,
- SfxItemState aListIdState, const SfxStringItem &aListIdItem,
- SwTextNode *pDestTextNd, const SwPaM& rPam )
+static void lcl_PopNumruleState(
+ SfxItemState aNumRuleState, const std::shared_ptr<SwNumRuleItem>& aNumRuleItem,
+ SfxItemState aListIdState, const std::shared_ptr<SfxStringItem>& aListIdItem,
+ SwTextNode *pDestTextNd, const SwPaM& rPam )
{
/* If only a part of one paragraph is copied
restore the numrule at the destination. */
@@ -4350,7 +4353,7 @@ static void lcl_PopNumruleState( SfxItemState aNumRuleState, const SwNumRuleItem
{
if (SfxItemState::SET == aNumRuleState)
{
- pDestTextNd->SetAttr(aNumRuleItem);
+ pDestTextNd->SetAttr(*aNumRuleItem);
}
else
{
@@ -4358,7 +4361,7 @@ static void lcl_PopNumruleState( SfxItemState aNumRuleState, const SwNumRuleItem
}
if (SfxItemState::SET == aListIdState)
{
- pDestTextNd->SetAttr(aListIdItem);
+ pDestTextNd->SetAttr(*aListIdItem);
}
else
{
diff --git a/sw/source/core/doc/DocumentStylePoolManager.cxx b/sw/source/core/doc/DocumentStylePoolManager.cxx
index 097f8479239e..a7a0a68850f5 100644
--- a/sw/source/core/doc/DocumentStylePoolManager.cxx
+++ b/sw/source/core/doc/DocumentStylePoolManager.cxx
@@ -1317,10 +1317,9 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId,
aLR.SetLeft( GetMetricVal( CM_1 ));
aLR.SetRight( GetMetricVal( CM_1 ));
aSet.Put( aLR );
- SvxULSpaceItem aUL( RES_UL_SPACE );
- aUL = pNewColl->GetULSpace();
- aUL.SetLower( HTML_PARSPACE );
- aSet.Put( aUL);
+ std::shared_ptr<SvxULSpaceItem> aUL(static_cast<SvxULSpaceItem*>(pNewColl->GetULSpace().Clone()));
+ aUL->SetLower( HTML_PARSPACE );
+ aSet.Put(*aUL);
}
break;
@@ -1333,10 +1332,9 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId,
// The lower paragraph distance is set explicitly (makes
// assigning hard attributes easier)
- SvxULSpaceItem aULSpaceItem( RES_UL_SPACE );
- aULSpaceItem = pNewColl->GetULSpace();
- aULSpaceItem.SetLower( 0 );
- aSet.Put( aULSpaceItem );
+ std::shared_ptr<SvxULSpaceItem> aULSpaceItem(static_cast<SvxULSpaceItem*>(pNewColl->GetULSpace().Clone()));
+ aULSpaceItem->SetLower( 0 );
+ aSet.Put(*aULSpaceItem);
}
break;
@@ -1351,13 +1349,13 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId,
aSet.Put( SwParaConnectBorderItem( false ) );
SetAllScriptItem( aSet, SvxFontHeightItem(120, 100, RES_CHRATR_FONTSIZE) );
- SvxULSpaceItem aUL( RES_UL_SPACE );
+ std::shared_ptr<SvxULSpaceItem> aUL;
{
pNewColl->SetNextTextFormatColl( *GetTextCollFromPool( RES_POOLCOLL_TEXT ));
- aUL = pNewColl->GetULSpace();
+ aUL.reset(static_cast<SvxULSpaceItem*>(pNewColl->GetULSpace().Clone()));
}
- aUL.SetLower( HTML_PARSPACE );
- aSet.Put( aUL);
+ aUL->SetLower( HTML_PARSPACE );
+ aSet.Put(*aUL);
SwFormatLineNumber aLN;
aLN.SetCountLines( false );
aSet.Put( aLN );
@@ -1366,23 +1364,22 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId,
case RES_POOLCOLL_HTML_DD:
{
- SvxLRSpaceItem aLR( RES_LR_SPACE );
- aLR = pNewColl->GetLRSpace();
+ std::shared_ptr<SvxLRSpaceItem> aLR(static_cast<SvxLRSpaceItem*>(pNewColl->GetLRSpace().Clone()));
// We indent by 1 cm. The IDs are always 2 away from each other!
- aLR.SetLeft( GetMetricVal( CM_1 ));
- aSet.Put( aLR );
+ aLR->SetLeft( GetMetricVal( CM_1 ));
+ aSet.Put(*aLR);
}
break;
case RES_POOLCOLL_HTML_DT:
{
- SvxLRSpaceItem aLR( RES_LR_SPACE );
+ std::shared_ptr<SvxLRSpaceItem> aLR;
{
pNewColl->SetNextTextFormatColl( *GetTextCollFromPool( RES_POOLCOLL_HTML_DD ));
- aLR = pNewColl->GetLRSpace();
+ aLR.reset(static_cast<SvxLRSpaceItem*>(pNewColl->GetLRSpace().Clone()));
}
// We indent by 0 cm. The IDs are always 2 away from each other!
- aLR.SetLeft( 0 );
- aSet.Put( aLR );
+ aLR->SetLeft( 0 );
+ aSet.Put( *aLR );
}
break;
}
diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index 286064fddab8..ec866b0c4e83 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -785,9 +785,9 @@ lcl_InsertLabel(SwDoc & rDoc, SwTextFormatColls *const pTextFormatCollTable,
pNewSet->Put( pOldFormat->GetAnchor() );
// The new one should be changeable in its height.
- SwFormatFrameSize aFrameSize( pOldFormat->GetFrameSize() );
- aFrameSize.SetHeightSizeType( ATT_MIN_SIZE );
- pNewSet->Put( aFrameSize );
+ std::shared_ptr<SwFormatFrameSize> aFrameSize(static_cast<SwFormatFrameSize*>(pOldFormat->GetFrameSize().Clone()));
+ aFrameSize->SetHeightSizeType( ATT_MIN_SIZE );
+ pNewSet->Put( *aFrameSize );
SwStartNode* pSttNd = rDoc.GetNodes().MakeTextSection(
SwNodeIndex( rDoc.GetNodes().GetEndOfAutotext() ),
@@ -834,7 +834,7 @@ lcl_InsertLabel(SwDoc & rDoc, SwTextFormatColls *const pTextFormatCollTable,
pNewSet->Put( SwFormatVertOrient( 0, eVert ) );
pNewSet->Put( SwFormatHoriOrient( 0, text::HoriOrientation::CENTER ) );
- aFrameSize = pOldFormat->GetFrameSize();
+ aFrameSize.reset(static_cast<SwFormatFrameSize*>(pOldFormat->GetFrameSize().Clone()));
SwOLENode* pOleNode = rDoc.GetNodes()[nNdIdx + 1]->GetOLENode();
bool isMath = false;
@@ -847,9 +847,9 @@ lcl_InsertLabel(SwDoc & rDoc, SwTextFormatColls *const pTextFormatCollTable,
isMath = ( SotExchange::IsMath( aCLSID ) != 0 );
}
}
- aFrameSize.SetWidthPercent(isMath ? 0 : 100);
- aFrameSize.SetHeightPercent(SwFormatFrameSize::SYNCED);
- pNewSet->Put( aFrameSize );
+ aFrameSize->SetWidthPercent(isMath ? 0 : 100);
+ aFrameSize->SetHeightPercent(SwFormatFrameSize::SYNCED);
+ pNewSet->Put( *aFrameSize );
// Hard-set the attributes, because they could come from the Template
// and then size calculations could not be correct anymore.
diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx
index fbf6270bdd8c..102ac460111d 100644
--- a/sw/source/core/doc/tblafmt.cxx
+++ b/sw/source/core/doc/tblafmt.cxx
@@ -44,6 +44,11 @@
#include <sal/log.hxx>
#include <osl/diagnose.h>
+#include <svl/legacyitem.hxx>
+#include <editeng/legacyitem.hxx>
+#include <svx/legacyitem.hxx>
+#include <legacyitem.hxx>
+
#include <memory>
#include <vector>
@@ -66,20 +71,9 @@ const sal_uInt16 AUTOFORMAT_DATA_ID_504 = 9802;
const sal_uInt16 AUTOFORMAT_DATA_ID_552 = 9902;
-// --- from 641 on: CJK and CTL font settings
-const sal_uInt16 AUTOFORMAT_DATA_ID_641 = 10002;
-
-// --- from 680/dr14 on: diagonal frame lines
-const sal_uInt16 AUTOFORMAT_ID_680DR14 = 10011;
-const sal_uInt16 AUTOFORMAT_DATA_ID_680DR14 = 10012;
-
// --- from 680/dr25 on: store strings as UTF-8
const sal_uInt16 AUTOFORMAT_ID_680DR25 = 10021;
-// --- from DEV300/overline2 on: overline
-const sal_uInt16 AUTOFORMAT_ID_300OVRLN = 10031;
-const sal_uInt16 AUTOFORMAT_DATA_ID_300OVRLN = 10032;
-
// --- Bug fix to fdo#31005: Table Autoformats does not save/apply all properties (Writer and Calc)
const sal_uInt16 AUTOFORMAT_ID_31005 = 10041;
const sal_uInt16 AUTOFORMAT_DATA_ID_31005 = 10042;
@@ -164,187 +158,109 @@ namespace
// Struct with version numbers of the Items
-struct SwAfVersions
+struct SwAfVersions : public AutoFormatVersions
{
public:
- sal_uInt16 nFontVersion;
- sal_uInt16 nFontHeightVersion;
- sal_uInt16 nWeightVersion;
- sal_uInt16 nPostureVersion;
- sal_uInt16 nUnderlineVersion;
- sal_uInt16 nOverlineVersion;
- sal_uInt16 nCrossedOutVersion;
- sal_uInt16 nContourVersion;
- sal_uInt16 nShadowedVersion;
- sal_uInt16 nColorVersion;
- sal_uInt16 nBoxVersion;
- sal_uInt16 nLineVersion;
- sal_uInt16 nBrushVersion;
-
- sal_uInt16 nAdjustVersion;
sal_uInt16 m_nTextOrientationVersion;
sal_uInt16 m_nVerticalAlignmentVersion;
- sal_uInt16 nHorJustifyVersion;
- sal_uInt16 nVerJustifyVersion;
- sal_uInt16 nOrientationVersion;
- sal_uInt16 nMarginVersion;
- sal_uInt16 nBoolVersion;
- sal_uInt16 nInt32Version;
- sal_uInt16 nRotateModeVersion;
-
- sal_uInt16 nNumFormatVersion;
-
SwAfVersions();
void Load( SvStream& rStream, sal_uInt16 nVer );
+ static void Write(SvStream& rStream, sal_uInt16 fileVersion);
};
-SwAfVersions::SwAfVersions() :
- nFontVersion(0),
- nFontHeightVersion(0),
- nWeightVersion(0),
- nPostureVersion(0),
- nUnderlineVersion(0),
- nOverlineVersion(0),
- nCrossedOutVersion(0),
- nContourVersion(0),
- nShadowedVersion(0),
- nColorVersion(0),
- nBoxVersion(0),
- nLineVersion(0),
- nBrushVersion(0),
- nAdjustVersion(0),
+SwAfVersions::SwAfVersions()
+: AutoFormatVersions(),
m_nTextOrientationVersion(0),
- m_nVerticalAlignmentVersion(0),
- nHorJustifyVersion(0),
- nVerJustifyVersion(0),
- nOrientationVersion(0),
- nMarginVersion(0),
- nBoolVersion(0),
- nInt32Version(0),
- nRotateModeVersion(0),
- nNumFormatVersion(0)
+ m_nVerticalAlignmentVersion(0)
{
}
void SwAfVersions::Load( SvStream& rStream, sal_uInt16 nVer )
{
- rStream.ReadUInt16( nFontVersion );
- rStream.ReadUInt16( nFontHeightVersion );
- rStream.ReadUInt16( nWeightVersion );
- rStream.ReadUInt16( nPostureVersion );
- rStream.ReadUInt16( nUnderlineVersion );
- if ( nVer >= AUTOFORMAT_ID_300OVRLN )
- rStream.ReadUInt16( nOverlineVersion );
- rStream.ReadUInt16( nCrossedOutVersion );
- rStream.ReadUInt16( nContourVersion );
- rStream.ReadUInt16( nShadowedVersion );
- rStream.ReadUInt16( nColorVersion );
- rStream.ReadUInt16( nBoxVersion );
- if ( nVer >= AUTOFORMAT_ID_680DR14 )
- rStream.ReadUInt16( nLineVersion );
- rStream.ReadUInt16( nBrushVersion );
- rStream.ReadUInt16( nAdjustVersion );
+ LoadBlockA(rStream, nVer);
if (nVer >= AUTOFORMAT_ID_31005 && WriterSpecificBlockExists(rStream))
{
rStream.ReadUInt16( m_nTextOrientationVersion );
rStream.ReadUInt16( m_nVerticalAlignmentVersion );
}
+ LoadBlockB(rStream, nVer);
+}
- rStream.ReadUInt16( nHorJustifyVersion );
- rStream.ReadUInt16( nVerJustifyVersion );
- rStream.ReadUInt16( nOrientationVersion );
- rStream.ReadUInt16( nMarginVersion );
- rStream.ReadUInt16( nBoolVersion );
- if ( nVer >= AUTOFORMAT_ID_504 )
+void SwAfVersions::Write(SvStream& rStream, sal_uInt16 fileVersion)
+{
+ AutoFormatVersions::WriteBlockA(rStream, fileVersion);
+
+ if (fileVersion >= SOFFICE_FILEFORMAT_50)
{
- rStream.ReadUInt16( nInt32Version );
- rStream.ReadUInt16( nRotateModeVersion );
+ WriterSpecificAutoFormatBlock block(rStream);
+
+ rStream.WriteUInt16(legacy::SvxFrameDirection::GetVersion(fileVersion));
+ rStream.WriteUInt16(legacy::SwFormatVert::GetVersion(fileVersion));
}
- rStream.ReadUInt16( nNumFormatVersion );
+
+ AutoFormatVersions::WriteBlockB(rStream, fileVersion);
}
+
+
SwBoxAutoFormat::SwBoxAutoFormat()
- : m_aFont( *GetDfltAttr( RES_CHRATR_FONT ) ),
- m_aHeight( 240, 100, RES_CHRATR_FONTSIZE ),
- m_aWeight( WEIGHT_NORMAL, RES_CHRATR_WEIGHT ),
- m_aPosture( ITALIC_NONE, RES_CHRATR_POSTURE ),
-
- m_aCJKFont( *GetDfltAttr( RES_CHRATR_CJK_FONT ) ),
- m_aCJKHeight( 240, 100, RES_CHRATR_CJK_FONTSIZE ),
- m_aCJKWeight( WEIGHT_NORMAL, RES_CHRATR_CJK_WEIGHT ),
- m_aCJKPosture( ITALIC_NONE, RES_CHRATR_CJK_POSTURE ),
-
- m_aCTLFont( *GetDfltAttr( RES_CHRATR_CTL_FONT ) ),
- m_aCTLHeight( 240, 100, RES_CHRATR_CTL_FONTSIZE ),
- m_aCTLWeight( WEIGHT_NORMAL, RES_CHRATR_CTL_WEIGHT ),
- m_aCTLPosture( ITALIC_NONE, RES_CHRATR_CTL_POSTURE ),
-
- m_aUnderline( LINESTYLE_NONE, RES_CHRATR_UNDERLINE ),
- m_aOverline( LINESTYLE_NONE, RES_CHRATR_OVERLINE ),
- m_aCrossedOut( STRIKEOUT_NONE, RES_CHRATR_CROSSEDOUT ),
- m_aContour( false, RES_CHRATR_CONTOUR ),
- m_aShadowed( false, RES_CHRATR_SHADOWED ),
- m_aColor( RES_CHRATR_COLOR ),
- m_aBox( RES_BOX ),
- m_aTLBR( 0 ),
- m_aBLTR( 0 ),
- m_aBackground( RES_BACKGROUND ),
- m_aAdjust( SvxAdjust::Left, RES_PARATR_ADJUST ),
- m_aTextOrientation(SvxFrameDirection::Environment, RES_FRAMEDIR),
- m_aVerticalAlignment(0, css::text::VertOrientation::NONE, css::text::RelOrientation::FRAME),
- m_aHorJustify( SvxCellHorJustify::Standard, 0),
- m_aVerJustify( SvxCellVerJustify::Standard, 0),
- m_aStacked( 0 ),
- m_aMargin( 0 ),
- m_aLinebreak( 0 ),
- m_aRotateAngle( 0 ),
+: AutoFormatBase(),
+ m_aTextOrientation(std::make_shared<SvxFrameDirectionItem>(SvxFrameDirection::Environment, RES_FRAMEDIR)),
+ m_aVerticalAlignment(std::make_shared<SwFormatVertOrient>(0, css::text::VertOrientation::NONE, css::text::RelOrientation::FRAME)),
+ m_sNumFormatString(),
+ m_eSysLanguage(::GetAppLanguage()),
+ m_eNumFormatLanguage(::GetAppLanguage()),
+ m_wXObject()
+{
+ // need to set default instances for base class AutoFormatBase here
+ // due to ressource defines (e.g. RES_CHRATR_FONT) which are not available
+ // in svx and different in the different usages of derivations
+ m_aFont = std::make_shared<SvxFontItem>(*GetDfltAttr( RES_CHRATR_FONT ) );
+ m_aHeight = std::make_shared<SvxFontHeightItem>(240, 100, RES_CHRATR_FONTSIZE );
+ m_aWeight = std::make_shared<SvxWeightItem>(WEIGHT_NORMAL, RES_CHRATR_WEIGHT );
+ m_aPosture = std::make_shared<SvxPostureItem>(ITALIC_NONE, RES_CHRATR_POSTURE );
+ m_aCJKFont = std::make_shared<SvxFontItem>(*GetDfltAttr( RES_CHRATR_CJK_FONT ) );
+ m_aCJKHeight = std::make_shared<SvxFontHeightItem>(240, 100, RES_CHRATR_CJK_FONTSIZE );
+ m_aCJKWeight = std::make_shared<SvxWeightItem>(WEIGHT_NORMAL, RES_CHRATR_CJK_WEIGHT );
+ m_aCJKPosture = std::make_shared<SvxPostureItem>(ITALIC_NONE, RES_CHRATR_CJK_POSTURE );
+ m_aCTLFont = std::make_shared<SvxFontItem>(*GetDfltAttr( RES_CHRATR_CTL_FONT ) );
+ m_aCTLHeight = std::make_shared<SvxFontHeightItem>(240, 100, RES_CHRATR_CTL_FONTSIZE );
+ m_aCTLWeight = std::make_shared<SvxWeightItem>(WEIGHT_NORMAL, RES_CHRATR_CTL_WEIGHT );
+ m_aCTLPosture = std::make_shared<SvxPostureItem>(ITALIC_NONE, RES_CHRATR_CTL_POSTURE );
+ m_aUnderline = std::make_shared<SvxUnderlineItem>(LINESTYLE_NONE, RES_CHRATR_UNDERLINE );
+ m_aOverline = std::make_shared<SvxOverlineItem>(LINESTYLE_NONE, RES_CHRATR_OVERLINE );
+ m_aCrossedOut = std::make_shared<SvxCrossedOutItem>(STRIKEOUT_NONE, RES_CHRATR_CROSSEDOUT );
+ m_aContour = std::make_shared<SvxContourItem>(false, RES_CHRATR_CONTOUR );
+ m_aShadowed = std::make_shared<SvxShadowedItem>(false, RES_CHRATR_SHADOWED );
+ m_aColor = std::make_shared<SvxColorItem>(RES_CHRATR_COLOR );
+ m_aBox = std::make_shared<SvxBoxItem>(RES_BOX );
+ m_aTLBR = std::make_shared<SvxLineItem>(0 );
+ m_aBLTR = std::make_shared<SvxLineItem>(0 );
+ m_aBackground = std::make_shared<SvxBrushItem>(RES_BACKGROUND );
+ m_aAdjust = std::make_shared<SvxAdjustItem>(SvxAdjust::Left, RES_PARATR_ADJUST );
+ m_aHorJustify = std::make_shared<SvxHorJustifyItem>(SvxCellHorJustify::Standard, 0);
+ m_aVerJustify = std::make_shared<SvxVerJustifyItem>(SvxCellVerJustify::Standard, 0);
+ m_aStacked = std::make_shared<SfxBoolItem>(0 );
+ m_aMargin = std::make_shared<SvxMarginItem>(0 );
+ m_aLinebreak = std::make_shared<SfxBoolItem>(0 );
+ m_aRotateAngle = std::make_shared<SfxInt32Item>(0 );
+ m_aRotateMode = std::make_shared<SvxRotateModeItem>(SVX_ROTATE_MODE_STANDARD, 0 );
// FIXME - add attribute IDs for the diagonal line items
// aTLBR( RES_... ),
// aBLTR( RES_... ),
- m_aRotateMode( SVX_ROTATE_MODE_STANDARD, 0 )
-{
- m_eSysLanguage = m_eNumFormatLanguage = ::GetAppLanguage();
- m_aBox.SetAllDistances(55);
+ m_aBox->SetAllDistances(55);
}
SwBoxAutoFormat::SwBoxAutoFormat( const SwBoxAutoFormat& rNew )
- : m_aFont( rNew.m_aFont ),
- m_aHeight( rNew.m_aHeight ),
- m_aWeight( rNew.m_aWeight ),
- m_aPosture( rNew.m_aPosture ),
- m_aCJKFont( rNew.m_aCJKFont ),
- m_aCJKHeight( rNew.m_aCJKHeight ),
- m_aCJKWeight( rNew.m_aCJKWeight ),
- m_aCJKPosture( rNew.m_aCJKPosture ),
- m_aCTLFont( rNew.m_aCTLFont ),
- m_aCTLHeight( rNew.m_aCTLHeight ),
- m_aCTLWeight( rNew.m_aCTLWeight ),
- m_aCTLPosture( rNew.m_aCTLPosture ),
- m_aUnderline( rNew.m_aUnderline ),
- m_aOverline( rNew.m_aOverline ),
- m_aCrossedOut( rNew.m_aCrossedOut ),
- m_aContour( rNew.m_aContour ),
- m_aShadowed( rNew.m_aShadowed ),
- m_aColor( rNew.m_aColor ),
- m_aBox( rNew.m_aBox ),
- m_aTLBR( rNew.m_aTLBR ),
- m_aBLTR( rNew.m_aBLTR ),
- m_aBackground( rNew.m_aBackground ),
- m_aAdjust( rNew.m_aAdjust ),
- m_aTextOrientation(rNew.m_aTextOrientation),
- m_aVerticalAlignment(rNew.m_aVerticalAlignment),
- m_aHorJustify( rNew.m_aHorJustify ),
- m_aVerJustify( rNew.m_aVerJustify ),
- m_aStacked( rNew.m_aStacked ),
- m_aMargin( rNew.m_aMargin ),
- m_aLinebreak( rNew.m_aLinebreak ),
- m_aRotateAngle( rNew.m_aRotateAngle ),
- m_aRotateMode( rNew.m_aRotateMode ),
+: AutoFormatBase(rNew),
+ m_aTextOrientation(static_cast<SvxFrameDirectionItem*>(rNew.m_aTextOrientation->Clone())),
+ m_aVerticalAlignment(static_cast<SwFormatVertOrient*>(rNew.m_aVerticalAlignment->Clone())),
m_sNumFormatString( rNew.m_sNumFormatString ),
m_eSysLanguage( rNew.m_eSysLanguage ),
- m_eNumFormatLanguage( rNew.m_eNumFormatLanguage )
+ m_eNumFormatLanguage( rNew.m_eNumFormatLanguage ),
+ m_wXObject()
{
}
@@ -352,139 +268,27 @@ SwBoxAutoFormat::~SwBoxAutoFormat()
{
}
-SwBoxAutoFormat& SwBoxAutoFormat::operator=( const SwBoxAutoFormat& rNew )
-{
- m_aFont = rNew.m_aFont;
- m_aHeight = rNew.m_aHeight;
- m_aWeight = rNew.m_aWeight;
- m_aPosture = rNew.m_aPosture;
- m_aCJKFont = rNew.m_aCJKFont;
- m_aCJKHeight = rNew.m_aCJKHeight;
- m_aCJKWeight = rNew.m_aCJKWeight;
- m_aCJKPosture = rNew.m_aCJKPosture;
- m_aCTLFont = rNew.m_aCTLFont;
- m_aCTLHeight = rNew.m_aCTLHeight;
- m_aCTLWeight = rNew.m_aCTLWeight;
- m_aCTLPosture = rNew.m_aCTLPosture;
- m_aUnderline = rNew.m_aUnderline;
- m_aOverline = rNew.m_aOverline;
- m_aCrossedOut = rNew.m_aCrossedOut;
- m_aContour = rNew.m_aContour;
- m_aShadowed = rNew.m_aShadowed;
- m_aColor = rNew.m_aColor;
- SetAdjust( rNew.m_aAdjust );
- m_aTextOrientation = rNew.m_aTextOrientation;
- m_aVerticalAlignment = rNew.m_aVerticalAlignment;
- m_aBox = rNew.m_aBox;
- m_aTLBR = rNew.m_aTLBR;
- m_aBLTR = rNew.m_aBLTR;
- m_aBackground = rNew.m_aBackground;
-
- m_aHorJustify = rNew.m_aHorJustify;
- m_aVerJustify = rNew.m_aVerJustify;
- m_aStacked.SetValue( rNew.m_aStacked.GetValue() );
- m_aMargin = rNew.m_aMargin;
- m_aLinebreak.SetValue( rNew.m_aLinebreak.GetValue() );
- m_aRotateAngle.SetValue( rNew.m_aRotateAngle.GetValue() );
- m_aRotateMode.SetValue( rNew.m_aRotateMode.GetValue() );
-
- m_sNumFormatString = rNew.m_sNumFormatString;
- m_eSysLanguage = rNew.m_eSysLanguage;
- m_eNumFormatLanguage = rNew.m_eNumFormatLanguage;
-
- return *this;
-}
-
bool SwBoxAutoFormat::operator==(const SwBoxAutoFormat& rRight)
{
return GetBackground().GetColor() == rRight.GetBackground().GetColor();
}
-#define READ( aItem, aItemType, nVers )\
- pNew = aItem.Create(rStream, nVers ); \
- aItem = *static_cast<aItemType*>(pNew); \
- delete pNew;
-
bool SwBoxAutoFormat::Load( SvStream& rStream, const SwAfVersions& rVersions, sal_uInt16 nVer )
{
- SfxPoolItem* pNew;
- SvxOrientationItem aOrientation( SvxCellOrientation::Standard, 0);
-
- READ( m_aFont, SvxFontItem , rVersions.nFontVersion)
-
- if( rStream.GetStreamCharSet() == m_aFont.GetCharSet() )
- m_aFont.SetCharSet(::osl_getThreadTextEncoding());
-
- READ( m_aHeight, SvxFontHeightItem , rVersions.nFontHeightVersion)
- READ( m_aWeight, SvxWeightItem , rVersions.nWeightVersion)
- READ( m_aPosture, SvxPostureItem , rVersions.nPostureVersion)
- // --- from 641 on: CJK and CTL font settings
- if( AUTOFORMAT_DATA_ID_641 <= nVer )
- {
- READ( m_aCJKFont, SvxFontItem , rVersions.nFontVersion)
- READ( m_aCJKHeight, SvxFontHeightItem , rVersions.nFontHeightVersion)
- READ( m_aCJKWeight, SvxWeightItem , rVersions.nWeightVersion)
- READ( m_aCJKPosture, SvxPostureItem , rVersions.nPostureVersion)
- READ( m_aCTLFont, SvxFontItem , rVersions.nFontVersion)
- READ( m_aCTLHeight, SvxFontHeightItem , rVersions.nFontHeightVersion)
- READ( m_aCTLWeight, SvxWeightItem , rVersions.nWeightVersion)
- READ( m_aCTLPosture, SvxPostureItem , rVersions.nPostureVersion)
- }
- READ( m_aUnderline, SvxUnderlineItem , rVersions.nUnderlineVersion)
- if( nVer >= AUTOFORMAT_DATA_ID_300OVRLN )
- {
- READ( m_aOverline, SvxOverlineItem , rVersions.nOverlineVersion)
- }
- READ( m_aCrossedOut, SvxCrossedOutItem , rVersions.nCrossedOutVersion)
- READ( m_aContour, SvxContourItem , rVersions.nContourVersion)
- READ( m_aShadowed, SvxShadowedItem , rVersions.nShadowedVersion)
- READ( m_aColor, SvxColorItem , rVersions.nColorVersion)
-
- READ( m_aBox, SvxBoxItem , rVersions.nBoxVersion)
-
- // --- from 680/dr14 on: diagonal frame lines
- if( nVer >= AUTOFORMAT_DATA_ID_680DR14 )
- {
- READ( m_aTLBR, SvxLineItem, rVersions.nLineVersion)
- READ( m_aBLTR, SvxLineItem, rVersions.nLineVersion)
- }
-
- READ( m_aBackground, SvxBrushItem , rVersions.nBrushVersion)
-
- pNew = m_aAdjust.Create(rStream, rVersions.nAdjustVersion );
- SetAdjust( *static_cast<SvxAdjustItem*>(pNew) );
- delete pNew;
+ LoadBlockA( rStream, rVersions, nVer );
if (nVer >= AUTOFORMAT_DATA_ID_31005)
{
sal_Int64 const nSize(WriterSpecificBlockExists(rStream));
if (0 < nSize && nSize < std::numeric_limits<sal_uInt16>::max())
{
- READ(m_aTextOrientation, SvxFrameDirectionItem, rVersions.m_nTextOrientationVersion);
+ legacy::SvxFrameDirection::Create(*m_aTextOrientation, rStream, rVersions.m_nTextOrientationVersion);
// HORRIBLE HACK to read both 32-bit and 64-bit "long": abuse nSize
- READ(m_aVerticalAlignment, SwFormatVertOrient, /*rVersions.m_nVerticalAlignmentVersion*/ nSize);
+ legacy::SwFormatVert::Create(*m_aVerticalAlignment, rStream, /*rVersions.m_nVerticalAlignmentVersion*/ nSize);
}
}
- READ( m_aHorJustify, SvxHorJustifyItem , rVersions.nHorJustifyVersion)
- READ( m_aVerJustify, SvxVerJustifyItem , rVersions.nVerJustifyVersion)
-
- READ( aOrientation, SvxOrientationItem , rVersions.nOrientationVersion)
- READ( m_aMargin, SvxMarginItem , rVersions.nMarginVersion)
-
- pNew = m_aLinebreak.Create(rStream, rVersions.nBoolVersion );
- m_aLinebreak.SetValue( static_cast<SfxBoolItem*>(pNew)->GetValue() );
- delete pNew;
-
- if ( nVer >= AUTOFORMAT_DATA_ID_504 )
- {
- pNew = m_aRotateAngle.Create( rStream, rVersions.nInt32Version );
- m_aRotateAngle.SetValue( static_cast<SfxInt32Item*>(pNew)->GetValue() );
- delete pNew;
- pNew = m_aRotateMode.Create( rStream, rVersions.nRotateModeVersion );
- m_aRotateMode.SetValue( static_cast<SvxRotateModeItem*>(pNew)->GetValue() );
- delete pNew;
- }
+ LoadBlockB( rStream, rVersions, nVer );
if( 0 == rVersions.nNumFormatVersion )
{
@@ -499,56 +303,22 @@ bool SwBoxAutoFormat::Load( SvStream& rStream, const SwAfVersions& rVersions, sa
m_eSysLanguage = ::GetAppLanguage();
}
- m_aStacked.SetValue( aOrientation.IsStacked() );
- m_aRotateAngle.SetValue( aOrientation.GetRotation( m_aRotateAngle.GetValue() ) );
-
return ERRCODE_NONE == rStream.GetError();
}
bool SwBoxAutoFormat::Save( SvStream& rStream, sal_uInt16 fileVersion ) const
{
- SvxOrientationItem aOrientation( m_aRotateAngle.GetValue(), m_aStacked.GetValue(), 0 );
-
- m_aFont.Store( rStream, m_aFont.GetVersion(fileVersion) );
- m_aHeight.Store( rStream, m_aHeight.GetVersion(fileVersion) );
- m_aWeight.Store( rStream, m_aWeight.GetVersion(fileVersion) );
- m_aPosture.Store( rStream, m_aPosture.GetVersion(fileVersion) );
- m_aCJKFont.Store( rStream, m_aCJKFont.GetVersion(fileVersion) );
- m_aCJKHeight.Store( rStream, m_aCJKHeight.GetVersion(fileVersion) );
- m_aCJKWeight.Store( rStream, m_aCJKWeight.GetVersion(fileVersion) );
- m_aCJKPosture.Store( rStream, m_aCJKPosture.GetVersion(fileVersion) );
- m_aCTLFont.Store( rStream, m_aCTLFont.GetVersion(fileVersion) );
- m_aCTLHeight.Store( rStream, m_aCTLHeight.GetVersion(fileVersion) );
- m_aCTLWeight.Store( rStream, m_aCTLWeight.GetVersion(fileVersion) );
- m_aCTLPosture.Store( rStream, m_aCTLPosture.GetVersion(fileVersion) );
- m_aUnderline.Store( rStream, m_aUnderline.GetVersion(fileVersion) );
- m_aOverline.Store( rStream, m_aOverline.GetVersion(fileVersion) );
- m_aCrossedOut.Store( rStream, m_aCrossedOut.GetVersion(fileVersion) );
- m_aContour.Store( rStream, m_aContour.GetVersion(fileVersion) );
- m_aShadowed.Store( rStream, m_aShadowed.GetVersion(fileVersion) );
- m_aColor.Store( rStream, m_aColor.GetVersion(fileVersion) );
- m_aBox.Store( rStream, m_aBox.GetVersion(fileVersion) );
- m_aTLBR.Store( rStream, m_aTLBR.GetVersion(fileVersion) );
- m_aBLTR.Store( rStream, m_aBLTR.GetVersion(fileVersion) );
- m_aBackground.Store( rStream, m_aBackground.GetVersion(fileVersion) );
-
- m_aAdjust.Store( rStream, m_aAdjust.GetVersion(fileVersion) );
+ SaveBlockA( rStream, fileVersion );
+
if (fileVersion >= SOFFICE_FILEFORMAT_50)
{
WriterSpecificAutoFormatBlock block(rStream);
- m_aTextOrientation.Store(rStream, m_aTextOrientation.GetVersion(fileVersion));
- m_aVerticalAlignment.Store(rStream, m_aVerticalAlignment.GetVersion(fileVersion));
+ legacy::SvxFrameDirection::Store(*m_aTextOrientation, rStream, legacy::SvxFrameDirection::GetVersion(fileVersion));
+ legacy::SwFormatVert::Store(*m_aVerticalAlignment, rStream, legacy::SwFormatVert::GetVersion(fileVersion));
}
- m_aHorJustify.Store( rStream, m_aHorJustify.GetVersion(fileVersion) );
- m_aVerJustify.Store( rStream, m_aVerJustify.GetVersion(fileVersion) );
- aOrientation.Store( rStream, aOrientation.GetVersion(fileVersion) );
- m_aMargin.Store( rStream, m_aMargin.GetVersion(fileVersion) );
- m_aLinebreak.Store( rStream, m_aLinebreak.GetVersion(fileVersion) );
- // Calc Rotation from SO5
- m_aRotateAngle.Store( rStream, m_aRotateAngle.GetVersion(fileVersion) );
- m_aRotateMode.Store( rStream, m_aRotateMode.GetVersion(fileVersion) );
+ SaveBlockB( rStream, fileVersion );
// --- from 680/dr25 on: store strings as UTF-8
write_uInt16_lenPrefixed_uInt8s_FromOUString(rStream, m_sNumFormatString,
@@ -558,53 +328,16 @@ bool SwBoxAutoFormat::Save( SvStream& rStream, sal_uInt16 fileVersion ) const
return ERRCODE_NONE == rStream.GetError();
}
-void SwBoxAutoFormat::SaveVersionNo( SvStream& rStream, sal_uInt16 fileVersion ) const
-{
- rStream.WriteUInt16( m_aFont.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aHeight.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aWeight.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aPosture.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aUnderline.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aOverline.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aCrossedOut.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aContour.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aShadowed.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aColor.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aBox.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aTLBR.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aBackground.GetVersion( fileVersion ) );
-
- rStream.WriteUInt16( m_aAdjust.GetVersion( fileVersion ) );
-
- if (fileVersion >= SOFFICE_FILEFORMAT_50)
- {
- WriterSpecificAutoFormatBlock block(rStream);
-
- rStream.WriteUInt16( m_aTextOrientation.GetVersion(fileVersion) );
- rStream.WriteUInt16( m_aVerticalAlignment.GetVersion(fileVersion) );
- }
-
- rStream.WriteUInt16( m_aHorJustify.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aVerJustify.GetVersion( fileVersion ) );
- rStream.WriteUInt16( SvxOrientationItem(SvxCellOrientation::Standard, 0).GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aMargin.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aLinebreak.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aRotateAngle.GetVersion( fileVersion ) );
- rStream.WriteUInt16( m_aRotateMode.GetVersion( fileVersion ) );
-
- rStream.WriteUInt16( 0 ); // NumberFormat
-}
-
SwTableAutoFormat::SwTableAutoFormat( const OUString& rName )
: m_aName( rName )
, m_nStrResId( USHRT_MAX )
- , m_aBreak( SvxBreak::NONE, RES_BREAK )
- , m_aKeepWithNextPara( false, RES_KEEP )
+ , m_aBreak(std::make_shared<SvxFormatBreakItem>(SvxBreak::NONE, RES_BREAK))
+ , m_aKeepWithNextPara(std::make_shared<SvxFormatKeepItem>(false, RES_KEEP))
, m_aRepeatHeading( 0 )
, m_bLayoutSplit( true )
, m_bRowSplit( true )
, m_bCollapsingBorders(true)
- , m_aShadow( RES_SHADOW )
+ , m_aShadow(std::make_shared<SvxShadowItem>(RES_SHADOW))
, m_bHidden( false )
, m_bUserDefined( true )
{
@@ -619,9 +352,9 @@ SwTableAutoFormat::SwTableAutoFormat( const OUString& rName )
}
SwTableAutoFormat::SwTableAutoFormat( const SwTableAutoFormat& rNew )
- : m_aBreak( rNew.m_aBreak )
- , m_aKeepWithNextPara( false, RES_KEEP )
- , m_aShadow( RES_SHADOW )
+ : m_aBreak()
+ , m_aKeepWithNextPara()
+ , m_aShadow(std::make_shared<SvxShadowItem>(RES_SHADOW))
{
for(SwBoxAutoFormat* & rp : m_aBoxAutoFormat)
rp = nullptr;
@@ -654,14 +387,14 @@ SwTableAutoFormat& SwTableAutoFormat::operator=( const SwTableAutoFormat& rNew )
m_bInclValueFormat = rNew.m_bInclValueFormat;
m_bInclWidthHeight = rNew.m_bInclWidthHeight;
- m_aBreak = rNew.m_aBreak;
+ m_aBreak.reset(static_cast<SvxFormatBreakItem*>(rNew.m_aBreak->Clone()));
m_aPageDesc = rNew.m_aPageDesc;
- m_aKeepWithNextPara = rNew.m_aKeepWithNextPara;
+ m_aKeepWithNextPara.reset(static_cast<SvxFormatKeepItem*>(rNew.m_aKeepWithNextPara->Clone()));
m_aRepeatHeading = rNew.m_aRepeatHeading;
m_bLayoutSplit = rNew.m_bLayoutSplit;
m_bRowSplit = rNew.m_bRowSplit;
m_bCollapsingBorders = rNew.m_bCollapsingBorders;
- m_aShadow = rNew.m_aShadow;
+ m_aShadow.reset(static_cast<SvxShadowItem*>(rNew.m_aShadow->Clone()));
m_bHidden = rNew.m_bHidden;
m_bUserDefined = rNew.m_bUserDefined;
@@ -904,12 +637,12 @@ void SwTableAutoFormat::RestoreTableProperties(SwTable &table) const
SfxItemSet rSet(pDoc->GetAttrPool(), aTableSetRange);
- rSet.Put(m_aBreak);
+ rSet.Put(*m_aBreak);
rSet.Put(m_aPageDesc);
rSet.Put(SwFormatLayoutSplit(m_bLayoutSplit));
rSet.Put(SfxBoolItem(RES_COLLAPSING_BORDERS, m_bCollapsingBorders));
- rSet.Put(m_aKeepWithNextPara);
- rSet.Put(m_aShadow);
+ rSet.Put(*m_aKeepWithNextPara);
+ rSet.Put(*m_aShadow);
pFormat->SetFormatAttr(rSet);
@@ -936,15 +669,15 @@ void SwTableAutoFormat::StoreTableProperties(const SwTable &table)
const SfxItemSet &rSet = pFormat->GetAttrSet();
- m_aBreak = rSet.Get(RES_BREAK);
+ m_aBreak.reset(static_cast<SvxFormatBreakItem*>(rSet.Get(RES_BREAK).Clone()));
m_aPageDesc = rSet.Get(RES_PAGEDESC);
const SwFormatLayoutSplit &layoutSplit = rSet.Get(RES_LAYOUT_SPLIT);
m_bLayoutSplit = layoutSplit.GetValue();
m_bCollapsingBorders = rSet.Get(RES_COLLAPSING_BORDERS).GetValue();
- m_aKeepWithNextPara = rSet.Get(RES_KEEP);
+ m_aKeepWithNextPara.reset(static_cast<SvxFormatKeepItem*>(rSet.Get(RES_KEEP).Clone()));
m_aRepeatHeading = table.GetRowsToRepeat();
- m_aShadow = rSet.Get(RES_SHADOW);
+ m_aShadow.reset(static_cast<SvxShadowItem*>(rSet.Get(RES_SHADOW).Clone()));
}
bool SwTableAutoFormat::FirstRowEndColumnIsRow()
@@ -997,15 +730,13 @@ bool SwTableAutoFormat::Load( SvStream& rStream, const SwAfVersions& rVersions )
if (nVal >= AUTOFORMAT_DATA_ID_31005 && WriterSpecificBlockExists(rStream))
{
- SfxPoolItem* pNew = nullptr;
-
- READ(m_aBreak, SvxFormatBreakItem, AUTOFORMAT_FILE_VERSION);
+ legacy::SvxFormatBreak::Create(*m_aBreak, rStream, AUTOFORMAT_FILE_VERSION);
//unimplemented READ(m_aPageDesc, SwFormatPageDesc, AUTOFORMAT_FILE_VERSION);
- READ(m_aKeepWithNextPara, SvxFormatKeepItem, AUTOFORMAT_FILE_VERSION);
+ legacy::SvxFormatKeep::Create(*m_aKeepWithNextPara, rStream, AUTOFORMAT_FILE_VERSION);
rStream.ReadUInt16( m_aRepeatHeading ).ReadCharAsBool( m_bLayoutSplit ).ReadCharAsBool( m_bRowSplit ).ReadCharAsBool( m_bCollapsingBorders );
- READ(m_aShadow, SvxShadowItem, AUTOFORMAT_FILE_VERSION);
+ legacy::SvxShadow::Create(*m_aShadow, rStream, AUTOFORMAT_FILE_VERSION);
}
bRet = ERRCODE_NONE== rStream.GetError();
@@ -1044,11 +775,11 @@ bool SwTableAutoFormat::Save( SvStream& rStream, sal_uInt16 fileVersion ) const
{
WriterSpecificAutoFormatBlock block(rStream);
- m_aBreak.Store(rStream, m_aBreak.GetVersion(fileVersion));
+ legacy::SvxFormatBreak::Store(*m_aBreak, rStream, legacy::SvxFormatBreak::GetVersion(fileVersion));
//unimplemented m_aPageDesc.Store(rStream, m_aPageDesc.GetVersion(fileVersion));
- m_aKeepWithNextPara.Store(rStream, m_aKeepWithNextPara.GetVersion(fileVersion));
+ legacy::SvxFormatKeep::Store(*m_aKeepWithNextPara, rStream, legacy::SvxFormatKeep::GetVersion(fileVersion));
rStream.WriteUInt16( m_aRepeatHeading ).WriteBool( m_bLayoutSplit ).WriteBool( m_bRowSplit ).WriteBool( m_bCollapsingBorders );
- m_aShadow.Store(rStream, m_aShadow.GetVersion(fileVersion));
+ legacy::SvxShadow::Store(*m_aShadow, rStream, legacy::SvxShadow::GetVersion(fileVersion));
}
bool bRet = ERRCODE_NONE == rStream.GetError();
@@ -1373,8 +1104,7 @@ bool SwTableAutoFormatTable::Save( SvStream& rStream ) const
return false;
// Write this version number for all attributes
- m_pImpl->m_AutoFormats[0]->GetBoxFormat(0).SaveVersionNo(
- rStream, AUTOFORMAT_FILE_VERSION);
+ SwAfVersions::Write(rStream, AUTOFORMAT_FILE_VERSION);
rStream.WriteUInt16( m_pImpl->m_AutoFormats.size() - 1 );
bRet = ERRCODE_NONE == rStream.GetError();
diff --git a/sw/source/core/doc/tblrwcl.cxx b/sw/source/core/doc/tblrwcl.cxx
index f6c0bb60e715..b414d65847f7 100644
--- a/sw/source/core/doc/tblrwcl.cxx
+++ b/sw/source/core/doc/tblrwcl.cxx
@@ -1803,20 +1803,43 @@ static void lcl_CopyBoxToDoc(FndBox_ const& rFndBox, CpyPara *const pCpyPara)
// Find the Frame Format in the list of all Frame Formats
CpyTabFrame aFindFrame(static_cast<SwTableBoxFormat*>(rFndBox.GetBox()->GetFrameFormat()));
- SwFormatFrameSize aFrameSz;
+ std::shared_ptr<SwFormatFrameSize> aFrameSz(std::make_shared<SwFormatFrameSize>());
CpyTabFrames::const_iterator itFind = pCpyPara->rTabFrameArr.lower_bound( aFindFrame );
const CpyTabFrames::size_type nFndPos = itFind - pCpyPara->rTabFrameArr.begin();
- if( itFind == pCpyPara->rTabFrameArr.end() || !(*itFind == aFindFrame) ||
- ( aFrameSz = ( aFindFrame = pCpyPara->rTabFrameArr[ nFndPos ]).pNewFrameFormat->
- GetFrameSize()).GetWidth() != static_cast<SwTwips>(nSize) )
+
+ // It *is* sometimes cool to have multiple tests/if's and assignments
+ // in a single statement, and it is technically possible. But it is definitely
+ // not simply readable - where from my POV reading code is done 1000 times
+ // more often than writing it. Thus I dismantled the expression in smaller
+ // chunks to keep it handy/understandable/changeable (hopefully without error)
+ // The original for reference:
+ // if( itFind == pCpyPara->rTabFrameArr.end() || !(*itFind == aFindFrame) ||
+ // ( aFrameSz = ( aFindFrame = pCpyPara->rTabFrameArr[ nFndPos ]).pNewFrameFormat->
+ // GetFrameSize()).GetWidth() != static_cast<SwTwips>(nSize) )
+
+ bool DoCopyIt(itFind == pCpyPara->rTabFrameArr.end());
+
+ if(!DoCopyIt)
+ {
+ DoCopyIt = !(*itFind == aFindFrame);
+ }
+
+ if(!DoCopyIt)
+ {
+ aFindFrame = pCpyPara->rTabFrameArr[ nFndPos ];
+ aFrameSz.reset(static_cast<SwFormatFrameSize*>(aFindFrame.pNewFrameFormat->GetFrameSize().Clone()));
+ DoCopyIt = aFrameSz->GetWidth() != static_cast<SwTwips>(nSize);
+ }
+
+ if(DoCopyIt)
{
// It doesn't exist yet, so copy it
aFindFrame.pNewFrameFormat = pCpyPara->pDoc->MakeTableBoxFormat();
aFindFrame.pNewFrameFormat->CopyAttrs( *rFndBox.GetBox()->GetFrameFormat() );
if( !pCpyPara->bCpyContent )
aFindFrame.pNewFrameFormat->ResetFormatAttr( RES_BOXATR_FORMULA, RES_BOXATR_VALUE );
- aFrameSz.SetWidth( nSize );
- aFindFrame.pNewFrameFormat->SetFormatAttr( aFrameSz );
+ aFrameSz->SetWidth( nSize );
+ aFindFrame.pNewFrameFormat->SetFormatAttr( *aFrameSz );
pCpyPara->rTabFrameArr.insert( aFindFrame );
}
diff --git a/sw/source/core/docnode/ndtbl1.cxx b/sw/source/core/docnode/ndtbl1.cxx
index daf52e4047a9..9781ccd87911 100644
--- a/sw/source/core/docnode/ndtbl1.cxx
+++ b/sw/source/core/docnode/ndtbl1.cxx
@@ -498,7 +498,7 @@ void SwDoc::SetRowBackground( const SwCursor& rCursor, const SvxBrushItem &rNew
}
}
-bool SwDoc::GetRowBackground( const SwCursor& rCursor, SvxBrushItem &rToFill )
+bool SwDoc::GetRowBackground( const SwCursor& rCursor, std::shared_ptr<SvxBrushItem>& rToFill )
{
bool bRet = false;
SwTableNode* pTableNd = rCursor.GetPoint()->nNode.GetNode().FindTableNode();
@@ -513,11 +513,15 @@ bool SwDoc::GetRowBackground( const SwCursor& rCursor, SvxBrushItem &rToFill )
bRet = true;
for ( std::vector<SwTableLine*>::size_type i = 1; i < aRowArr.size(); ++i )
- if ( rToFill != aRowArr[i]->GetFrameFormat()->makeBackgroundBrushItem() )
+ {
+ std::shared_ptr<SvxBrushItem> aAlternative(aRowArr[i]->GetFrameFormat()->makeBackgroundBrushItem());
+
+ if ( rToFill != aAlternative && rToFill && aAlternative && *rToFill != *aAlternative )
{
bRet = false;
break;
}
+ }
}
}
return bRet;
@@ -875,26 +879,28 @@ void SwDoc::SetTabLineStyle( const SwCursor& rCursor,
const_cast<SwTableBox*>(pCell->GetTabBox())->ClaimFrameFormat();
SwFrameFormat *pFormat = pCell->GetFormat();
- SvxBoxItem aBox( pFormat->GetBox() );
+ std::shared_ptr<SvxBoxItem> aBox(static_cast<SvxBoxItem*>(pFormat->GetBox().Clone()));
if ( !pBorderLine && bSetLine )
- aBox = *::GetDfltAttr( RES_BOX );
+ {
+ aBox.reset(static_cast<SvxBoxItem*>(::GetDfltAttr(RES_BOX)->Clone()));
+ }
else
{
- if ( aBox.GetTop() )
- ::lcl_SetLineStyle( const_cast<SvxBorderLine*>(aBox.GetTop()),
+ if ( aBox->GetTop() )
+ ::lcl_SetLineStyle( const_cast<SvxBorderLine*>(aBox->GetTop()),
pColor, pBorderLine );
- if ( aBox.GetBottom() )
- ::lcl_SetLineStyle( const_cast<SvxBorderLine*>(aBox.GetBottom()),
+ if ( aBox->GetBottom() )
+ ::lcl_SetLineStyle( const_cast<SvxBorderLine*>(aBox->GetBottom()),
pColor, pBorderLine );
- if ( aBox.GetLeft() )
- ::lcl_SetLineStyle( const_cast<SvxBorderLine*>(aBox.GetLeft()),
+ if ( aBox->GetLeft() )
+ ::lcl_SetLineStyle( const_cast<SvxBorderLine*>(aBox->GetLeft()),
pColor, pBorderLine );
- if ( aBox.GetRight() )
- ::lcl_SetLineStyle( const_cast<SvxBorderLine*>(aBox.GetRight()),
+ if ( aBox->GetRight() )
+ ::lcl_SetLineStyle( const_cast<SvxBorderLine*>(aBox->GetRight()),
pColor, pBorderLine );
}
- pFormat->SetFormatAttr( aBox );
+ pFormat->SetFormatAttr( *aBox );
}
}
@@ -1178,7 +1184,7 @@ void SwDoc::SetBoxAttr( const SwCursor& rCursor, const SfxPoolItem &rNew )
}
}
-bool SwDoc::GetBoxAttr( const SwCursor& rCursor, SfxPoolItem& rToFill )
+bool SwDoc::GetBoxAttr( const SwCursor& rCursor, std::shared_ptr<SfxPoolItem>& rToFill )
{
bool bRet = false;
SwTableNode* pTableNd = rCursor.GetPoint()->nNode.GetNode().FindTableNode();
@@ -1187,18 +1193,18 @@ bool SwDoc::GetBoxAttr( const SwCursor& rCursor, SfxPoolItem& rToFill )
{
bRet = true;
bool bOneFound = false;
- const sal_uInt16 nWhich = rToFill.Which();
+ const sal_uInt16 nWhich = rToFill->Which();
for (size_t i = 0; i < aBoxes.size(); ++i)
{
switch ( nWhich )
{
case RES_BACKGROUND:
{
- SvxBrushItem aBack =
+ std::shared_ptr<SvxBrushItem> aBack =
aBoxes[i]->GetFrameFormat()->makeBackgroundBrushItem();
if( !bOneFound )
{
- static_cast<SvxBrushItem&>(rToFill) = aBack;
+ rToFill.reset(aBack->Clone());
bOneFound = true;
}
else if( rToFill != aBack )
@@ -1212,10 +1218,10 @@ bool SwDoc::GetBoxAttr( const SwCursor& rCursor, SfxPoolItem& rToFill )
aBoxes[i]->GetFrameFormat()->GetFrameDir();
if( !bOneFound )
{
- static_cast<SvxFrameDirectionItem&>(rToFill) = rDir;
+ rToFill.reset(rDir.Clone());
bOneFound = true;
}
- else if( rToFill != rDir )
+ else if( rToFill && *rToFill != rDir )
bRet = false;
}
break;
@@ -1225,10 +1231,10 @@ bool SwDoc::GetBoxAttr( const SwCursor& rCursor, SfxPoolItem& rToFill )
aBoxes[i]->GetFrameFormat()->GetVertOrient();
if( !bOneFound )
{
- static_cast<SwFormatVertOrient&>(rToFill) = rOrient;
+ rToFill.reset(rOrient.Clone());
bOneFound = true;
}
- else if( rToFill != rOrient )
+ else if( rToFill && *rToFill != rOrient )
bRet = false;
}
break;
diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx
index 363f1056583a..f81fb14a647c 100644
--- a/sw/source/core/frmedt/fefly1.cxx
+++ b/sw/source/core/frmedt/fefly1.cxx
@@ -701,8 +701,8 @@ const SwFrameFormat *SwFEShell::NewFlyFrame( const SfxItemSet& rSet, bool bAnchV
GetDoc()->GetIDocumentUndoRedo().StartUndo( SwUndoId::INSLAYFMT, nullptr );
std::unique_ptr<SwFormatAnchor> pOldAnchor;
bool bHOriChgd = false, bVOriChgd = false;
- SwFormatVertOrient aOldV;
- SwFormatHoriOrient aOldH;
+ std::shared_ptr<SwFormatVertOrient> aOldV;
+ std::shared_ptr<SwFormatHoriOrient> aOldH;
if ( RndStdIds::FLY_AT_PAGE != eRndId )
{
@@ -718,14 +718,14 @@ const SwFrameFormat *SwFEShell::NewFlyFrame( const SfxItemSet& rSet, bool bAnchV
&& text::HoriOrientation::NONE == static_cast<const SwFormatHoriOrient*>(pItem)->GetHoriOrient() )
{
bHOriChgd = true;
- aOldH = *static_cast<const SwFormatHoriOrient*>(pItem);
+ aOldH.reset(static_cast<SwFormatHoriOrient*>(pItem->Clone()));
const_cast<SfxItemSet&>(rSet).Put( SwFormatHoriOrient( 0, text::HoriOrientation::LEFT ) );
}
if( SfxItemState::SET == rSet.GetItemState( RES_VERT_ORIENT, false, &pItem )
&& text::VertOrientation::NONE == static_cast<const SwFormatVertOrient*>(pItem)->GetVertOrient() )
{
bVOriChgd = true;
- aOldV = *static_cast<const SwFormatVertOrient*>(pItem);
+ aOldV.reset(static_cast<SwFormatVertOrient*>(pItem->Clone()));
const_cast<SfxItemSet&>(rSet).Put( SwFormatVertOrient( 0, text::VertOrientation::TOP ) );
}
}
@@ -773,9 +773,9 @@ const SwFrameFormat *SwFEShell::NewFlyFrame( const SfxItemSet& rSet, bool bAnchV
const_cast<SfxItemSet&>(rSet).Put( *pOldAnchor );
if( bHOriChgd )
- const_cast<SfxItemSet&>(rSet).Put( aOldH );
+ const_cast<SfxItemSet&>(rSet).Put( *aOldH );
if( bVOriChgd )
- const_cast<SfxItemSet&>(rSet).Put( aOldV );
+ const_cast<SfxItemSet&>(rSet).Put( *aOldV );
GetDoc()->SetFlyFrameAttr( *pRet, const_cast<SfxItemSet&>(rSet) );
GetDoc()->GetIDocumentUndoRedo().DoUndo(bDoesUndo);
diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx
index 61a995381a52..a60eff107e9a 100644
--- a/sw/source/core/frmedt/fetab.cxx
+++ b/sw/source/core/frmedt/fetab.cxx
@@ -754,7 +754,7 @@ void SwFEShell::SetRowBackground( const SvxBrushItem &rNew )
EndAllActionAndCall();
}
-bool SwFEShell::GetRowBackground( SvxBrushItem &rToFill ) const
+bool SwFEShell::GetRowBackground( std::shared_ptr<SvxBrushItem>& rToFill ) const
{
return SwDoc::GetRowBackground( *getShellCursor( false ), rToFill );
}
@@ -790,9 +790,12 @@ void SwFEShell::SetBoxBackground( const SvxBrushItem &rNew )
EndAllActionAndCall();
}
-bool SwFEShell::GetBoxBackground( SvxBrushItem &rToFill ) const
+bool SwFEShell::GetBoxBackground( std::shared_ptr<SvxBrushItem>& rToFill ) const
{
- return SwDoc::GetBoxAttr( *getShellCursor( false ), rToFill );
+ std::shared_ptr<SfxPoolItem> aTemp(rToFill);
+ bool bRetval(SwDoc::GetBoxAttr(*getShellCursor( false ), aTemp));
+ rToFill = std::static_pointer_cast<SvxBrushItem>(aTemp);
+ return bRetval;
}
void SwFEShell::SetBoxDirection( const SvxFrameDirectionItem& rNew )
@@ -803,9 +806,12 @@ void SwFEShell::SetBoxDirection( const SvxFrameDirectionItem& rNew )
EndAllActionAndCall();
}
-bool SwFEShell::GetBoxDirection( SvxFrameDirectionItem& rToFill ) const
+bool SwFEShell::GetBoxDirection( std::shared_ptr<SvxFrameDirectionItem>& rToFill ) const
{
- return SwDoc::GetBoxAttr( *getShellCursor( false ), rToFill );
+ std::shared_ptr<SfxPoolItem> aTemp(rToFill);
+ bool bRetval(SwDoc::GetBoxAttr(*getShellCursor( false ), aTemp));
+ rToFill = std::static_pointer_cast<SvxFrameDirectionItem>(aTemp);
+ return bRetval;
}
void SwFEShell::SetBoxAlign( sal_uInt16 nAlign )
@@ -834,7 +840,7 @@ void SwFEShell::SetTabBackground( const SvxBrushItem &rNew )
GetDoc()->getIDocumentState().SetModified();
}
-void SwFEShell::GetTabBackground( SvxBrushItem &rToFill ) const
+void SwFEShell::GetTabBackground( std::shared_ptr<SvxBrushItem>& rToFill ) const
{
SwFrame *pFrame = GetCurrFrame();
if( pFrame && pFrame->IsInTab() )
diff --git a/sw/source/core/inc/frmtool.hxx b/sw/source/core/inc/frmtool.hxx
index 18048e34112b..8765dd034b6f 100644
--- a/sw/source/core/inc/frmtool.hxx
+++ b/sw/source/core/inc/frmtool.hxx
@@ -281,7 +281,7 @@ class SwBorderAttrs : public SwCacheObj
const SwAttrSet &m_rAttrSet;
const SvxULSpaceItem &m_rUL;
// #i96772#
- SvxLRSpaceItem m_rLR;
+ std::shared_ptr<SvxLRSpaceItem> m_rLR;
const SvxBoxItem &m_rBox;
const SvxShadowItem &m_rShadow;
const Size m_aFrameSize;
diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx
index 7c77560c8e33..0cbb44249644 100644
--- a/sw/source/core/layout/atrfrm.cxx
+++ b/sw/source/core/layout/atrfrm.cxx
@@ -1265,48 +1265,6 @@ void SwFormatSurround::dumpAsXml(xmlTextWriterPtr pWriter) const
xmlTextWriterEndElement(pWriter);
}
-SvStream& SwFormatVertOrient::Store(SvStream &rStream, sal_uInt16 /*version*/) const
-{
-#if SAL_TYPES_SIZEOFLONG == 8
- rStream.WriteInt64(m_nYPos);
-#else
- rStream.WriteInt32(m_nYPos);
-#endif
- rStream.WriteInt16( m_eOrient ).WriteInt16( m_eRelation );
- return rStream;
-}
-
-SfxPoolItem* SwFormatVertOrient::Create(SvStream &rStream, sal_uInt16 nVersionAbusedAsSize) const
-{
- SwTwips yPos(0);
- sal_Int16 orient(0);
- sal_Int16 relation(0);
- switch (nVersionAbusedAsSize)
- {
- // compatibility hack for Table Auto Format: SwTwips is "long" :(
- // (this means that the file format is platform dependent)
- case 14:
- {
- sal_Int64 n(0);
- rStream.ReadInt64(n);
- yPos = n;
- }
- break;
- case 10:
- {
- sal_Int32 n(0);
- rStream.ReadInt32(n);
- yPos = n;
- }
- break;
- default:
- SAL_WARN("sw.core", "SwFormatVertOrient::Create: unknown size");
- }
- rStream.ReadInt16( orient ).ReadInt16( relation );
-
- return new SwFormatVertOrient(yPos, orient, relation);
-}
-
// Partially implemented inline in hxx
SwFormatVertOrient::SwFormatVertOrient( SwTwips nY, sal_Int16 eVert,
sal_Int16 eRel )
@@ -3210,16 +3168,17 @@ bool SwFlyFrameFormat::IsBackgroundTransparent() const
// NOTE: If background color is "no fill"/"auto fill" (COL_TRANSPARENT)
// and there is no background graphic, it "inherites" the background
// from its anchor.
- SvxBrushItem aBackground(makeBackgroundBrushItem());
- if ( (aBackground.GetColor().GetTransparency() != 0) &&
- (aBackground.GetColor() != COL_TRANSPARENT)
+ std::shared_ptr<SvxBrushItem> aBackground(makeBackgroundBrushItem());
+ if ( aBackground &&
+ (aBackground->GetColor().GetTransparency() != 0) &&
+ (aBackground->GetColor() != COL_TRANSPARENT)
)
{
return true;
}
else
{
- const GraphicObject *pTmpGrf = aBackground.GetGraphicObject();
+ const GraphicObject *pTmpGrf = aBackground->GetGraphicObject();
if ( pTmpGrf &&
(pTmpGrf->GetAttr().GetTransparency() != 0)
)
@@ -3249,9 +3208,10 @@ bool SwFlyFrameFormat::IsBackgroundBrushInherited() const
}
else
{
- SvxBrushItem aBackground(makeBackgroundBrushItem());
- if ( (aBackground.GetColor() == COL_TRANSPARENT) &&
- !(aBackground.GetGraphicObject()) )
+ std::shared_ptr<SvxBrushItem> aBackground(makeBackgroundBrushItem());
+ if ( aBackground &&
+ (aBackground->GetColor() == COL_TRANSPARENT) &&
+ !(aBackground->GetGraphicObject()) )
{
return true;
}
diff --git a/sw/source/core/layout/flylay.cxx b/sw/source/core/layout/flylay.cxx
index 16a610847978..e7d19227fd88 100644
--- a/sw/source/core/layout/flylay.cxx
+++ b/sw/source/core/layout/flylay.cxx
@@ -358,9 +358,9 @@ bool SwFlyFreeFrame::supportsAutoContour() const
}
else
{
- const SvxBrushItem aBack(GetFormat()->makeBackgroundBrushItem());
+ const std::shared_ptr<SvxBrushItem> aBack(GetFormat()->makeBackgroundBrushItem());
- if(aBack.isUsed())
+ if(aBack && aBack->isUsed())
{
return false;
}
diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index 5c33911727bf..8e7c4a3700ff 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -1977,7 +1977,7 @@ SwBorderAttrs::SwBorderAttrs(const SwModify *pMod, const SwFrame *pConstructor)
, m_rUL(m_rAttrSet.GetULSpace())
// #i96772#
// LRSpaceItem is copied due to the possibility that it is adjusted - see below
- , m_rLR(m_rAttrSet.GetLRSpace())
+ , m_rLR(static_cast<SvxLRSpaceItem*>(m_rAttrSet.GetLRSpace().Clone()))
, m_rBox(m_rAttrSet.GetBox())
, m_rShadow(m_rAttrSet.GetShadow())
, m_aFrameSize(m_rAttrSet.GetFrameSize().GetSize())
@@ -2001,7 +2001,7 @@ SwBorderAttrs::SwBorderAttrs(const SwModify *pMod, const SwFrame *pConstructor)
}
else if ( pConstructor->IsNoTextFrame() )
{
- m_rLR = SvxLRSpaceItem ( RES_LR_SPACE );
+ m_rLR = std::make_shared<SvxLRSpaceItem>(RES_LR_SPACE);
}
// Caution: The USHORTs for the cached values are not initialized by intention!
@@ -2054,9 +2054,9 @@ long SwBorderAttrs::CalcRight( const SwFrame* pCaller ) const
}
// for paragraphs, "left" is "before text" and "right" is "after text"
if ( pCaller->IsTextFrame() && pCaller->IsRightToLeft() )
- nRight += m_rLR.GetLeft();
+ nRight += m_rLR->GetLeft();
else
- nRight += m_rLR.GetRight();
+ nRight += m_rLR->GetRight();
// correction: retrieve left margin for numbering in R2L-layout
if ( pCaller->IsTextFrame() && pCaller->IsRightToLeft() )
@@ -2103,7 +2103,7 @@ long SwBorderAttrs::CalcLeft( const SwFrame *pCaller ) const
// for paragraphs, "left" is "before text" and "right" is "after text"
if ( pCaller->IsTextFrame() && pCaller->IsRightToLeft() )
- nLeft += m_rLR.GetRight();
+ nLeft += m_rLR->GetRight();
else
{
bool bIgnoreMargin = false;
@@ -2121,7 +2121,7 @@ long SwBorderAttrs::CalcLeft( const SwFrame *pCaller ) const
}
}
if (!bIgnoreMargin)
- nLeft += m_rLR.GetLeft();
+ nLeft += m_rLR->GetLeft();
}
// correction: do not retrieve left margin for numbering in R2L-layout
diff --git a/sw/source/core/layout/legacyitem.cxx b/sw/source/core/layout/legacyitem.cxx
new file mode 100755
index 000000000000..9dea0dca8cf6
--- /dev/null
+++ b/sw/source/core/layout/legacyitem.cxx
@@ -0,0 +1,82 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <legacyitem.hxx>
+#include <tools/stream.hxx>
+#include <sal/log.hxx>
+#include <fmtornt.hxx>
+
+namespace legacy
+{
+ namespace SwFormatVert
+ {
+ sal_uInt16 GetVersion(sal_uInt16)
+ {
+ return 0;
+ }
+
+ void Create(SwFormatVertOrient& rItem, SvStream& rStrm, sal_uInt16 nVersionAbusedAsSize)
+ {
+ SwTwips yPos(0);
+ sal_Int16 orient(0);
+ sal_Int16 relation(0);
+
+ switch (nVersionAbusedAsSize)
+ {
+ // compatibility hack for Table Auto Format: SwTwips is "long" :(
+ // (this means that the file format is platform dependent)
+ case 14:
+ {
+ sal_Int64 n(0);
+ rStrm.ReadInt64(n);
+ yPos = n;
+ break;
+ }
+ case 10:
+ {
+ sal_Int32 n(0);
+ rStrm.ReadInt32(n);
+ yPos = n;
+ break;
+ }
+ default:
+ SAL_WARN("sw.core", "SwFormatVertOrient::Create: unknown size");
+ }
+
+ rStrm.ReadInt16( orient ).ReadInt16( relation );
+
+ rItem.SetPos(yPos);
+ rItem.SetVertOrient(orient);
+ rItem.SetRelationOrient(relation);
+ }
+
+ SvStream& Store(const SwFormatVertOrient& rItem, SvStream& rStrm, sal_uInt16)
+ {
+#if SAL_TYPES_SIZEOFLONG == 8
+ rStrm.WriteInt64(rItem.GetPos());
+#else
+ rStrm.WriteInt32(rItem.GetPos());
+#endif
+ rStrm.WriteInt16(rItem.GetVertOrient()).WriteInt16(rItem.GetRelationOrient());
+ return rStrm;
+ }
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/layout/pagedesc.cxx b/sw/source/core/layout/pagedesc.cxx
index 2e3a122655e6..a0c7e08ee45b 100644
--- a/sw/source/core/layout/pagedesc.cxx
+++ b/sw/source/core/layout/pagedesc.cxx
@@ -159,7 +159,7 @@ void SwPageDesc::Mirror()
aSet.Put( m_Master.GetPaperBin() );
aSet.Put( m_Master.GetULSpace() );
aSet.Put( m_Master.GetBox() );
- aSet.Put( m_Master.makeBackgroundBrushItem() );
+ aSet.Put( *m_Master.makeBackgroundBrushItem() );
aSet.Put( m_Master.GetShadow() );
aSet.Put( m_Master.GetCol() );
aSet.Put( m_Master.GetFrameDir() );
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index e8f0613cf942..ad7530657e4e 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -3920,13 +3920,14 @@ void SwFlyFrame::PaintSwFrame(vcl::RenderContext& rRenderContext, SwRect const&
}
else
{
- SvxBrushItem aBack = GetFormat()->makeBackgroundBrushItem();
+ std::shared_ptr<SvxBrushItem> aBack = GetFormat()->makeBackgroundBrushItem();
// OD 07.08.2002 #99657# #GetTransChg#
// to determine, if background has to be painted, by checking, if
// background color is not COL_TRANSPARENT ("no fill"/"auto fill")
// or a background graphic exists.
- bPaintCompleteBack = (aBack.GetColor() != COL_TRANSPARENT) ||
- aBack.GetGraphicPos() != GPOS_NONE;
+ bPaintCompleteBack = aBack &&
+ ((aBack->GetColor() != COL_TRANSPARENT) ||
+ aBack->GetGraphicPos() != GPOS_NONE);
}
}
// paint of margin needed.
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 5c2158d415cb..060a8dcf6de3 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -3130,8 +3130,8 @@ SwTwips SwTabFrame::GrowFrame( SwTwips nDist, bool bTst, bool bInfo )
InvalidatePage( pPage );
SetComplete();
- SvxBrushItem aBack = GetFormat()->makeBackgroundBrushItem();
- const SvxGraphicPosition ePos = aBack.GetGraphicPos();
+ std::shared_ptr<SvxBrushItem> aBack = GetFormat()->makeBackgroundBrushItem();
+ const SvxGraphicPosition ePos = aBack ? aBack->GetGraphicPos() : GPOS_NONE;
if ( GPOS_NONE != ePos && GPOS_TILED != ePos )
SetCompletePaint();
}
diff --git a/sw/source/core/layout/wsfrm.cxx b/sw/source/core/layout/wsfrm.cxx
index 0f486b4f3f4b..187f64e797a5 100644
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@ -1678,8 +1678,8 @@ SwTwips SwFrame::AdjustNeighbourhood( SwTwips nDiff, bool bTst )
GetNext()->InvalidatePos_();
//Trigger a repaint if necessary.
- SvxBrushItem aBack(pUp->GetFormat()->makeBackgroundBrushItem());
- const SvxGraphicPosition ePos = aBack.GetGraphicPos();
+ std::shared_ptr<SvxBrushItem> aBack(pUp->GetFormat()->makeBackgroundBrushItem());
+ const SvxGraphicPosition ePos = aBack ? aBack->GetGraphicPos() : GPOS_NONE;
if ( ePos != GPOS_NONE && ePos != GPOS_TILED )
pViewShell->InvalidateWindows( pUp->getFrameArea() );
@@ -2717,8 +2717,8 @@ SwTwips SwLayoutFrame::GrowFrame( SwTwips nDist, bool bTst, bool bInfo )
if( IsCellFrame() )
InvaPercentLowers( nReal );
- SvxBrushItem aBack(GetFormat()->makeBackgroundBrushItem());
- const SvxGraphicPosition ePos = aBack.GetGraphicPos();
+ std::shared_ptr<SvxBrushItem> aBack(GetFormat()->makeBackgroundBrushItem());
+ const SvxGraphicPosition ePos = aBack ? aBack->GetGraphicPos() : GPOS_NONE;
if ( GPOS_NONE != ePos && GPOS_TILED != ePos )
SetCompletePaint();
}
@@ -2903,8 +2903,8 @@ SwTwips SwLayoutFrame::ShrinkFrame( SwTwips nDist, bool bTst, bool bInfo )
const SwFrameFormat* pFormat = GetFormat();
if (pFormat)
{
- SvxBrushItem aBack(pFormat->makeBackgroundBrushItem());
- const SvxGraphicPosition ePos = aBack.GetGraphicPos();
+ std::shared_ptr<SvxBrushItem> aBack(pFormat->makeBackgroundBrushItem());
+ const SvxGraphicPosition ePos = aBack ? aBack->GetGraphicPos() : GPOS_NONE;
if ( GPOS_NONE == ePos || GPOS_TILED == ePos )
bCompletePaint = false;
}
diff --git a/sw/source/core/text/porfld.cxx b/sw/source/core/text/porfld.cxx
index bfb547d31487..760a0a8774bf 100644
--- a/sw/source/core/text/porfld.cxx
+++ b/sw/source/core/text/porfld.cxx
@@ -765,7 +765,7 @@ SwGrfNumPortion::SwGrfNumPortion(
m_bReplace = false;
if( pGrfBrush )
{
- *pBrush = *pGrfBrush;
+ pBrush.reset(static_cast<SvxBrushItem*>(pGrfBrush->Clone()));
const Graphic* pGraph = pGrfBrush->GetGraphic();
if( pGraph )
SetAnimated( pGraph->IsAnimated() );
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index c044b4903112..ff94c1848b1b 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -3289,7 +3289,7 @@ SwTwips SwTextNode::GetAdditionalIndentForStartingNewList() const
}
// #i96772#
-void SwTextNode::ClearLRSpaceItemDueToListLevelIndents( SvxLRSpaceItem& o_rLRSpaceItem ) const
+void SwTextNode::ClearLRSpaceItemDueToListLevelIndents( std::shared_ptr<SvxLRSpaceItem>& o_rLRSpaceItem ) const
{
if ( AreListLevelIndentsApplicable() )
{
@@ -3299,8 +3299,7 @@ void SwTextNode::ClearLRSpaceItemDueToListLevelIndents( SvxLRSpaceItem& o_rLRSpa
const SwNumFormat& rFormat = pRule->Get(lcl_BoundListLevel(GetActualListLevel()));
if ( rFormat.GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
{
- SvxLRSpaceItem aLR( RES_LR_SPACE );
- o_rLRSpaceItem = aLR;
+ o_rLRSpaceItem = std::make_shared<SvxLRSpaceItem>(RES_LR_SPACE);
}
}
}
diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx
index dc6db2ab7438..d5dfc5681fb6 100644
--- a/sw/source/core/unocore/unoframe.cxx
+++ b/sw/source/core/unocore/unoframe.cxx
@@ -355,7 +355,7 @@ bool BaseFrameProperties_Impl::FillBaseProperties(SfxItemSet& rToSet, const SfxI
if(bXFillStyleItemUsed)
{
XFillStyleItem aXFillStyleItem;
- SvxBrushItem aBrush(RES_BACKGROUND);
+ std::shared_ptr<SvxBrushItem> aBrush(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
if(pXFillStyleItem)
{
@@ -379,10 +379,10 @@ bool BaseFrameProperties_Impl::FillBaseProperties(SfxItemSet& rToSet, const SfxI
// Fill style is set to solid, but no fill color is given.
// On the other hand, we have a BackColor, so use that.
if (pCol)
- aBrush.PutValue(*pCol, MID_BACK_COLOR);
+ aBrush->PutValue(*pCol, MID_BACK_COLOR);
else
- aBrush.PutValue(*pRGBCol, MID_BACK_COLOR_R_G_B);
- setSvxBrushItemAsFillAttributesToTargetSet(aBrush, rToSet);
+ aBrush->PutValue(*pRGBCol, MID_BACK_COLOR_R_G_B);
+ setSvxBrushItemAsFillAttributesToTargetSet(*aBrush, rToSet);
}
if(pXFillGradientItem || pXFillGradientNameItem)
@@ -490,8 +490,8 @@ bool BaseFrameProperties_Impl::FillBaseProperties(SfxItemSet& rToSet, const SfxI
}
if (aXFillStyleItem.GetValue() == drawing::FillStyle_SOLID)
{
- aBrush.PutValue(*pColTrans, MID_BACK_COLOR_TRANSPARENCY);
- setSvxBrushItemAsFillAttributesToTargetSet(aBrush, rToSet);
+ aBrush->PutValue(*pColTrans, MID_BACK_COLOR_TRANSPARENCY);
+ setSvxBrushItemAsFillAttributesToTargetSet(*aBrush, rToSet);
}
}
@@ -1767,14 +1767,14 @@ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const ::uno::Any&
if(RES_BACKGROUND == pEntry->nWID)
{
const SwAttrSet& rSet = pFormat->GetAttrSet();
- const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND, true, pDoc->IsInXMLImport()));
- SvxBrushItem aChangedBrushItem(aOriginalBrushItem);
+ const std::shared_ptr<SvxBrushItem> aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND, true, pDoc->IsInXMLImport()));
+ std::shared_ptr<SvxBrushItem> aChangedBrushItem(static_cast<SvxBrushItem*>(aOriginalBrushItem->Clone()));
- aChangedBrushItem.PutValue(aValue, nMemberId);
+ aChangedBrushItem->PutValue(aValue, nMemberId);
- if(aChangedBrushItem != aOriginalBrushItem)
+ if(*aChangedBrushItem != *aOriginalBrushItem)
{
- setSvxBrushItemAsFillAttributesToTargetSet(aChangedBrushItem, aSet);
+ setSvxBrushItemAsFillAttributesToTargetSet(*aChangedBrushItem, aSet);
pFormat->GetDoc()->SetFlyFrameAttr( *pFormat, aSet );
}
@@ -2217,9 +2217,9 @@ uno::Any SwXFrame::getPropertyValue(const OUString& rPropertyName)
if(RES_BACKGROUND == pEntry->nWID)
{
- const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND));
+ const std::shared_ptr<SvxBrushItem> aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND));
- if(!aOriginalBrushItem.QueryValue(aAny, nMemberId))
+ if(!aOriginalBrushItem->QueryValue(aAny, nMemberId))
{
OSL_ENSURE(false, "Error getting attribute from RES_BACKGROUND (!)");
}
diff --git a/sw/source/core/unocore/unoparagraph.cxx b/sw/source/core/unocore/unoparagraph.cxx
index bf9abc3bf68c..2e1201675697 100644
--- a/sw/source/core/unocore/unoparagraph.cxx
+++ b/sw/source/core/unocore/unoparagraph.cxx
@@ -450,9 +450,9 @@ void SwXParagraph::Impl::GetSinglePropertyValue_Impl(
{
case RES_BACKGROUND:
{
- const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND));
+ const std::shared_ptr<SvxBrushItem> aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND));
- if(!aOriginalBrushItem.QueryValue(rAny, rEntry.nMemberId))
+ if(!aOriginalBrushItem->QueryValue(rAny, rEntry.nMemberId))
{
OSL_ENSURE(false, "Error getting attribute from RES_BACKGROUND (!)");
}
diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 2dfc44ef08c3..56f991b53364 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -1647,20 +1647,20 @@ template<>
void SwXStyle::SetPropertyValue<sal_uInt16(RES_BACKGROUND)>(const SfxItemPropertySimpleEntry& rEntry, const SfxItemPropertySet&, const uno::Any& rValue, SwStyleBase_Impl& o_rStyleBase)
{
SfxItemSet& rStyleSet = o_rStyleBase.GetItemSet();
- const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rStyleSet, RES_BACKGROUND, true, m_pDoc->IsInXMLImport()));
- SvxBrushItem aChangedBrushItem(aOriginalBrushItem);
+ const std::shared_ptr<SvxBrushItem> aOriginalBrushItem(getSvxBrushItemFromSourceSet(rStyleSet, RES_BACKGROUND, true, m_pDoc->IsInXMLImport()));
+ std::shared_ptr<SvxBrushItem> aChangedBrushItem(static_cast<SvxBrushItem*>(aOriginalBrushItem->Clone()));
uno::Any aValue(rValue);
const auto nMemberId(lcl_TranslateMetric(rEntry, m_pDoc, aValue));
- aChangedBrushItem.PutValue(aValue, nMemberId);
+ aChangedBrushItem->PutValue(aValue, nMemberId);
// 0xff is already the default - but if BackTransparent is set
// to true, it must be applied in the item set on ODF import
// to potentially override parent style, which is unknown yet
- if(aChangedBrushItem == aOriginalBrushItem && (MID_GRAPHIC_TRANSPARENT != nMemberId || !aValue.has<bool>() || !aValue.get<bool>()))
+ if(*aChangedBrushItem == *aOriginalBrushItem && (MID_GRAPHIC_TRANSPARENT != nMemberId || !aValue.has<bool>() || !aValue.get<bool>()))
return;
- setSvxBrushItemAsFillAttributesToTargetSet(aChangedBrushItem, rStyleSet);
+ setSvxBrushItemAsFillAttributesToTargetSet(*aChangedBrushItem, rStyleSet);
}
template<>
void SwXStyle::SetPropertyValue<OWN_ATTR_FILLBMP_MODE>(const SfxItemPropertySimpleEntry&, const SfxItemPropertySet&, const uno::Any& rValue, SwStyleBase_Impl& o_rStyleBase)
@@ -2281,9 +2281,9 @@ uno::Any SwXStyle::GetStyleProperty<sal_uInt16(RES_BACKGROUND)>(const SfxItemPro
{
PrepareStyleBase(rBase);
const SfxItemSet& rSet = rBase.GetItemSet();
- const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND));
+ const std::shared_ptr<SvxBrushItem> aOriginalBrushItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND));
uno::Any aResult;
- if(!aOriginalBrushItem.QueryValue(aResult, rEntry.nMemberId))
+ if(!aOriginalBrushItem->QueryValue(aResult, rEntry.nMemberId))
SAL_WARN("sw.uno", "error getting attribute from RES_BACKGROUND.");
return aResult;
}
@@ -2682,7 +2682,7 @@ void SAL_CALL SwXStyle::setAllPropertiesToDefault()
pPageFormat->SetFormatAttr(aLR);
pPageFormat->SetFormatAttr(aUL);
SwPageDesc* pStdPgDsc = m_pDoc->getIDocumentStylePoolAccess().GetPageDescFromPool(RES_POOLPAGE_STANDARD);
- SwFormatFrameSize aFrameSz(ATT_FIX_SIZE);
+ std::shared_ptr<SwFormatFrameSize> aFrameSz(std::make_shared<SwFormatFrameSize>(ATT_FIX_SIZE));
if(RES_POOLPAGE_STANDARD == rPageDesc.GetPoolFormatId())
{
@@ -2690,27 +2690,27 @@ void SAL_CALL SwXStyle::setAllPropertiesToDefault()
{
const Size aPhysSize( SvxPaperInfo::GetPaperSize(
static_cast<Printer*>(m_pDoc->getIDocumentDeviceAccess().getPrinter(false))));
- aFrameSz.SetSize(aPhysSize);
+ aFrameSz->SetSize(aPhysSize);
}
else
{
- aFrameSz.SetSize(SvxPaperInfo::GetDefaultPaperSize());
+ aFrameSz->SetSize(SvxPaperInfo::GetDefaultPaperSize());
}
}
else
{
- aFrameSz = pStdPgDsc->GetMaster().GetFrameSize();
+ aFrameSz.reset(static_cast<SwFormatFrameSize*>(pStdPgDsc->GetMaster().GetFrameSize().Clone()));
}
if(pStdPgDsc->GetLandscape())
{
- SwTwips nTmp = aFrameSz.GetHeight();
- aFrameSz.SetHeight(aFrameSz.GetWidth());
- aFrameSz.SetWidth(nTmp);
+ SwTwips nTmp = aFrameSz->GetHeight();
+ aFrameSz->SetHeight(aFrameSz->GetWidth());
+ aFrameSz->SetWidth(nTmp);
}
- pPageFormat->SetFormatAttr(aFrameSz);
+ pPageFormat->SetFormatAttr(*aFrameSz);
m_pDoc->ChgPageDesc(nPgDscPos, m_pDoc->GetPageDesc(nPgDscPos));
return;
}
@@ -3641,14 +3641,14 @@ uno::Reference< style::XAutoStyle > SwXAutoStyleFamily::insertStyle(
}
case RES_BACKGROUND:
{
- const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(aSet, RES_BACKGROUND, true, m_pDocShell->GetDoc()->IsInXMLImport()));
- SvxBrushItem aChangedBrushItem(aOriginalBrushItem);
+ const std::shared_ptr<SvxBrushItem> aOriginalBrushItem(getSvxBrushItemFromSourceSet(aSet, RES_BACKGROUND, true, m_pDocShell->GetDoc()->IsInXMLImport()));
+ std::shared_ptr<SvxBrushItem> aChangedBrushItem(static_cast<SvxBrushItem*>(aOriginalBrushItem->Clone()));
- aChangedBrushItem.PutValue(aValue, nMemberId);
+ aChangedBrushItem->PutValue(aValue, nMemberId);
- if(aChangedBrushItem != aOriginalBrushItem)
+ if(*aChangedBrushItem != *aOriginalBrushItem)
{
- setSvxBrushItemAsFillAttributesToTargetSet(aChangedBrushItem, aSet);
+ setSvxBrushItemAsFillAttributesToTargetSet(*aChangedBrushItem, aSet);
}
bDone = true;
@@ -3969,9 +3969,9 @@ uno::Sequence< uno::Any > SwXAutoStyle::GetPropertyValues_Impl(
{
case RES_BACKGROUND:
{
- const SvxBrushItem aOriginalBrushItem(getSvxBrushItemFromSourceSet(*mpSet, RES_BACKGROUND));
+ const std::shared_ptr<SvxBrushItem> aOriginalBrushItem(getSvxBrushItemFromSourceSet(*mpSet, RES_BACKGROUND));
- if(!aOriginalBrushItem.QueryValue(aTarget, pEntry->nMemberId))
+ if(!aOriginalBrushItem->QueryValue(aTarget, pEntry->nMemberId))
{
OSL_ENSURE(false, "Error getting attribute from RES_BACKGROUND (!)");
}
diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index 26f6dab13353..6843d98d75cd 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -1674,10 +1674,10 @@ void SwXTextTableCursor::setPropertyValue(const OUString& rPropertyName, const u
{
case FN_UNO_TABLE_CELL_BACKGROUND:
{
- SvxBrushItem aBrush(RES_BACKGROUND);
+ std::shared_ptr<SfxPoolItem> aBrush(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
SwDoc::GetBoxAttr(rUnoCursor, aBrush);
- aBrush.PutValue(aValue, pEntry->nMemberId);
- pDoc->SetBoxAttr(rUnoCursor, aBrush);
+ aBrush->PutValue(aValue, pEntry->nMemberId);
+ pDoc->SetBoxAttr(rUnoCursor, *aBrush);
}
break;
@@ -1727,9 +1727,9 @@ uno::Any SwXTextTableCursor::getPropertyValue(const OUString& rPropertyName)
{
case FN_UNO_TABLE_CELL_BACKGROUND:
{
- SvxBrushItem aBrush(RES_BACKGROUND);
+ std::shared_ptr<SfxPoolItem> aBrush(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
if (SwDoc::GetBoxAttr(rUnoCursor, aBrush))
- aBrush.QueryValue(aResult, pEntry->nMemberId);
+ aBrush->QueryValue(aResult, pEntry->nMemberId);
}
break;
case RES_BOXATR_FORMAT:
@@ -1814,8 +1814,8 @@ void SwTableProperties_Impl::AddItemToSet(SfxItemSet& rSet, std::function<Tpooli
{
Tpoolitem aItem = aItemFactory();
for(auto& aMemberAndAny : vMemberAndAny)
- aItem.PutValue(*aMemberAndAny.second, aMemberAndAny.first | (bAddTwips ? CONVERT_TWIPS : 0) );
- rSet.Put(aItem);
+ aItem->PutValue(*aMemberAndAny.second, aMemberAndAny.first | (bAddTwips ? CONVERT_TWIPS : 0) );
+ rSet.Put(*aItem);
}
}
void SwTableProperties_Impl::ApplyTableAttr(const SwTable& rTable, SwDoc& rDoc)
@@ -1837,7 +1837,7 @@ void SwTableProperties_Impl::ApplyTableAttr(const SwTable& rTable, SwDoc& rDoc)
const_cast<SwTable&>(rTable).SetRowsToRepeat( bVal ? 1 : 0 ); // TODO: MULTIHEADER
}
- AddItemToSet<SvxBrushItem>(aSet, [&rFrameFormat]() { return rFrameFormat.makeBackgroundBrushItem(); }, RES_BACKGROUND, {
+ AddItemToSet<std::shared_ptr<SvxBrushItem>>(aSet, [&rFrameFormat]() { return rFrameFormat.makeBackgroundBrushItem(); }, RES_BACKGROUND, {
MID_BACK_COLOR,
MID_GRAPHIC_TRANSPARENT,
MID_GRAPHIC_POSITION,
@@ -1869,10 +1869,10 @@ void SwTableProperties_Impl::ApplyTableAttr(const SwTable& rTable, SwDoc& rDoc)
}
if(bPutBreak)
- AddItemToSet<SvxFormatBreakItem>(aSet, [&rFrameFormat]() { return rFrameFormat.GetBreak(); }, RES_BREAK, {0});
- AddItemToSet<SvxShadowItem>(aSet, [&rFrameFormat]() { return rFrameFormat.GetShadow(); }, RES_SHADOW, {0}, true);
- AddItemToSet<SvxFormatKeepItem>(aSet, [&rFrameFormat]() { return rFrameFormat.GetKeep(); }, RES_KEEP, {0});
- AddItemToSet<SwFormatHoriOrient>(aSet, [&rFrameFormat]() { return rFrameFormat.GetHoriOrient(); }, RES_HORI_ORIENT, {MID_HORIORIENT_ORIENT}, true);
+ AddItemToSet<std::shared_ptr<SvxFormatBreakItem>>(aSet, [&rFrameFormat]() { return std::shared_ptr<SvxFormatBreakItem>(static_cast<SvxFormatBreakItem*>(rFrameFormat.GetBreak().Clone())); }, RES_BREAK, {0});
+ AddItemToSet<std::shared_ptr<SvxShadowItem>>(aSet, [&rFrameFormat]() { return std::shared_ptr<SvxShadowItem>(static_cast<SvxShadowItem*>(rFrameFormat.GetShadow().Clone())); }, RES_SHADOW, {0}, true);
+ AddItemToSet<std::shared_ptr<SvxFormatKeepItem>>(aSet, [&rFrameFormat]() { return std::shared_ptr<SvxFormatKeepItem>(static_cast<SvxFormatKeepItem*>(rFrameFormat.GetKeep().Clone())); }, RES_KEEP, {0});
+ AddItemToSet<std::shared_ptr<SwFormatHoriOrient>>(aSet, [&rFrameFormat]() { return std::shared_ptr<SwFormatHoriOrient>(static_cast<SwFormatHoriOrient*>(rFrameFormat.GetHoriOrient().Clone())); }, RES_HORI_ORIENT, {MID_HORIORIENT_ORIENT}, true);
const uno::Any* pSzRel(nullptr);
GetProperty(FN_TABLE_IS_RELATIVE_WIDTH, 0xff, pSzRel);
@@ -1899,10 +1899,10 @@ void SwTableProperties_Impl::ApplyTableAttr(const SwTable& rTable, SwDoc& rDoc)
aSz.SetWidth(MINLAY);
aSet.Put(aSz);
}
- AddItemToSet<SvxLRSpaceItem>(aSet, [&rFrameFormat]() { return rFrameFormat.GetLRSpace(); }, RES_LR_SPACE, {
+ AddItemToSet<std::shared_ptr<SvxLRSpaceItem>>(aSet, [&rFrameFormat]() { return std::shared_ptr<SvxLRSpaceItem>(static_cast<SvxLRSpaceItem*>(rFrameFormat.GetLRSpace().Clone())); }, RES_LR_SPACE, {
MID_L_MARGIN|CONVERT_TWIPS,
MID_R_MARGIN|CONVERT_TWIPS });
- AddItemToSet<SvxULSpaceItem>(aSet, [&rFrameFormat]() { return rFrameFormat.GetULSpace(); }, RES_UL_SPACE, {
+ AddItemToSet<std::shared_ptr<SvxULSpaceItem>>(aSet, [&rFrameFormat]() { return std::shared_ptr<SvxULSpaceItem>(static_cast<SvxULSpaceItem*>(rFrameFormat.GetULSpace().Clone())); }, RES_UL_SPACE, {
MID_UP_MARGIN|CONVERT_TWIPS,
MID_LO_MARGIN|CONVERT_TWIPS });
const::uno::Any* pSplit(nullptr);
@@ -3397,10 +3397,10 @@ SwXCellRange::setPropertyValue(const OUString& rPropertyName, const uno::Any& aV
{
case FN_UNO_TABLE_CELL_BACKGROUND:
{
- SvxBrushItem aBrush( RES_BACKGROUND );
+ std::shared_ptr<SfxPoolItem> aBrush(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
SwDoc::GetBoxAttr(*m_pImpl->m_pTableCursor, aBrush);
- static_cast<SfxPoolItem&>(aBrush).PutValue(aValue, pEntry->nMemberId);
- pDoc->SetBoxAttr(*m_pImpl->m_pTableCursor, aBrush);
+ aBrush->PutValue(aValue, pEntry->nMemberId);
+ pDoc->SetBoxAttr(*m_pImpl->m_pTableCursor, *aBrush);
}
break;
@@ -3507,9 +3507,9 @@ uno::Any SAL_CALL SwXCellRange::getPropertyValue(const OUString& rPropertyName)
{
case FN_UNO_TABLE_CELL_BACKGROUND:
{
- SvxBrushItem aBrush( RES_BACKGROUND );
+ std::shared_ptr<SfxPoolItem> aBrush(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
if (SwDoc::GetBoxAttr(*m_pImpl->m_pTableCursor, aBrush))
- aBrush.QueryValue(aRet, pEntry->nMemberId);
+ aBrush->QueryValue(aRet, pEntry->nMemberId);
}
break;
@@ -3546,10 +3546,10 @@ uno::Any SAL_CALL SwXCellRange::getPropertyValue(const OUString& rPropertyName)
break;
case RES_VERT_ORIENT:
{
- SwFormatVertOrient aVertOrient;
+ std::shared_ptr<SfxPoolItem> aVertOrient;
if (SwDoc::GetBoxAttr(*m_pImpl->m_pTableCursor, aVertOrient))
{
- aVertOrient.QueryValue( aRet, pEntry->nMemberId );
+ aVertOrient->QueryValue( aRet, pEntry->nMemberId );
}
}
break;
diff --git a/sw/source/filter/basflt/fltini.cxx b/sw/source/filter/basflt/fltini.cxx
index 18de2e807c64..3b6ce6e54469 100644
--- a/sw/source/filter/basflt/fltini.cxx
+++ b/sw/source/filter/basflt/fltini.cxx
@@ -308,9 +308,9 @@ void CalculateFlySize(SfxItemSet& rFlySet, const SwNodeIndex& rAnchor,
if( SfxItemState::SET != rFlySet.GetItemState( RES_FRM_SIZE, true, &pItem ) ||
MINFLY > static_cast<const SwFormatFrameSize*>(pItem)->GetWidth() )
{
- SwFormatFrameSize aSz(rFlySet.Get(RES_FRM_SIZE));
+ std::shared_ptr<SwFormatFrameSize> aSz(static_cast<SwFormatFrameSize*>(rFlySet.Get(RES_FRM_SIZE).Clone()));
if (pItem)
- aSz = static_cast<const SwFormatFrameSize&>(*pItem);
+ aSz.reset(static_cast<SwFormatFrameSize*>(pItem->Clone()));
SwTwips nWidth;
// determine the width; if there is a table use the width of the table;
@@ -397,16 +397,16 @@ void CalculateFlySize(SfxItemSet& rFlySet, const SwNodeIndex& rAnchor,
if( MINFLY > nWidth )
nWidth = MINFLY;
- aSz.SetWidth( nWidth );
- if( MINFLY > aSz.GetHeight() )
- aSz.SetHeight( MINFLY );
- rFlySet.Put( aSz );
+ aSz->SetWidth( nWidth );
+ if( MINFLY > aSz->GetHeight() )
+ aSz->SetHeight( MINFLY );
+ rFlySet.Put( *aSz );
}
else if( MINFLY > static_cast<const SwFormatFrameSize*>(pItem)->GetHeight() )
{
- SwFormatFrameSize aSz( *static_cast<const SwFormatFrameSize*>(pItem) );
- aSz.SetHeight( MINFLY );
- rFlySet.Put( aSz );
+ std::shared_ptr<SwFormatFrameSize> aSz(static_cast<SwFormatFrameSize*>(pItem->Clone()));
+ aSz->SetHeight( MINFLY );
+ rFlySet.Put( *aSz );
}
}
diff --git a/sw/source/filter/html/css1atr.cxx b/sw/source/filter/html/css1atr.cxx
index dd6f6564a4f6..53fe8ef3c76e 100644
--- a/sw/source/filter/html/css1atr.cxx
+++ b/sw/source/filter/html/css1atr.cxx
@@ -2153,7 +2153,7 @@ static bool OutCSS1_FrameFormatBrush( SwHTMLWriter& rWrt,
void SwHTMLWriter::OutCSS1_FrameFormatBackground( const SwFrameFormat& rFrameFormat )
{
// If the frame itself has a background, then export.
- if( OutCSS1_FrameFormatBrush( *this, rFrameFormat.makeBackgroundBrushItem() ) )
+ if( OutCSS1_FrameFormatBrush( *this, *rFrameFormat.makeBackgroundBrushItem() ) )
return;
// If the frame is not linked to a page, we use the background of the anchor.
@@ -2181,7 +2181,7 @@ void SwHTMLWriter::OutCSS1_FrameFormatBackground( const SwFrameFormat& rFrameFor
// If the box has a background, we take it.
if( OutCSS1_FrameFormatBrush( *this,
- pBox->GetFrameFormat()->makeBackgroundBrushItem() ) )
+ *pBox->GetFrameFormat()->makeBackgroundBrushItem() ) )
return;
// Otherwise we use that of the lines
@@ -2189,7 +2189,7 @@ void SwHTMLWriter::OutCSS1_FrameFormatBackground( const SwFrameFormat& rFrameFor
while( pLine )
{
if( OutCSS1_FrameFormatBrush( *this,
- pLine->GetFrameFormat()->makeBackgroundBrushItem() ) )
+ *pLine->GetFrameFormat()->makeBackgroundBrushItem() ) )
return;
pBox = pLine->GetUpper();
pLine = pBox ? pBox->GetUpper() : nullptr;
@@ -2197,7 +2197,7 @@ void SwHTMLWriter::OutCSS1_FrameFormatBackground( const SwFrameFormat& rFrameFor
// If there was none either, we use the background of the table.
if( OutCSS1_FrameFormatBrush( *this,
- pTableNd->GetTable().GetFrameFormat()->makeBackgroundBrushItem() ) )
+ *pTableNd->GetTable().GetFrameFormat()->makeBackgroundBrushItem() ) )
return;
}
@@ -2216,7 +2216,7 @@ void SwHTMLWriter::OutCSS1_FrameFormatBackground( const SwFrameFormat& rFrameFor
// the value of the Config.
OSL_ENSURE( m_pCurrPageDesc, "no page template found" );
if( !OutCSS1_FrameFormatBrush( *this,
- m_pCurrPageDesc->GetMaster().makeBackgroundBrushItem() ) )
+ *m_pCurrPageDesc->GetMaster().makeBackgroundBrushItem() ) )
{
Color aColor( COL_WHITE );
diff --git a/sw/source/filter/html/htmlcss1.cxx b/sw/source/filter/html/htmlcss1.cxx
index c08bd868b084..8ff8ab08d378 100644
--- a/sw/source/filter/html/htmlcss1.cxx
+++ b/sw/source/filter/html/htmlcss1.cxx
@@ -377,12 +377,12 @@ void SwCSS1Parser::SetTableTextColl( bool bHeader )
void SwCSS1Parser::SetPageDescAttrs( const SvxBrushItem *pBrush,
SfxItemSet *pItemSet2 )
{
- SvxBrushItem aBrushItem( RES_BACKGROUND );
- SvxBoxItem aBoxItem( RES_BOX );
- SvxFrameDirectionItem aFrameDirItem(SvxFrameDirection::Environment, RES_FRAMEDIR);
+ std::shared_ptr<SvxBrushItem> aBrushItem(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
+ std::shared_ptr<SvxBoxItem> aBoxItem(std::make_shared<SvxBoxItem>(RES_BOX));
+ std::shared_ptr<SvxFrameDirectionItem> aFrameDirItem(std::make_shared<SvxFrameDirectionItem>(SvxFrameDirection::Environment, RES_FRAMEDIR));
bool bSetBrush = pBrush!=nullptr, bSetBox = false, bSetFrameDir = false;
if( pBrush )
- aBrushItem = *pBrush;
+ aBrushItem.reset(static_cast<SvxBrushItem*>(pBrush->Clone()));
if( pItemSet2 )
{
@@ -391,7 +391,7 @@ void SwCSS1Parser::SetPageDescAttrs( const SvxBrushItem *pBrush,
&pItem ) )
{
// set a background
- aBrushItem = *static_cast<const SvxBrushItem *>(pItem);
+ aBrushItem.reset(static_cast<SvxBrushItem*>(pItem->Clone()));
pItemSet2->ClearItem( RES_BACKGROUND );
bSetBrush = true;
}
@@ -399,7 +399,7 @@ void SwCSS1Parser::SetPageDescAttrs( const SvxBrushItem *pBrush,
if( SfxItemState::SET == pItemSet2->GetItemState( RES_BOX, false, &pItem ) )
{
// set a border
- aBoxItem = *static_cast<const SvxBoxItem *>(pItem);
+ aBoxItem.reset(static_cast<SvxBoxItem*>(pItem->Clone()));
pItemSet2->ClearItem( RES_BOX );
bSetBox = true;
}
@@ -407,7 +407,7 @@ void SwCSS1Parser::SetPageDescAttrs( const SvxBrushItem *pBrush,
if( SfxItemState::SET == pItemSet2->GetItemState( RES_FRAMEDIR, false, &pItem ) )
{
// set a frame
- aFrameDirItem = *static_cast< const SvxFrameDirectionItem *>( pItem );
+ aFrameDirItem.reset(static_cast<SvxFrameDirectionItem*>(pItem->Clone()));
pItemSet2->ClearItem( RES_FRAMEDIR );
bSetFrameDir = true;
}
@@ -425,11 +425,11 @@ void SwCSS1Parser::SetPageDescAttrs( const SvxBrushItem *pBrush,
SwPageDesc aNewPageDesc( *pPageDesc );
SwFrameFormat &rMaster = aNewPageDesc.GetMaster();
if( bSetBrush )
- rMaster.SetFormatAttr( aBrushItem );
+ rMaster.SetFormatAttr( *aBrushItem );
if( bSetBox )
- rMaster.SetFormatAttr( aBoxItem );
+ rMaster.SetFormatAttr( *aBoxItem );
if( bSetFrameDir )
- rMaster.SetFormatAttr( aFrameDirItem );
+ rMaster.SetFormatAttr( *aFrameDirItem );
ChgPageDesc( pPageDesc, aNewPageDesc );
}
@@ -546,7 +546,7 @@ void SwCSS1Parser::SetPageDescAttrs( const SwPageDesc *pPageDesc,
ChgPageDesc( pPageDesc, aNewPageDesc );
}
-SvxBrushItem SwCSS1Parser::makePageDescBackground() const
+std::shared_ptr<SvxBrushItem> SwCSS1Parser::makePageDescBackground() const
{
return m_pDoc->getIDocumentStylePoolAccess().GetPageDescFromPool( RES_POOLPAGE_HTML, false )
->GetMaster().makeBackgroundBrushItem();
diff --git a/sw/source/filter/html/htmlflywriter.cxx b/sw/source/filter/html/htmlflywriter.cxx
index 54051a63b8bf..6eca6c22fb7c 100644
--- a/sw/source/filter/html/htmlflywriter.cxx
+++ b/sw/source/filter/html/htmlflywriter.cxx
@@ -261,12 +261,15 @@ sal_uInt16 SwHTMLWriter::GuessFrameType( const SwFrameFormat& rFrameFormat,
}
if( bEmpty )
{
- SvxBrushItem aBrush = rFrameFormat.makeBackgroundBrushItem();
+ std::shared_ptr<SvxBrushItem> aBrush = rFrameFormat.makeBackgroundBrushItem();
/// background is not empty, if it has a background graphic
/// or its background color is not "no fill"/"auto fill".
- if( GPOS_NONE != aBrush.GetGraphicPos() ||
- aBrush.GetColor() != COL_TRANSPARENT )
+ if( aBrush &&
+ (GPOS_NONE != aBrush->GetGraphicPos() ||
+ aBrush->GetColor() != COL_TRANSPARENT ))
+ {
bEmpty = false;
+ }
}
if( bEmpty )
{
diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx
index 605ba1dfea2b..b0c6fd24e66f 100644
--- a/sw/source/filter/html/htmlgrin.cxx
+++ b/sw/source/filter/html/htmlgrin.cxx
@@ -1003,23 +1003,23 @@ void SwHTMLParser::InsertBodyOptions()
// Prepare the items for the page style (background, frame)
// If BrushItem already set values must remain!
- SvxBrushItem aBrushItem( m_pCSS1Parser->makePageDescBackground() );
+ std::shared_ptr<SvxBrushItem> aBrushItem( m_pCSS1Parser->makePageDescBackground() );
bool bSetBrush = false;
if( bBGColor && !m_pCSS1Parser->IsBodyBGColorSet() )
{
// background colour from "BGCOLOR"
OUString aLink;
- if( !aBrushItem.GetGraphicLink().isEmpty() )
- aLink = aBrushItem.GetGraphicLink();
- SvxGraphicPosition ePos = aBrushItem.GetGraphicPos();
+ if( !aBrushItem->GetGraphicLink().isEmpty() )
+ aLink = aBrushItem->GetGraphicLink();
+ SvxGraphicPosition ePos = aBrushItem->GetGraphicPos();
- aBrushItem.SetColor( aBGColor );
+ aBrushItem->SetColor( aBGColor );
if( !aLink.isEmpty() )
{
- aBrushItem.SetGraphicLink( aLink );
- aBrushItem.SetGraphicPos( ePos );
+ aBrushItem->SetGraphicLink( aLink );
+ aBrushItem->SetGraphicPos( ePos );
}
bSetBrush = true;
m_pCSS1Parser->SetBodyBGColorSet();
@@ -1028,8 +1028,8 @@ void SwHTMLParser::InsertBodyOptions()
if( !aBackGround.isEmpty() && !m_pCSS1Parser->IsBodyBackgroundSet() )
{
// background graphic from "BACKGROUND"
- aBrushItem.SetGraphicLink( INetURLObject::GetAbsURL( m_sBaseURL, aBackGround ) );
- aBrushItem.SetGraphicPos( GPOS_TILED );
+ aBrushItem->SetGraphicLink( INetURLObject::GetAbsURL( m_sBaseURL, aBackGround ) );
+ aBrushItem->SetGraphicPos( GPOS_TILED );
bSetBrush = true;
m_pCSS1Parser->SetBodyBackgroundSet();
}
@@ -1043,7 +1043,7 @@ void SwHTMLParser::InsertBodyOptions()
// Some attributes have to set on the page style, in fact the ones
// which aren't inherited
- m_pCSS1Parser->SetPageDescAttrs( bSetBrush ? &aBrushItem : nullptr,
+ m_pCSS1Parser->SetPageDescAttrs( bSetBrush ? aBrushItem.get() : nullptr,
&aItemSet );
const SfxPoolItem *pItem;
@@ -1070,7 +1070,7 @@ void SwHTMLParser::InsertBodyOptions()
}
else if( bSetBrush )
{
- m_pCSS1Parser->SetPageDescAttrs( &aBrushItem );
+ m_pCSS1Parser->SetPageDescAttrs( aBrushItem.get() );
}
if( bLinkColor && !m_pCSS1Parser->IsBodyLinkSet() )
diff --git a/sw/source/filter/html/htmltabw.cxx b/sw/source/filter/html/htmltabw.cxx
index 66261bbbc1bf..44ea0cfefd61 100644
--- a/sw/source/filter/html/htmltabw.cxx
+++ b/sw/source/filter/html/htmltabw.cxx
@@ -135,13 +135,13 @@ bool SwHTMLWrtTable::HasTabBackground( const SwTableBox& rBox,
bool bRet = false;
if( rBox.GetSttNd() )
{
- SvxBrushItem aBrushItem =
+ std::shared_ptr<SvxBrushItem> aBrushItem =
rBox.GetFrameFormat()->makeBackgroundBrushItem();
/// The table box has a background, if its background color is not "no fill"/
/// "auto fill" or it has a background graphic.
- bRet = aBrushItem.GetColor() != COL_TRANSPARENT ||
- !aBrushItem.GetGraphicLink().isEmpty() || aBrushItem.GetGraphic();
+ bRet = aBrushItem && (aBrushItem->GetColor() != COL_TRANSPARENT ||
+ !aBrushItem->GetGraphicLink().isEmpty() || aBrushItem->GetGraphic());
}
else
{
@@ -166,11 +166,11 @@ bool SwHTMLWrtTable::HasTabBackground( const SwTableLine& rLine,
OSL_ENSURE( bTop || bBottom || bLeft || bRight,
"HasTabBackground: cannot be called" );
- SvxBrushItem aBrushItem = rLine.GetFrameFormat()->makeBackgroundBrushItem();
+ std::shared_ptr<SvxBrushItem> aBrushItem = rLine.GetFrameFormat()->makeBackgroundBrushItem();
/// The table line has a background, if its background color is not "no fill"/
/// "auto fill" or it has a background graphic.
- bool bRet = aBrushItem.GetColor() != COL_TRANSPARENT ||
- !aBrushItem.GetGraphicLink().isEmpty() || aBrushItem.GetGraphic();
+ bool bRet = aBrushItem && (aBrushItem->GetColor() != COL_TRANSPARENT ||
+ !aBrushItem->GetGraphicLink().isEmpty() || aBrushItem->GetGraphic());
if( !bRet )
{
diff --git a/sw/source/filter/html/svxcss1.cxx b/sw/source/filter/html/svxcss1.cxx
index 8f8491b015cd..11aba0a854c8 100644
--- a/sw/source/filter/html/svxcss1.cxx
+++ b/sw/source/filter/html/svxcss1.cxx
@@ -587,25 +587,25 @@ void SvxCSS1PropertyInfo::SetBoxItem( SfxItemSet& rItemSet,
if( !bChg )
return;
- SvxBoxItem aBoxItem( aItemIds.nBox );
+ std::shared_ptr<SvxBoxItem> aBoxItem(std::make_shared<SvxBoxItem>(aItemIds.nBox));
if( pDfltItem )
- aBoxItem = *pDfltItem;
+ aBoxItem.reset(static_cast<SvxBoxItem*>(pDfltItem->Clone()));
SvxCSS1BorderInfo *pInfo = GetBorderInfo( SvxBoxItemLine::TOP, false );
if( pInfo )
- pInfo->SetBorderLine( SvxBoxItemLine::TOP, aBoxItem );
+ pInfo->SetBorderLine( SvxBoxItemLine::TOP, *aBoxItem );
pInfo = GetBorderInfo( SvxBoxItemLine::BOTTOM, false );
if( pInfo )
- pInfo->SetBorderLine( SvxBoxItemLine::BOTTOM, aBoxItem );
+ pInfo->SetBorderLine( SvxBoxItemLine::BOTTOM, *aBoxItem );
pInfo = GetBorderInfo( SvxBoxItemLine::LEFT, false );
if( pInfo )
- pInfo->SetBorderLine( SvxBoxItemLine::LEFT, aBoxItem );
+ pInfo->SetBorderLine( SvxBoxItemLine::LEFT, *aBoxItem );
pInfo = GetBorderInfo( SvxBoxItemLine::RIGHT, false );
if( pInfo )
- pInfo->SetBorderLine( SvxBoxItemLine::RIGHT, aBoxItem );
+ pInfo->SetBorderLine( SvxBoxItemLine::RIGHT, *aBoxItem );
for( size_t i=0; i<m_aBorderInfos.size(); ++i )
{
@@ -631,10 +631,10 @@ void SvxCSS1PropertyInfo::SetBoxItem( SfxItemSet& rItemSet,
break;
}
- if( aBoxItem.GetLine( nLine ) )
+ if( aBoxItem->GetLine( nLine ) )
{
if( UNSET_BORDER_DISTANCE == nDist )
- nDist = aBoxItem.GetDistance( nLine );
+ nDist = aBoxItem->GetDistance( nLine );
if( nDist < nMinBorderDist )
nDist = nMinBorderDist;
@@ -644,10 +644,10 @@ void SvxCSS1PropertyInfo::SetBoxItem( SfxItemSet& rItemSet,
nDist = 0U;
}
- aBoxItem.SetDistance( nDist, nLine );
+ aBoxItem->SetDistance( nDist, nLine );
}
- rItemSet.Put( aBoxItem );
+ rItemSet.Put( *aBoxItem );
DestroyBorderInfos();
}
diff --git a/sw/source/filter/html/swcss1.hxx b/sw/source/filter/html/swcss1.hxx
index d99e9c696f68..b368bd1f068e 100644
--- a/sw/source/filter/html/swcss1.hxx
+++ b/sw/source/filter/html/swcss1.hxx
@@ -145,7 +145,7 @@ public:
void SetBodyLinkSet() { m_bBodyLinkSet = true; }
void SetBodyVLinkSet() { m_bBodyVLinkSet = true; }
- SvxBrushItem makePageDescBackground() const;
+ std::shared_ptr<SvxBrushItem> makePageDescBackground() const;
inline void SetTHTagStyles();
inline void SetTDTagStyles();
diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index 9f3a9d335b11..3a165f897102 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -5150,7 +5150,7 @@ void SwHTMLParser::InsertLineBreak()
}
// parse styles
- SvxFormatBreakItem aBreakItem( SvxBreak::NONE, RES_BREAK );
+ std::shared_ptr<SvxFormatBreakItem> aBreakItem(std::make_shared<SvxFormatBreakItem>(SvxBreak::NONE, RES_BREAK));
bool bBreakItem = false;
if( HasStyleOptions( aStyle, aId, aClass ) )
{
@@ -5161,7 +5161,7 @@ void SwHTMLParser::InsertLineBreak()
{
if( m_pCSS1Parser->SetFormatBreak( aItemSet, aPropInfo ) )
{
- aBreakItem = aItemSet.Get( RES_BREAK );
+ aBreakItem.reset(static_cast<SvxFormatBreakItem*>(aItemSet.Get(RES_BREAK).Clone()));
bBreakItem = true;
}
if( !aPropInfo.m_aId.isEmpty() )
@@ -5169,9 +5169,9 @@ void SwHTMLParser::InsertLineBreak()
}
}
- if( bBreakItem && SvxBreak::PageAfter==aBreakItem.GetBreak() )
+ if( bBreakItem && SvxBreak::PageAfter == aBreakItem->GetBreak() )
{
- NewAttr(m_xAttrTab, &m_xAttrTab->pBreak, aBreakItem);
+ NewAttr(m_xAttrTab, &m_xAttrTab->pBreak, *aBreakItem);
EndAttr( m_xAttrTab->pBreak, false );
}
@@ -5190,9 +5190,9 @@ void SwHTMLParser::InsertLineBreak()
// (>Netscape). That's why we don't do it.
AppendTextNode( AM_NOSPACE );
}
- if( bBreakItem && SvxBreak::PageBefore==aBreakItem.GetBreak() )
+ if( bBreakItem && SvxBreak::PageBefore == aBreakItem->GetBreak() )
{
- NewAttr(m_xAttrTab, &m_xAttrTab->pBreak, aBreakItem);
+ NewAttr(m_xAttrTab, &m_xAttrTab->pBreak, *aBreakItem);
EndAttr( m_xAttrTab->pBreak, false );
}
}
diff --git a/sw/source/filter/html/wrthtml.cxx b/sw/source/filter/html/wrthtml.cxx
index 3f72b20f696b..21acd5f6a2e4 100644
--- a/sw/source/filter/html/wrthtml.cxx
+++ b/sw/source/filter/html/wrthtml.cxx
@@ -1069,9 +1069,8 @@ const SwPageDesc *SwHTMLWriter::MakeHeader( sal_uInt16 &rHeaderAttrs )
const SfxItemSet& rItemSet = pPageDesc->GetMaster().GetAttrSet();
// fdo#86857 page styles now contain the XATTR_*, not RES_BACKGROUND
- SvxBrushItem const aBrushItem(
- getSvxBrushItemFromSourceSet(rItemSet, RES_BACKGROUND));
- OutBackground(&aBrushItem, true);
+ std::shared_ptr<SvxBrushItem> const aBrushItem(getSvxBrushItemFromSourceSet(rItemSet, RES_BACKGROUND));
+ OutBackground(aBrushItem.get(), true);
m_nDirection = GetHTMLDirection( rItemSet );
OutDirection( m_nDirection );
diff --git a/sw/source/filter/writer/wrt_fn.cxx b/sw/source/filter/writer/wrt_fn.cxx
index b0cbff4212f3..1debd24bd0c1 100644
--- a/sw/source/filter/writer/wrt_fn.cxx
+++ b/sw/source/filter/writer/wrt_fn.cxx
@@ -113,11 +113,11 @@ Writer& Out_SfxItemSet( const SwAttrFnTab pTab, Writer& rWrt,
// existing mechanisms.
// This is the right place in the future if the adapted fill attributes
// may be handled more directly in HTML export to handle them.
- const SvxBrushItem aSvxBrushItem = getSvxBrushItemFromSourceSet(*pSet, RES_BACKGROUND, bDeep);
+ const std::shared_ptr<SvxBrushItem> aSvxBrushItem(getSvxBrushItemFromSourceSet(*pSet, RES_BACKGROUND, bDeep));
if( nullptr != ( pOut = pTab[RES_BACKGROUND - RES_CHRATR_BEGIN] ))
{
- (*pOut)( rWrt, aSvxBrushItem );
+ (*pOut)( rWrt, *aSvxBrushItem );
}
}
diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index 7d4d4df1fb3d..501f632ff3f2 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -944,7 +944,7 @@ void DocxExport::WriteSettings()
}
// Display Background Shape
- if (boost::optional<SvxBrushItem> oBrush = getBackground())
+ if (std::shared_ptr<SvxBrushItem> oBrush = getBackground(); oBrush)
{
// Turn on the 'displayBackgroundShape'
pFS->singleElementNS(XML_w, XML_displayBackgroundShape);
@@ -1456,7 +1456,7 @@ void DocxExport::WriteMainText()
m_aLinkedTextboxesHelper.clear();
// Write background page color
- if (boost::optional<SvxBrushItem> oBrush = getBackground())
+ if (std::shared_ptr<SvxBrushItem> oBrush = getBackground(); oBrush)
{
Color backgroundColor = oBrush->GetColor();
OString aBackgroundColorStr = msfilter::util::ConvertColor(backgroundColor);
diff --git a/sw/source/filter/ww8/rtfexport.cxx b/sw/source/filter/ww8/rtfexport.cxx
index b2b06a77443b..2dbd38230402 100644
--- a/sw/source/filter/ww8/rtfexport.cxx
+++ b/sw/source/filter/ww8/rtfexport.cxx
@@ -419,7 +419,7 @@ void RtfExport::WriteMainText()
{
SAL_INFO("sw.rtf", OSL_THIS_FUNC << " start");
- if (boost::optional<SvxBrushItem> oBrush = getBackground())
+ if (std::shared_ptr<SvxBrushItem> oBrush = getBackground(); oBrush)
{
Strm().WriteCharPtr(LO_STRING_SVTOOLS_RTF_VIEWBKSP).WriteChar('1');
Strm().WriteCharPtr("{" OOO_STRING_SVTOOLS_RTF_IGNORE OOO_STRING_SVTOOLS_RTF_BACKGROUND);
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index f713a9c2de88..feacf1de6f9b 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -1608,11 +1608,11 @@ void SwBasicEscherEx::WriteGrfBullet(const Graphic& rGrf)
aPropOpt.AddOpt( ESCHER_Prop_dxTextLeft, 0 );
aPropOpt.AddOpt( ESCHER_Prop_dxTextRight, 0 );
const Color aTmpColor( COL_WHITE );
- SvxBrushItem aBrush( aTmpColor, RES_BACKGROUND );
- const SvxBrushItem *pRet = rWrt.GetCurrentPageBgBrush();
+ std::shared_ptr<SvxBrushItem> aBrush(std::make_shared<SvxBrushItem>(aTmpColor, RES_BACKGROUND));
+ const SvxBrushItem* pRet = rWrt.GetCurrentPageBgBrush();
if (pRet && (pRet->GetGraphic() ||( pRet->GetColor() != COL_TRANSPARENT)))
- aBrush = *pRet;
- WriteBrushAttr(aBrush, aPropOpt);
+ aBrush.reset(static_cast<SvxBrushItem*>(pRet->Clone()));
+ WriteBrushAttr(*aBrush, aPropOpt);
aPropOpt.AddOpt( ESCHER_Prop_pictureActive, 0 );
aPropOpt.Commit( GetStream() );
@@ -2080,13 +2080,21 @@ sal_Int32 SwBasicEscherEx::WriteFlyFrameAttr(const SwFrameFormat& rFormat,
if (bIsInHeader)
{
- SvxBrushItem aBrush(rFormat.makeBackgroundBrushItem());
- WriteBrushAttr(aBrush, rPropOpt);
+ std::shared_ptr<SvxBrushItem> aBrush(rFormat.makeBackgroundBrushItem());
+
+ if(aBrush)
+ {
+ WriteBrushAttr(*aBrush, rPropOpt);
+ }
}
else
{
- SvxBrushItem aBrush(rWrt.TrueFrameBgBrush(rFormat));
- WriteBrushAttr(aBrush, rPropOpt);
+ std::shared_ptr<SvxBrushItem> aBrush(rWrt.TrueFrameBgBrush(rFormat));
+
+ if(aBrush)
+ {
+ WriteBrushAttr(*aBrush, rPropOpt);
+ }
}
const SdrObject* pObj = rFormat.FindRealSdrObject();
diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx
index e89563655fd7..d08796457530 100644
--- a/sw/source/filter/ww8/wrtw8nds.cxx
+++ b/sw/source/filter/ww8/wrtw8nds.cxx
@@ -1623,7 +1623,7 @@ const SvxBrushItem* WW8Export::GetCurrentPageBgBrush() const
return pRet;
}
-SvxBrushItem WW8Export::TrueFrameBgBrush(const SwFrameFormat &rFlyFormat) const
+std::shared_ptr<SvxBrushItem> WW8Export::TrueFrameBgBrush(const SwFrameFormat &rFlyFormat) const
{
const SwFrameFormat *pFlyFormat = &rFlyFormat;
const SvxBrushItem* pRet = nullptr;
@@ -1657,9 +1657,12 @@ SvxBrushItem WW8Export::TrueFrameBgBrush(const SwFrameFormat &rFlyFormat) const
pRet = GetCurrentPageBgBrush();
const Color aTmpColor( COL_WHITE );
- SvxBrushItem aRet( aTmpColor, RES_BACKGROUND );
+ std::shared_ptr<SvxBrushItem> aRet(std::make_shared<SvxBrushItem>(aTmpColor, RES_BACKGROUND));
+
if (pRet && (pRet->GetGraphic() ||( pRet->GetColor() != COL_TRANSPARENT)))
- aRet = *pRet;
+ {
+ aRet.reset(static_cast<SvxBrushItem*>(pRet->Clone()));
+ }
return aRet;
}
diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx
index 07ba40b373fd..1ccca8f8eb78 100644
--- a/sw/source/filter/ww8/wrtww8.cxx
+++ b/sw/source/filter/ww8/wrtww8.cxx
@@ -1522,17 +1522,17 @@ void WW8Export::AppendBookmarkEndWithCorrection( const OUString& rName )
m_pBkmks->Append( nEndCP - 1, rName );
}
-boost::optional<SvxBrushItem> MSWordExportBase::getBackground()
+std::shared_ptr<SvxBrushItem> MSWordExportBase::getBackground()
{
- boost::optional<SvxBrushItem> oRet;
+ std::shared_ptr<SvxBrushItem> oRet;
const SwFrameFormat &rFormat = m_pDoc->GetPageDesc(0).GetMaster();
- SvxBrushItem aBrush(RES_BACKGROUND);
+ std::shared_ptr<SvxBrushItem> aBrush(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
SfxItemState eState = rFormat.GetBackgroundState(aBrush);
if (SfxItemState::SET == eState)
{
// The 'color' is set for the first page style - take it and use it as the background color of the entire DOCX
- if (aBrush.GetColor() != COL_AUTO)
+ if (aBrush->GetColor() != COL_AUTO)
oRet = aBrush;
}
return oRet;
diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx
index c40b36a81bf8..1be70995ca50 100644
--- a/sw/source/filter/ww8/wrtww8.hxx
+++ b/sw/source/filter/ww8/wrtww8.hxx
@@ -878,7 +878,7 @@ protected:
void SetCurPam(sal_uLong nStt, sal_uLong nEnd);
/// Get background color of the document, if there is one.
- boost::optional<SvxBrushItem> getBackground();
+ std::shared_ptr<SvxBrushItem> getBackground();
/// Populates m_vecBulletPic with all the bullet graphics used by numberings.
int CollectGrfsOfBullets();
/// Write the numbering picture bullets.
@@ -1033,7 +1033,7 @@ public:
void WriteFootnoteBegin( const SwFormatFootnote& rFootnote, ww::bytes* pO = nullptr );
void WritePostItBegin( ww::bytes* pO = nullptr );
const SvxBrushItem* GetCurrentPageBgBrush() const;
- SvxBrushItem TrueFrameBgBrush(const SwFrameFormat &rFlyFormat) const;
+ std::shared_ptr<SvxBrushItem> TrueFrameBgBrush(const SwFrameFormat &rFlyFormat) const;
void AppendFlyInFlys(const ww8::Frame& rFrameFormat, const Point& rNdTopLeft);
void WriteOutliner(const OutlinerParaObject& rOutliner, sal_uInt8 nTyp);
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index 886ea9dbc904..710e3bf6e86e 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -310,7 +310,8 @@ void MSWordExportBase::OutputItemSet( const SfxItemSet& rSet, bool bPapFormat, b
if (pXFillStyleItem && pXFillStyleItem->GetValue() == drawing::FillStyle_SOLID && !rSet.HasItem(RES_BACKGROUND))
{
// Construct an SvxBrushItem, as expected by the exporters.
- AttrOutput().OutputItem(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND));
+ std::shared_ptr<SvxBrushItem> aBrush(getSvxBrushItemFromSourceSet(rSet, RES_BACKGROUND));
+ AttrOutput().OutputItem(*aBrush);
}
}
m_pISet = nullptr; // for double attributes
@@ -853,7 +854,8 @@ void MSWordExportBase::OutputFormat( const SwFormat& rFormat, bool bPapFormat, b
case drawing::FillStyle_SOLID:
{
// Construct an SvxBrushItem, as expected by the exporters.
- aSet.Put(getSvxBrushItemFromSourceSet(rFrameFormat.GetAttrSet(), RES_BACKGROUND));
+ std::shared_ptr<SvxBrushItem> aBrush(getSvxBrushItemFromSourceSet(rFrameFormat.GetAttrSet(), RES_BACKGROUND));
+ aSet.Put(*aBrush);
break;
}
default:
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 060fcd09c6cb..bef9cc9cd8a3 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -1487,7 +1487,7 @@ const SfxPoolItem* SwWW8FltControlStack::GetFormatAttr(const SwPosition& rPos,
if (const SfxItemSet *pSet = pNd->GetpSwAttrSet())
eState = pSet->GetItemState(RES_LR_SPACE, false);
if (eState != SfxItemState::SET && rReader.m_nCurrentColl < rReader.m_vColl.size())
- pItem = &(rReader.m_vColl[rReader.m_nCurrentColl].maWordLR);
+ pItem = rReader.m_vColl[rReader.m_nCurrentColl].maWordLR.get();
}
/*
@@ -1660,7 +1660,7 @@ void SwWW8ImplReader::Read_Tab(sal_uInt16 , const sal_uInt8* pData, short nLen)
WW8_TBD const * pTyp = reinterpret_cast<WW8_TBD const *>(pData + 2*nDel + 2*nIns + 2); // Type Array
- SvxTabStopItem aAttr(0, 0, SvxTabAdjust::Default, RES_PARATR_TABSTOP);
+ std::shared_ptr<SvxTabStopItem> aAttr(std::make_shared<SvxTabStopItem>(0, 0, SvxTabAdjust::Default, RES_PARATR_TABSTOP));
const SwFormat * pSty = nullptr;
sal_uInt16 nTabBase;
@@ -1686,7 +1686,9 @@ void SwWW8ImplReader::Read_Tab(sal_uInt16 , const sal_uInt8* pData, short nLen)
bFound = pSty->GetAttrSet().GetItemState(RES_PARATR_TABSTOP, false,
&pTabs) == SfxItemState::SET;
if( bFound )
- aAttr = *static_cast<const SvxTabStopItem*>(pTabs);
+ {
+ aAttr.reset(static_cast<SvxTabStopItem*>(pTabs->Clone()));
+ }
else
{
sal_uInt16 nOldTabBase = nTabBase;
@@ -1719,9 +1721,9 @@ void SwWW8ImplReader::Read_Tab(sal_uInt16 , const sal_uInt8* pData, short nLen)
SvxTabStop aTabStop;
for (short i=0; i < nDel; ++i)
{
- sal_uInt16 nPos = aAttr.GetPos(SVBT16ToUInt16(pDel + i*2));
+ sal_uInt16 nPos = aAttr->GetPos(SVBT16ToUInt16(pDel + i*2));
if( nPos != SVX_TAB_NOTFOUND )
- aAttr.Remove( nPos );
+ aAttr->Remove( nPos );
}
for (short i=0; i < nIns; ++i)
@@ -1763,14 +1765,14 @@ void SwWW8ImplReader::Read_Tab(sal_uInt16 , const sal_uInt8* pData, short nLen)
break;
}
- sal_uInt16 nPos2 = aAttr.GetPos( nPos );
+ sal_uInt16 nPos2 = aAttr->GetPos( nPos );
if (nPos2 != SVX_TAB_NOTFOUND)
- aAttr.Remove(nPos2); // Or else Insert() refuses
- aAttr.Insert(aTabStop);
+ aAttr->Remove(nPos2); // Or else Insert() refuses
+ aAttr->Insert(aTabStop);
}
if (nIns || nDel)
- NewAttr(aAttr);
+ NewAttr(*aAttr);
else
{
// Here we have a tab definition which inserts no extra tabs, or deletes
diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx
index 33b0a9349141..f7be682a8d1c 100644
--- a/sw/source/filter/ww8/ww8par.hxx
+++ b/sw/source/filter/ww8/ww8par.hxx
@@ -239,7 +239,7 @@ public:
sal_uInt16 m_n81Flags; // for bold, italic, ...
sal_uInt16 m_n81BiDiFlags; // for bold, italic, ...
- SvxLRSpaceItem maWordLR;
+ std::shared_ptr<SvxLRSpaceItem> maWordLR;
bool m_bValid; // empty of valid
bool m_bImported; // for recursive imports
bool m_bColl; // true-> pFormat is SwTextFormatColl
@@ -271,7 +271,7 @@ public:
mnWW8OutlineLevel( MAXLEVEL ),
m_n81Flags( 0 ),
m_n81BiDiFlags(0),
- maWordLR( RES_LR_SPACE ),
+ maWordLR(std::make_shared<SvxLRSpaceItem>(RES_LR_SPACE)),
m_bValid(false),
m_bImported(false),
m_bColl(false),
diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx
index 829011373542..f28a076da3b1 100644
--- a/sw/source/filter/ww8/ww8par3.cxx
+++ b/sw/source/filter/ww8/ww8par3.cxx
@@ -1757,8 +1757,7 @@ void SwWW8ImplReader::RegisterNumFormatOnStyle(sal_uInt16 nStyle)
if (rStyleInf.m_bValid && rStyleInf.m_pFormat)
{
//Save old pre-list modified indent, which are the word indent values
- rStyleInf.maWordLR =
- ItemGet<SvxLRSpaceItem>(*rStyleInf.m_pFormat, RES_LR_SPACE);
+ rStyleInf.maWordLR.reset(static_cast<SvxLRSpaceItem*>(ItemGet<SvxLRSpaceItem>(*rStyleInf.m_pFormat, RES_LR_SPACE).Clone()));
// Phase 2: refresh StyleDef after reading all Lists
SwNumRule* pNmRule = nullptr;
@@ -1991,19 +1990,19 @@ void SwWW8ImplReader::Read_LFOPosition(sal_uInt16, const sal_uInt8* pData,
pTextNode->SetAttr( aEmptyRule );
// create an empty SvxLRSpaceItem
- SvxLRSpaceItem aLR( RES_LR_SPACE );
+ std::shared_ptr<SvxLRSpaceItem> aLR(std::make_shared<SvxLRSpaceItem>(RES_LR_SPACE));
// replace it with the one of the current node if it exist
const SfxPoolItem* pLR = GetFormatAttr(RES_LR_SPACE);
if( pLR )
- aLR = *static_cast<const SvxLRSpaceItem*>(pLR);
+ aLR.reset(static_cast<SvxLRSpaceItem*>(pLR->Clone()));
// reset/blank the left indent (and only the left)
- aLR.SetTextLeft(0);
- aLR.SetTextFirstLineOfst(0);
+ aLR->SetTextLeft(0);
+ aLR->SetTextFirstLineOfst(0);
// apply the modified SvxLRSpaceItem to the current paragraph
- pTextNode->SetAttr( aLR );
+ pTextNode->SetAttr( *aLR );
}
m_nLFOPosition = USHRT_MAX;
diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx
index f95859e553a5..bcb276246418 100644
--- a/sw/source/filter/ww8/ww8par6.cxx
+++ b/sw/source/filter/ww8/ww8par6.cxx
@@ -4139,10 +4139,10 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe
short nPara = SVBT16ToUInt16( pData );
- SvxLRSpaceItem aLR( RES_LR_SPACE );
+ std::shared_ptr<SvxLRSpaceItem> aLR(std::make_shared<SvxLRSpaceItem>(RES_LR_SPACE));
const SfxPoolItem* pLR = GetFormatAttr(RES_LR_SPACE);
if( pLR )
- aLR = *static_cast<const SvxLRSpaceItem*>(pLR);
+ aLR.reset(static_cast<SvxLRSpaceItem*>(pLR->Clone()));
// Fix the regression issue: #i99822#: Discussion?
// Since the list level formatting doesn't apply into paragraph style
@@ -4159,10 +4159,10 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe
const SwNumFormat* pFormat = pNumRule->GetNumFormat( nLvl );
if ( pFormat && pFormat->GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
{
- aLR.SetTextLeft( pFormat->GetIndentAt() );
- aLR.SetTextFirstLineOfst( static_cast<short>(pFormat->GetFirstLineIndent()) );
+ aLR->SetTextLeft( pFormat->GetIndentAt() );
+ aLR->SetTextFirstLineOfst( static_cast<short>(pFormat->GetFirstLineIndent()) );
// make paragraph have hard-set indent attributes
- pTextNode->SetAttr( aLR );
+ pTextNode->SetAttr( *aLR );
}
}
}
@@ -4202,7 +4202,7 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe
case NS_sprm::v6::sprmPDxaLeft:
case NS_sprm::sprmPDxaLeft80:
case NS_sprm::sprmPDxaLeft:
- aLR.SetTextLeft( nPara );
+ aLR->SetTextLeft( nPara );
if (m_pCurrentColl && m_nCurrentColl < m_vColl.size())
{
m_vColl[m_nCurrentColl].m_bListReleventIndentSet = true;
@@ -4236,7 +4236,7 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe
}
}
- aLR.SetTextFirstLineOfst(nPara);
+ aLR->SetTextFirstLineOfst(nPara);
if (!m_pCurrentColl)
{
@@ -4246,7 +4246,7 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe
{
if (!lcl_HasExplicitLeft(m_xPlcxMan.get(), m_bVer67))
{
- aLR.SetTextLeft(pNumFormat->GetIndentAt());
+ aLR->SetTextLeft(pNumFormat->GetIndentAt());
// If have not explicit left, set number format list tab position is doc default tab
const SvxTabStopItem *pDefaultStopItem = m_rDoc.GetAttrPool().GetPoolDefaultItem(RES_PARATR_TABSTOP);
@@ -4266,13 +4266,13 @@ void SwWW8ImplReader::Read_LR( sal_uInt16 nId, const sal_uInt8* pData, short nLe
case NS_sprm::v6::sprmPDxaRight:
case NS_sprm::sprmPDxaRight80:
case NS_sprm::sprmPDxaRight:
- aLR.SetRight( nPara );
+ aLR->SetRight( nPara );
break;
default:
return;
}
- NewAttr( aLR, bFirstLinOfstSet, bLeftIndentSet ); // #i103711#, #i105414#
+ NewAttr( *aLR, bFirstLinOfstSet, bLeftIndentSet ); // #i103711#, #i105414#
}
// Sprm 20
@@ -4982,29 +4982,29 @@ void SwWW8ImplReader::Read_Border(sal_uInt16 , const sal_uInt8*, short nLen)
// otherwise it's not possible to turn of the style attribute hard.
const SvxBoxItem* pBox
= static_cast<const SvxBoxItem*>(GetFormatAttr( RES_BOX ));
- SvxBoxItem aBox(RES_BOX);
+ std::shared_ptr<SvxBoxItem> aBox(std::make_shared<SvxBoxItem>(RES_BOX));
if (pBox)
- aBox = *pBox;
+ aBox.reset(static_cast<SvxBoxItem*>(pBox->Clone()));
short aSizeArray[5]={0};
- SetBorder(aBox, aBrcs, &aSizeArray[0], nBorder);
+ SetBorder(*aBox, aBrcs, &aSizeArray[0], nBorder);
tools::Rectangle aInnerDist;
GetBorderDistance( aBrcs, aInnerDist );
if (nBorder & (1 << WW8_LEFT))
- aBox.SetDistance( static_cast<sal_uInt16>(aInnerDist.Left()), SvxBoxItemLine::LEFT );
+ aBox->SetDistance( static_cast<sal_uInt16>(aInnerDist.Left()), SvxBoxItemLine::LEFT );
if (nBorder & (1 << WW8_TOP))
- aBox.SetDistance( static_cast<sal_uInt16>(aInnerDist.Top()), SvxBoxItemLine::TOP );
+ aBox->SetDistance( static_cast<sal_uInt16>(aInnerDist.Top()), SvxBoxItemLine::TOP );
if (nBorder & (1 << WW8_RIGHT))
- aBox.SetDistance( static_cast<sal_uInt16>(aInnerDist.Right()), SvxBoxItemLine::RIGHT );
+ aBox->SetDistance( static_cast<sal_uInt16>(aInnerDist.Right()), SvxBoxItemLine::RIGHT );
if (nBorder & (1 << WW8_BOT))
- aBox.SetDistance( static_cast<sal_uInt16>(aInnerDist.Bottom()), SvxBoxItemLine::BOTTOM );
+ aBox->SetDistance( static_cast<sal_uInt16>(aInnerDist.Bottom()), SvxBoxItemLine::BOTTOM );
- NewAttr( aBox );
+ NewAttr( *aBox );
SvxShadowItem aS(RES_SHADOW);
if( SetShadow( aS, &aSizeArray[0], aBrcs[WW8_RIGHT] ) )
@@ -5031,8 +5031,7 @@ void SwWW8ImplReader::Read_CharBorder(sal_uInt16 nId, const sal_uInt8* pData, sh
= static_cast<const SvxBoxItem*>(GetFormatAttr( RES_CHRATR_BOX ));
if( pBox )
{
- SvxBoxItem aBoxItem(RES_CHRATR_BOX);
- aBoxItem = *pBox;
+ std::shared_ptr<SvxBoxItem> aBoxItem(static_cast<SvxBoxItem*>(pBox->Clone()));
WW8_BRCVer9 aBrc;
int nBrcVer = (nId == NS_sprm::sprmCBrc) ? 9 : (m_bVer67 ? 6 : 8);
@@ -5041,11 +5040,11 @@ void SwWW8ImplReader::Read_CharBorder(sal_uInt16 nId, const sal_uInt8* pData, sh
// Border style is none -> no border, no shadow
if( editeng::ConvertBorderStyleFromWord(aBrc.brcType()) != SvxBorderLineStyle::NONE )
{
- Set1Border(aBoxItem, aBrc, SvxBoxItemLine::TOP, 0, nullptr, true);
- Set1Border(aBoxItem, aBrc, SvxBoxItemLine::BOTTOM, 0, nullptr, true);
- Set1Border(aBoxItem, aBrc, SvxBoxItemLine::LEFT, 0, nullptr, true);
- Set1Border(aBoxItem, aBrc, SvxBoxItemLine::RIGHT, 0, nullptr, true);
- NewAttr( aBoxItem );
+ Set1Border(*aBoxItem, aBrc, SvxBoxItemLine::TOP, 0, nullptr, true);
+ Set1Border(*aBoxItem, aBrc, SvxBoxItemLine::BOTTOM, 0, nullptr, true);
+ Set1Border(*aBoxItem, aBrc, SvxBoxItemLine::LEFT, 0, nullptr, true);
+ Set1Border(*aBoxItem, aBrc, SvxBoxItemLine::RIGHT, 0, nullptr, true);
+ NewAttr( *aBoxItem );
short aSizeArray[WW8_RIGHT+1]={0}; aSizeArray[WW8_RIGHT] = 1;
SvxShadowItem aShadowItem(RES_CHRATR_SHADOW);
diff --git a/sw/source/ui/dialog/uiregionsw.cxx b/sw/source/ui/dialog/uiregionsw.cxx
index 8d5fcc9013c4..1dff89e08cb1 100644
--- a/sw/source/ui/dialog/uiregionsw.cxx
+++ b/sw/source/ui/dialog/uiregionsw.cxx
@@ -146,12 +146,12 @@ class SectRepr
private:
SwSectionData m_SectionData;
SwFormatCol m_Col;
- SvxBrushItem m_Brush;
+ std::shared_ptr<SvxBrushItem> m_Brush;
SwFormatFootnoteAtTextEnd m_FootnoteNtAtEnd;
SwFormatEndAtTextEnd m_EndNtAtEnd;
SwFormatNoBalancedColumns m_Balance;
- SvxFrameDirectionItem m_FrameDirItem;
- SvxLRSpaceItem m_LRSpaceItem;
+ std::shared_ptr<SvxFrameDirectionItem> m_FrameDirItem;
+ std::shared_ptr<SvxLRSpaceItem> m_LRSpaceItem;
const size_t m_nArrPos;
// shows, if maybe textcontent is in the region
bool m_bContent : 1;
@@ -164,12 +164,12 @@ public:
SwSectionData & GetSectionData() { return m_SectionData; }
SwFormatCol& GetCol() { return m_Col; }
- SvxBrushItem& GetBackground() { return m_Brush; }
+ std::shared_ptr<SvxBrushItem>& GetBackground() { return m_Brush; }
SwFormatFootnoteAtTextEnd& GetFootnoteNtAtEnd() { return m_FootnoteNtAtEnd; }
SwFormatEndAtTextEnd& GetEndNtAtEnd() { return m_EndNtAtEnd; }
SwFormatNoBalancedColumns& GetBalance() { return m_Balance; }
- SvxFrameDirectionItem& GetFrameDir() { return m_FrameDirItem; }
- SvxLRSpaceItem& GetLRSpace() { return m_LRSpaceItem; }
+ std::shared_ptr<SvxFrameDirectionItem>& GetFrameDir() { return m_FrameDirItem; }
+ std::shared_ptr<SvxLRSpaceItem>& GetLRSpace() { return m_LRSpaceItem; }
size_t GetArrPos() const { return m_nArrPos; }
OUString GetFile() const;
@@ -191,9 +191,9 @@ public:
SectRepr::SectRepr( size_t nPos, SwSection& rSect )
: m_SectionData( rSect )
- , m_Brush( RES_BACKGROUND )
- , m_FrameDirItem( SvxFrameDirection::Environment, RES_FRAMEDIR )
- , m_LRSpaceItem( RES_LR_SPACE )
+ , m_Brush(std::make_shared<SvxBrushItem>(RES_BACKGROUND))
+ , m_FrameDirItem(std::make_shared<SvxFrameDirectionItem>(SvxFrameDirection::Environment, RES_FRAMEDIR))
+ , m_LRSpaceItem(std::make_shared<SvxLRSpaceItem>(RES_LR_SPACE))
, m_nArrPos(nPos)
, m_bContent(m_SectionData.GetLinkFileName().isEmpty())
, m_bSelected(false)
@@ -206,8 +206,8 @@ SectRepr::SectRepr( size_t nPos, SwSection& rSect )
m_FootnoteNtAtEnd = pFormat->GetFootnoteAtTextEnd();
m_EndNtAtEnd = pFormat->GetEndAtTextEnd();
m_Balance.SetValue(pFormat->GetBalancedColumns().GetValue());
- m_FrameDirItem = pFormat->GetFrameDir();
- m_LRSpaceItem = pFormat->GetLRSpace();
+ m_FrameDirItem.reset(static_cast<SvxFrameDirectionItem*>(pFormat->GetFrameDir().Clone()));
+ m_LRSpaceItem.reset(static_cast<SvxLRSpaceItem*>(pFormat->GetLRSpace().Clone()));
}
}
@@ -779,9 +779,9 @@ IMPL_LINK_NOARG(SwEditRegionDlg, OkHdl, weld::Button&, void)
if( pFormat->GetCol() != pRepr->GetCol() )
pSet->Put( pRepr->GetCol() );
- SvxBrushItem aBrush(pFormat->makeBackgroundBrushItem(false));
- if( aBrush != pRepr->GetBackground() )
- pSet->Put( pRepr->GetBackground() );
+ std::shared_ptr<SvxBrushItem> aBrush(pFormat->makeBackgroundBrushItem(false));
+ if( aBrush != pRepr->GetBackground() || (aBrush && pRepr->GetBackground() && *aBrush != *pRepr->GetBackground()))
+ pSet->Put( *pRepr->GetBackground() );
if( pFormat->GetFootnoteAtTextEnd(false) != pRepr->GetFootnoteNtAtEnd() )
pSet->Put( pRepr->GetFootnoteNtAtEnd() );
@@ -792,11 +792,11 @@ IMPL_LINK_NOARG(SwEditRegionDlg, OkHdl, weld::Button&, void)
if( pFormat->GetBalancedColumns() != pRepr->GetBalance() )
pSet->Put( pRepr->GetBalance() );
- if( pFormat->GetFrameDir() != pRepr->GetFrameDir() )
- pSet->Put( pRepr->GetFrameDir() );
+ if( pFormat->GetFrameDir() != *pRepr->GetFrameDir() )
+ pSet->Put( *pRepr->GetFrameDir() );
- if( pFormat->GetLRSpace() != pRepr->GetLRSpace())
- pSet->Put( pRepr->GetLRSpace());
+ if( pFormat->GetLRSpace() != *pRepr->GetLRSpace())
+ pSet->Put( *pRepr->GetLRSpace());
rSh.UpdateSection( nNewPos, pRepr->GetSectionData(),
pSet->Count() ? pSet.get() : nullptr );
@@ -1029,12 +1029,12 @@ IMPL_LINK_NOARG(SwEditRegionDlg, OptionsHdl, weld::Button&, void)
SID_ATTR_PAGE_SIZE, SID_ATTR_PAGE_SIZE>{});
aSet.Put( pSectRepr->GetCol() );
- aSet.Put( pSectRepr->GetBackground() );
+ aSet.Put( *pSectRepr->GetBackground() );
aSet.Put( pSectRepr->GetFootnoteNtAtEnd() );
aSet.Put( pSectRepr->GetEndNtAtEnd() );
aSet.Put( pSectRepr->GetBalance() );
- aSet.Put( pSectRepr->GetFrameDir() );
- aSet.Put( pSectRepr->GetLRSpace() );
+ aSet.Put( *pSectRepr->GetFrameDir() );
+ aSet.Put( *pSectRepr->GetLRSpace() );
const SwSectionFormats& rDocFormats = rSh.GetDoc()->GetSections();
SwSectionFormats aOrigArray(rDocFormats);
@@ -1085,7 +1085,7 @@ IMPL_LINK_NOARG(SwEditRegionDlg, OptionsHdl, weld::Button&, void)
if( SfxItemState::SET == eColState )
pRepr->GetCol() = *static_cast<const SwFormatCol*>(pColItem);
if( SfxItemState::SET == eBrushState )
- pRepr->GetBackground() = *static_cast<const SvxBrushItem*>(pBrushItem);
+ pRepr->GetBackground().reset(static_cast<SvxBrushItem*>(pBrushItem->Clone()));
if( SfxItemState::SET == eFootnoteState )
pRepr->GetFootnoteNtAtEnd() = *static_cast<const SwFormatFootnoteAtTextEnd*>(pFootnoteItem);
if( SfxItemState::SET == eEndState )
@@ -1093,9 +1093,9 @@ IMPL_LINK_NOARG(SwEditRegionDlg, OptionsHdl, weld::Button&, void)
if( SfxItemState::SET == eBalanceState )
pRepr->GetBalance().SetValue(static_cast<const SwFormatNoBalancedColumns*>(pBalanceItem)->GetValue());
if( SfxItemState::SET == eFrameDirState )
- pRepr->GetFrameDir().SetValue(static_cast<const SvxFrameDirectionItem*>(pFrameDirItem)->GetValue());
+ pRepr->GetFrameDir()->SetValue(static_cast<const SvxFrameDirectionItem*>(pFrameDirItem)->GetValue());
if( SfxItemState::SET == eLRState )
- pRepr->GetLRSpace() = *static_cast<const SvxLRSpaceItem*>(pLRSpaceItem);
+ pRepr->GetLRSpace().reset(static_cast<SvxLRSpaceItem*>(pLRSpaceItem->Clone()));
return false;
});
}
diff --git a/sw/source/ui/frmdlg/wrap.cxx b/sw/source/ui/frmdlg/wrap.cxx
index 1ca392a35e07..c02e9426671b 100644
--- a/sw/source/ui/frmdlg/wrap.cxx
+++ b/sw/source/ui/frmdlg/wrap.cxx
@@ -258,13 +258,12 @@ bool SwWrapTabPage::FillItemSet(SfxItemSet *rSet)
const SwFormatSurround& rOldSur = GetItemSet().Get(RES_SURROUND);
SwFormatSurround aSur( rOldSur );
- SvxOpaqueItem aOp( RES_OPAQUE);
+ std::shared_ptr<SvxOpaqueItem> aOp(std::make_shared<SvxOpaqueItem>(RES_OPAQUE));
if (!m_bDrawMode)
{
- const SvxOpaqueItem& rOpaque = GetItemSet().Get(RES_OPAQUE);
- aOp = rOpaque;
- aOp.SetValue(true);
+ aOp.reset(static_cast<SvxOpaqueItem*>(GetItemSet().Get(RES_OPAQUE).Clone()));
+ aOp->SetValue(true);
}
if (m_xNoWrapRB->get_active())
@@ -279,7 +278,7 @@ bool SwWrapTabPage::FillItemSet(SfxItemSet *rSet)
{
aSur.SetSurround(css::text::WrapTextMode_THROUGH);
if (m_xWrapTransparentCB->get_active() && !m_bDrawMode)
- aOp.SetValue(false);
+ aOp->SetValue(false);
}
else if (m_xIdealWrapRB->get_active())
aSur.SetSurround(css::text::WrapTextMode_DYNAMIC);
@@ -301,9 +300,9 @@ bool SwWrapTabPage::FillItemSet(SfxItemSet *rSet)
if (!m_bDrawMode)
{
if(nullptr == (pOldItem = GetOldItem( *rSet, FN_OPAQUE )) ||
- aOp != *pOldItem )
+ *aOp != *pOldItem )
{
- rSet->Put(aOp);
+ rSet->Put(*aOp);
bModified = true;
}
}
diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx
index 9e52c5b00b29..2830fa1a726c 100644
--- a/sw/source/uibase/app/apphdl.cxx
+++ b/sw/source/uibase/app/apphdl.cxx
@@ -309,7 +309,7 @@ SwView* lcl_LoadDoc(SwView* pView, const OUString& rURL)
if(!rURL.isEmpty())
{
SfxStringItem aURL(SID_FILE_NAME, rURL);
- SfxStringItem aTargetFrameName( SID_TARGETNAME, OUString("_blank") );
+ SfxStringItem aTargetFrameName( SID_TARGETNAME, "_blank" );
SfxBoolItem aHidden( SID_HIDDEN, true );
SfxStringItem aReferer(SID_REFERER, pView->GetDocShell()->GetTitle());
const SfxObjectItem* pItem = static_cast<const SfxObjectItem*>(
diff --git a/sw/source/uibase/app/docsh2.cxx b/sw/source/uibase/app/docsh2.cxx
index 0819b4022553..2139a02a5240 100644
--- a/sw/source/uibase/app/docsh2.cxx
+++ b/sw/source/uibase/app/docsh2.cxx
@@ -1210,8 +1210,8 @@ void SwDocShell::Execute(SfxRequest& rReq)
// Ok. I did my best.
break;
- SfxStringItem aApp(SID_DOC_SERVICE, OUString("com.sun.star.text.TextDocument"));
- SfxStringItem aTarget(SID_TARGETNAME, OUString("_blank"));
+ SfxStringItem aApp(SID_DOC_SERVICE, "com.sun.star.text.TextDocument");
+ SfxStringItem aTarget(SID_TARGETNAME, "_blank");
pViewShell->GetDispatcher()->ExecuteList(SID_OPENDOC,
SfxCallMode::API|SfxCallMode::SYNCHRON,
{ &aApp, &aTarget });
diff --git a/sw/source/uibase/docvw/romenu.cxx b/sw/source/uibase/docvw/romenu.cxx
index 1b8c671ba411..185ff672d42f 100644
--- a/sw/source/uibase/docvw/romenu.cxx
+++ b/sw/source/uibase/docvw/romenu.cxx
@@ -106,7 +106,7 @@ SwReadOnlyPopup::SwReadOnlyPopup(const Point &rDPos, SwView &rV)
, m_nReadonlyFullscreen(m_xMenu->GetItemId("fullscreen"))
, m_nReadonlyCopy(m_xMenu->GetItemId("copy"))
, m_rView(rV)
- , m_aBrushItem(RES_BACKGROUND)
+ , m_aBrushItem(std::make_shared<SvxBrushItem>(RES_BACKGROUND))
{
m_bGrfToGalleryAsLnk = SW_MOD()->GetModuleConfig()->IsGrfToGalleryAsLnk();
SwWrtShell &rSh = m_rView.GetWrtShell();
@@ -159,10 +159,10 @@ SwReadOnlyPopup::SwReadOnlyPopup(const Point &rDPos, SwView &rV)
bool bEnableBackGallery = false,
bEnableBack = false;
- if ( GPOS_NONE != m_aBrushItem.GetGraphicPos() )
+ if ( m_aBrushItem && GPOS_NONE != m_aBrushItem->GetGraphicPos() )
{
bEnableBack = true;
- if ( !m_aBrushItem.GetGraphicLink().isEmpty() )
+ if ( !m_aBrushItem->GetGraphicLink().isEmpty() )
{
if ( m_aThemeList.empty() )
GalleryExplorer::FillThemeList( m_aThemeList );
@@ -240,11 +240,11 @@ void SwReadOnlyPopup::Execute( vcl::Window* pWin, sal_uInt16 nId )
{
OUString sTmp;
sal_uInt16 nSaveId;
- if (nId >= MN_READONLY_BACKGROUNDTOGALLERY)
+ if (m_aBrushItem && nId >= MN_READONLY_BACKGROUNDTOGALLERY)
{
nId -= MN_READONLY_BACKGROUNDTOGALLERY;
nSaveId = m_nReadonlySaveBackground;
- sTmp = m_aBrushItem.GetGraphicLink();
+ sTmp = m_aBrushItem->GetGraphicLink();
}
else
{
@@ -331,14 +331,14 @@ OUString SwReadOnlyPopup::SaveGraphic(sal_uInt16 nId)
// fish out the graphic's name
if (nId == m_nReadonlySaveBackground)
{
- if ( !m_aBrushItem.GetGraphicLink().isEmpty() )
- m_sGrfName = m_aBrushItem.GetGraphicLink();
- const Graphic *pGrf = m_aBrushItem.GetGraphic();
+ if ( m_aBrushItem && !m_aBrushItem->GetGraphicLink().isEmpty() )
+ m_sGrfName = m_aBrushItem->GetGraphicLink();
+ const Graphic *pGrf = m_aBrushItem ? m_aBrushItem->GetGraphic() : nullptr;
if ( pGrf )
{
m_aGraphic = *pGrf;
- if ( !m_aBrushItem.GetGraphicLink().isEmpty() )
- m_sGrfName = m_aBrushItem.GetGraphicLink();
+ if ( !m_aBrushItem->GetGraphicLink().isEmpty() )
+ m_sGrfName = m_aBrushItem->GetGraphicLink();
}
else
return OUString();
diff --git a/sw/source/uibase/docvw/romenu.hxx b/sw/source/uibase/docvw/romenu.hxx
index 18a9bccd0f35..54df7fb8bb57 100644
--- a/sw/source/uibase/docvw/romenu.hxx
+++ b/sw/source/uibase/docvw/romenu.hxx
@@ -58,7 +58,7 @@ class SwReadOnlyPopup
sal_uInt16 const m_nReadonlyCopy;
SwView &m_rView;
- SvxBrushItem m_aBrushItem;
+ std::shared_ptr<SvxBrushItem> m_aBrushItem;
Graphic m_aGraphic;
OUString m_sURL,
m_sTargetFrameName;
diff --git a/sw/source/uibase/shells/annotsh.cxx b/sw/source/uibase/shells/annotsh.cxx
index 79990b849654..b1d0054dec3d 100644
--- a/sw/source/uibase/shells/annotsh.cxx
+++ b/sw/source/uibase/shells/annotsh.cxx
@@ -1724,19 +1724,24 @@ void SwAnnotationShell::InsertSymbol(SfxRequest& rReq)
SfxItemSet aSet(pOLV->GetAttribs());
SvtScriptType nScript = pOLV->GetSelectedScriptType();
- SvxFontItem aSetDlgFont( RES_CHRATR_FONT );
+ std::shared_ptr<SvxFontItem> aSetDlgFont(std::make_shared<SvxFontItem>(RES_CHRATR_FONT));
{
SvxScriptSetItem aSetItem( SID_ATTR_CHAR_FONT, *aSet.GetPool() );
aSetItem.GetItemSet().Put( aSet, false );
const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScript );
if( pI )
- aSetDlgFont = *static_cast<const SvxFontItem*>(pI);
+ {
+ aSetDlgFont.reset(static_cast<SvxFontItem*>(pI->Clone()));
+ }
else
- aSetDlgFont = static_cast<const SvxFontItem&>(aSet.Get( GetWhichOfScript(
+ {
+ aSetDlgFont.reset(static_cast<SvxFontItem*>(aSet.Get( GetWhichOfScript(
SID_ATTR_CHAR_FONT,
- SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetAppLanguage() ) )));
+ SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetAppLanguage() ) )).Clone()));
+ }
+
if (sFontName.isEmpty())
- sFontName = aSetDlgFont.GetFamilyName();
+ sFontName = aSetDlgFont->GetFamilyName();
}
vcl::Font aFont(sFontName, Size(1,1));
@@ -1752,7 +1757,7 @@ void SwAnnotationShell::InsertSymbol(SfxRequest& rReq)
if( !sSymbolFont.isEmpty() )
aAllSet.Put( SfxStringItem( SID_FONT_NAME, sSymbolFont ) );
else
- aAllSet.Put( SfxStringItem( SID_FONT_NAME, aSetDlgFont.GetFamilyName() ) );
+ aAllSet.Put( SfxStringItem( SID_FONT_NAME, aSetDlgFont->GetFamilyName() ) );
// If character is selected then it can be shown.
ScopedVclPtr<SfxAbstractDialog> pDlg(pFact->CreateCharMapDialog(rView.GetFrameWeld(), aAllSet, true));
diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx
index fa22a93d72ff..0a3a735fdd02 100644
--- a/sw/source/uibase/shells/basesh.cxx
+++ b/sw/source/uibase/shells/basesh.cxx
@@ -2202,7 +2202,7 @@ void SwBaseShell::GetBckColState(SfxItemSet &rSet)
SfxWhichIter aIter(rSet);
sal_uInt16 nWhich(aIter.FirstWhich());
SelectionType nSelType(rSh.GetSelectionType());
- SvxBrushItem aBrushItem(RES_BACKGROUND);
+ std::shared_ptr<SvxBrushItem> aBrushItem(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
if( nWhich == SID_TABLE_CELL_BACKGROUND_COLOR )
{
@@ -2234,15 +2234,18 @@ void SwBaseShell::GetBckColState(SfxItemSet &rSet)
case SID_BACKGROUND_COLOR:
case SID_TABLE_CELL_BACKGROUND_COLOR:
{
- SvxColorItem aColorItem(aBrushItem.GetColor(),SID_BACKGROUND_COLOR);
+ SvxColorItem aColorItem(aBrushItem->GetColor(),SID_BACKGROUND_COLOR);
rSet.Put(aColorItem);
break;
}
case SID_ATTR_BRUSH:
case RES_BACKGROUND:
{
- std::unique_ptr<SfxPoolItem> pNewItem(aBrushItem.CloneSetWhich(GetPool().GetWhich(nWhich)));
- rSet.Put(*pNewItem);
+ // if this was intended to have a independent copy of the Item to be set
+ // this is not needed due to the ItemSet/Pool cloning Items which get set anyways.
+ // Keeping code as reference - it may have had other reasons I do notz see (?!?)
+ // std::unique_ptr<SfxPoolItem> pNewItem(aBrushItem.CloneSetWhich(GetPool().GetWhich(nWhich)));
+ rSet.Put(*aBrushItem);
break;
}
}
@@ -2263,7 +2266,7 @@ void SwBaseShell::ExecBckCol(SfxRequest& rReq)
return;
}
- SvxBrushItem aBrushItem(RES_BACKGROUND);
+ std::shared_ptr<SvxBrushItem> aBrushItem(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
if ( nSlot == SID_TABLE_CELL_BACKGROUND_COLOR )
{
@@ -2293,18 +2296,18 @@ void SwBaseShell::ExecBckCol(SfxRequest& rReq)
case SID_BACKGROUND_COLOR:
case SID_TABLE_CELL_BACKGROUND_COLOR:
{
- aBrushItem.SetGraphicPos(GPOS_NONE);
+ aBrushItem->SetGraphicPos(GPOS_NONE);
if(pArgs)
{
const SvxColorItem& rNewColorItem = pArgs->Get(nSlot == SID_BACKGROUND_COLOR ? SID_BACKGROUND_COLOR : SID_TABLE_CELL_BACKGROUND_COLOR );
const Color& rNewColor = rNewColorItem.GetValue();
- aBrushItem.SetColor(rNewColor);
+ aBrushItem->SetColor(rNewColor);
GetView().GetViewFrame()->GetBindings().SetState(rNewColorItem);
}
else
{
- aBrushItem.SetColor(COL_TRANSPARENT);
+ aBrushItem->SetColor(COL_TRANSPARENT);
rReq.AppendItem(SvxColorItem(COL_TRANSPARENT,nSlot));
}
break;
@@ -2314,8 +2317,7 @@ void SwBaseShell::ExecBckCol(SfxRequest& rReq)
case RES_BACKGROUND:
{
assert(pArgs && "only SID_BACKGROUND_COLOR can have !pArgs, checked at entry");
- const SvxBrushItem& rNewBrushItem = static_cast<const SvxBrushItem&>(pArgs->Get(GetPool().GetWhich(nSlot)));
- aBrushItem = rNewBrushItem;
+ aBrushItem.reset(static_cast<SvxBrushItem*>(pArgs->Get(GetPool().GetWhich(nSlot)).Clone()));
break;
}
default:
@@ -2328,7 +2330,7 @@ void SwBaseShell::ExecBckCol(SfxRequest& rReq)
if ( nSlot == SID_TABLE_CELL_BACKGROUND_COLOR )
{
- rSh.SetBoxBackground( aBrushItem );
+ rSh.SetBoxBackground( *aBrushItem );
}
else
{
@@ -2336,7 +2338,7 @@ void SwBaseShell::ExecBckCol(SfxRequest& rReq)
SfxItemSet aCoreSet(GetPool(), svl::Items<XATTR_FILL_FIRST, XATTR_FILL_LAST>{});
aCoreSet.SetParent(&GetView().GetDocShell()->GetDoc()->GetDfltFrameFormat()->GetAttrSet());
- setSvxBrushItemAsFillAttributesToTargetSet(aBrushItem, aCoreSet);
+ setSvxBrushItemAsFillAttributesToTargetSet(*aBrushItem, aCoreSet);
if((SelectionType::Frame & nSelType) || (SelectionType::Graphic & nSelType))
{
@@ -2526,10 +2528,10 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq)
if ( rSh.IsTableMode() )
{
// Get background attributes of the table and put it in the set
- SvxBrushItem aBrush(RES_BACKGROUND);
+ std::shared_ptr<SvxBrushItem> aBrush;
rSh.GetBoxBackground( aBrush );
pDlg.disposeAndReset(pFact->CreateSwBackgroundDialog(pMDI, aSet));
- aSet.Put( aBrush );
+ aSet.Put( *aBrush );
if ( pDlg->Execute() == RET_OK )
{
diff --git a/sw/source/uibase/shells/drwtxtsh.cxx b/sw/source/uibase/shells/drwtxtsh.cxx
index aae01e315673..66aa26277bfa 100644
--- a/sw/source/uibase/shells/drwtxtsh.cxx
+++ b/sw/source/uibase/shells/drwtxtsh.cxx
@@ -697,19 +697,19 @@ void SwDrawTextShell::InsertSymbol(SfxRequest& rReq)
SfxItemSet aSet(pOLV->GetAttribs());
SvtScriptType nScript = pOLV->GetSelectedScriptType();
- SvxFontItem aSetDlgFont( RES_CHRATR_FONT );
+ std::shared_ptr<SvxFontItem> aSetDlgFont(std::make_shared<SvxFontItem>(RES_CHRATR_FONT));
{
SvxScriptSetItem aSetItem( SID_ATTR_CHAR_FONT, *aSet.GetPool() );
aSetItem.GetItemSet().Put( aSet, false );
const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScript );
if( pI )
- aSetDlgFont = *static_cast<const SvxFontItem*>(pI);
+ aSetDlgFont.reset(static_cast<SvxFontItem*>(pI->Clone()));
else
- aSetDlgFont = static_cast<const SvxFontItem&>(aSet.Get( GetWhichOfScript(
+ aSetDlgFont.reset(static_cast<SvxFontItem*>(aSet.Get( GetWhichOfScript(
SID_ATTR_CHAR_FONT,
- SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetAppLanguage() ) )));
+ SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetAppLanguage() ) )).Clone()));
if (sFontName.isEmpty())
- sFontName = aSetDlgFont.GetFamilyName();
+ sFontName = aSetDlgFont->GetFamilyName();
}
vcl::Font aFont(sFontName, Size(1,1));
@@ -723,7 +723,7 @@ void SwDrawTextShell::InsertSymbol(SfxRequest& rReq)
if( !sSymbolFont.isEmpty() )
aAllSet.Put( SfxStringItem( SID_FONT_NAME, sSymbolFont ) );
else
- aAllSet.Put( SfxStringItem( SID_FONT_NAME, aSetDlgFont.GetFamilyName() ) );
+ aAllSet.Put( SfxStringItem( SID_FONT_NAME, aSetDlgFont->GetFamilyName() ) );
// If character is selected, it can be shown
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx
index 31a599b4defc..a1e18351d68b 100644
--- a/sw/source/uibase/shells/frmsh.cxx
+++ b/sw/source/uibase/shells/frmsh.cxx
@@ -1017,7 +1017,7 @@ void SwFrameShell::ExecFrameStyle(SfxRequest const & rReq)
if (pPoolBoxItem == &rBoxItem)
bDefault = true;
- SvxBoxItem aBoxItem(rBoxItem);
+ std::shared_ptr<SvxBoxItem> aBoxItem(static_cast<SvxBoxItem*>(rBoxItem.Clone()));
SvxBorderLine aBorderLine;
const SfxPoolItem *pItem = nullptr;
@@ -1030,16 +1030,16 @@ void SwFrameShell::ExecFrameStyle(SfxRequest const & rReq)
{
if (pArgs->GetItemState(RES_BOX, true, &pItem) == SfxItemState::SET)
{
- SvxBoxItem aNewBox(*static_cast<const SvxBoxItem *>(pItem));
+ std::shared_ptr<SvxBoxItem> aNewBox(static_cast<SvxBoxItem*>(pItem->Clone()));
const SvxBorderLine* pBorderLine;
- if ((pBorderLine = aBoxItem.GetTop()) != nullptr)
+ if ((pBorderLine = aBoxItem->GetTop()) != nullptr)
lcl_FrameGetMaxLineWidth(pBorderLine, aBorderLine);
- if ((pBorderLine = aBoxItem.GetBottom()) != nullptr)
+ if ((pBorderLine = aBoxItem->GetBottom()) != nullptr)
lcl_FrameGetMaxLineWidth(pBorderLine, aBorderLine);
- if ((pBorderLine = aBoxItem.GetLeft()) != nullptr)
+ if ((pBorderLine = aBoxItem->GetLeft()) != nullptr)
lcl_FrameGetMaxLineWidth(pBorderLine, aBorderLine);
- if ((pBorderLine = aBoxItem.GetRight()) != nullptr)
+ if ((pBorderLine = aBoxItem->GetRight()) != nullptr)
lcl_FrameGetMaxLineWidth(pBorderLine, aBorderLine);
if(aBorderLine.GetOutWidth() == 0)
@@ -1055,20 +1055,20 @@ void SwFrameShell::ExecFrameStyle(SfxRequest const & rReq)
#endif
{
// TODO: should this copy 4 individual Dist instead?
- aNewBox.SetAllDistances(rBoxItem.GetSmallestDistance());
+ aNewBox->SetAllDistances(rBoxItem.GetSmallestDistance());
}
aBoxItem = aNewBox;
SvxBorderLine aDestBorderLine;
- if( aBoxItem.GetTop() != nullptr )
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::TOP);
- if( aBoxItem.GetBottom() != nullptr )
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
- if( aBoxItem.GetLeft() != nullptr )
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
- if( aBoxItem.GetRight() != nullptr )
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
+ if( aBoxItem->GetTop() != nullptr )
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::TOP);
+ if( aBoxItem->GetBottom() != nullptr )
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
+ if( aBoxItem->GetLeft() != nullptr )
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
+ if( aBoxItem->GetRight() != nullptr )
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
}
}
break;
@@ -1084,44 +1084,44 @@ void SwFrameShell::ExecFrameStyle(SfxRequest const & rReq)
{
aBorderLine = *(pLineItem->GetLine());
- if (!aBoxItem.GetTop() && !aBoxItem.GetBottom() &&
- !aBoxItem.GetLeft() && !aBoxItem.GetRight())
+ if (!aBoxItem->GetTop() && !aBoxItem->GetBottom() &&
+ !aBoxItem->GetLeft() && !aBoxItem->GetRight())
{
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::TOP);
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::TOP);
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
}
else
{
- if( aBoxItem.GetTop() )
+ if( aBoxItem->GetTop() )
{
- aBorderLine.SetColor( aBoxItem.GetTop()->GetColor() );
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::TOP);
+ aBorderLine.SetColor( aBoxItem->GetTop()->GetColor() );
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::TOP);
}
- if( aBoxItem.GetBottom() )
+ if( aBoxItem->GetBottom() )
{
- aBorderLine.SetColor( aBoxItem.GetBottom()->GetColor());
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
+ aBorderLine.SetColor( aBoxItem->GetBottom()->GetColor());
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
}
- if( aBoxItem.GetLeft() )
+ if( aBoxItem->GetLeft() )
{
- aBorderLine.SetColor( aBoxItem.GetLeft()->GetColor());
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
+ aBorderLine.SetColor( aBoxItem->GetLeft()->GetColor());
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
}
- if( aBoxItem.GetRight() )
+ if( aBoxItem->GetRight() )
{
- aBorderLine.SetColor(aBoxItem.GetRight()->GetColor());
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
+ aBorderLine.SetColor(aBoxItem->GetRight()->GetColor());
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
}
}
}
else
{
- aBoxItem.SetLine(nullptr, SvxBoxItemLine::TOP);
- aBoxItem.SetLine(nullptr, SvxBoxItemLine::BOTTOM);
- aBoxItem.SetLine(nullptr, SvxBoxItemLine::LEFT);
- aBoxItem.SetLine(nullptr, SvxBoxItemLine::RIGHT);
+ aBoxItem->SetLine(nullptr, SvxBoxItemLine::TOP);
+ aBoxItem->SetLine(nullptr, SvxBoxItemLine::BOTTOM);
+ aBoxItem->SetLine(nullptr, SvxBoxItemLine::LEFT);
+ aBoxItem->SetLine(nullptr, SvxBoxItemLine::RIGHT);
}
}
}
@@ -1133,37 +1133,37 @@ void SwFrameShell::ExecFrameStyle(SfxRequest const & rReq)
{
const Color& rNewColor = static_cast<const SvxColorItem*>(pItem)->GetValue();
- if (!aBoxItem.GetTop() && !aBoxItem.GetBottom() &&
- !aBoxItem.GetLeft() && !aBoxItem.GetRight())
+ if (!aBoxItem->GetTop() && !aBoxItem->GetBottom() &&
+ !aBoxItem->GetLeft() && !aBoxItem->GetRight())
{
aBorderLine.SetColor( rNewColor );
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::TOP);
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
- aBoxItem.SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::TOP);
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
+ aBoxItem->SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
}
else
{
- if ( aBoxItem.GetTop() )
- const_cast<SvxBorderLine*>(aBoxItem.GetTop())->SetColor( rNewColor );
- if ( aBoxItem.GetBottom() )
- const_cast<SvxBorderLine*>(aBoxItem.GetBottom())->SetColor( rNewColor );
- if ( aBoxItem.GetLeft() )
- const_cast<SvxBorderLine*>(aBoxItem.GetLeft())->SetColor( rNewColor );
- if ( aBoxItem.GetRight() )
- const_cast<SvxBorderLine*>(aBoxItem.GetRight())->SetColor( rNewColor );
+ if ( aBoxItem->GetTop() )
+ const_cast<SvxBorderLine*>(aBoxItem->GetTop())->SetColor( rNewColor );
+ if ( aBoxItem->GetBottom() )
+ const_cast<SvxBorderLine*>(aBoxItem->GetBottom())->SetColor( rNewColor );
+ if ( aBoxItem->GetLeft() )
+ const_cast<SvxBorderLine*>(aBoxItem->GetLeft())->SetColor( rNewColor );
+ if ( aBoxItem->GetRight() )
+ const_cast<SvxBorderLine*>(aBoxItem->GetRight())->SetColor( rNewColor );
}
}
}
break;
}
}
- if (bDefault && (aBoxItem.GetTop() || aBoxItem.GetBottom() ||
- aBoxItem.GetLeft() || aBoxItem.GetRight()))
+ if (bDefault && (aBoxItem->GetTop() || aBoxItem->GetBottom() ||
+ aBoxItem->GetLeft() || aBoxItem->GetRight()))
{
- aBoxItem.SetAllDistances(MIN_BORDER_DIST);
+ aBoxItem->SetAllDistances(MIN_BORDER_DIST);
}
- aFrameSet.Put( aBoxItem );
+ aFrameSet.Put( *aBoxItem );
// Template AutoUpdate
SwFrameFormat* pFormat = rSh.GetSelectedFrameFormat();
if(pFormat && pFormat->IsAutoUpdateFormat())
diff --git a/sw/source/uibase/shells/tabsh.cxx b/sw/source/uibase/shells/tabsh.cxx
index 4333c01637f3..ef892924fc27 100644
--- a/sw/source/uibase/shells/tabsh.cxx
+++ b/sw/source/uibase/shells/tabsh.cxx
@@ -155,24 +155,24 @@ static SwTableRep* lcl_TableParamToItemSet( SfxItemSet& rSet, SwWrtShell &rSh )
const sal_uInt16 nBackgroundDestination = rSh.GetViewOptions()->GetTableDest();
rSet.Put(SfxUInt16Item(SID_BACKGRND_DESTINATION, nBackgroundDestination ));
- SvxBrushItem aBrush( RES_BACKGROUND );
+ std::shared_ptr<SvxBrushItem> aBrush(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
if(rSh.GetRowBackground(aBrush))
{
- aBrush.SetWhich(SID_ATTR_BRUSH_ROW);
- rSet.Put( aBrush );
+ aBrush->SetWhich(SID_ATTR_BRUSH_ROW);
+ rSet.Put( *aBrush );
}
else
rSet.InvalidateItem(SID_ATTR_BRUSH_ROW);
rSh.GetTabBackground(aBrush);
- aBrush.SetWhich(SID_ATTR_BRUSH_TABLE);
- rSet.Put( aBrush );
+ aBrush->SetWhich(SID_ATTR_BRUSH_TABLE);
+ rSet.Put( *aBrush );
// text direction in boxes
- SvxFrameDirectionItem aBoxDirection( SvxFrameDirection::Environment, RES_FRAMEDIR );
+ std::shared_ptr<SvxFrameDirectionItem> aBoxDirection(std::make_shared<SvxFrameDirectionItem>(SvxFrameDirection::Environment, RES_FRAMEDIR));
if(rSh.GetBoxDirection( aBoxDirection ))
{
- aBoxDirection.SetWhich(FN_TABLE_BOX_TEXTORIENTATION);
- rSet.Put(aBoxDirection);
+ aBoxDirection->SetWhich(FN_TABLE_BOX_TEXTORIENTATION);
+ rSet.Put(*aBoxDirection);
}
bool bSelectAll = rSh.StartsWithTable() && rSh.ExtendedSelectedAll();
@@ -310,15 +310,15 @@ void ItemSetToTableParam( const SfxItemSet& rSet,
rSh.SetBoxBackground( *static_cast<const SvxBrushItem*>(pItem) );
if(pRowItem)
{
- SvxBrushItem aBrush(*static_cast<const SvxBrushItem*>(pRowItem));
- aBrush.SetWhich(RES_BACKGROUND);
- rSh.SetRowBackground(aBrush);
+ std::shared_ptr<SvxBrushItem> aBrush(static_cast<SvxBrushItem*>(pRowItem->Clone()));
+ aBrush->SetWhich(RES_BACKGROUND);
+ rSh.SetRowBackground(*aBrush);
}
if(pTableItem)
{
- SvxBrushItem aBrush(*static_cast<const SvxBrushItem*>(pTableItem));
- aBrush.SetWhich(RES_BACKGROUND);
- rSh.SetTabBackground( aBrush );
+ std::shared_ptr<SvxBrushItem> aBrush(static_cast<SvxBrushItem*>(pTableItem->Clone()));
+ aBrush->SetWhich(RES_BACKGROUND);
+ rSh.SetTabBackground( *aBrush );
}
}
@@ -469,7 +469,7 @@ void SwTableShell::Execute(SfxRequest &rReq)
if(!pArgs)
break;
// Create items, because we have to rework anyway.
- SvxBoxItem aBox( RES_BOX );
+ std::shared_ptr<SvxBoxItem> aBox(std::make_shared<SvxBoxItem>(RES_BOX));
SfxItemSet aCoreSet( GetPool(),
svl::Items<RES_BOX, RES_BOX,
SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER>{});
@@ -480,31 +480,33 @@ void SwTableShell::Execute(SfxRequest &rReq)
const SfxPoolItem *pBoxItem = nullptr;
if ( pArgs->GetItemState(RES_BOX, true, &pBoxItem) == SfxItemState::SET )
{
- aBox = *static_cast<const SvxBoxItem*>(pBoxItem);
+ aBox.reset(static_cast<SvxBoxItem*>(pBoxItem->Clone()));
sal_uInt16 nDefValue = MIN_BORDER_DIST;
if ( !rReq.IsAPI() )
nDefValue = 55;
- if (!rReq.IsAPI() || aBox.GetSmallestDistance() < MIN_BORDER_DIST)
+ if (!rReq.IsAPI() || aBox->GetSmallestDistance() < MIN_BORDER_DIST)
{
for( SvxBoxItemLine k : o3tl::enumrange<SvxBoxItemLine>() )
- aBox.SetDistance( std::max(rCoreBox.GetDistance(k), nDefValue) , k );
+ aBox->SetDistance( std::max(rCoreBox.GetDistance(k), nDefValue) , k );
}
}
else
OSL_ENSURE( false, "where is BoxItem?" );
//since the drawing layer also supports borders the which id might be a different one
- SvxBoxInfoItem aInfo( SID_ATTR_BORDER_INNER );
+ std::shared_ptr<SvxBoxInfoItem> aInfo(std::make_shared<SvxBoxInfoItem>(SID_ATTR_BORDER_INNER));
if (pArgs->GetItemState(SID_ATTR_BORDER_INNER, true, &pBoxItem) == SfxItemState::SET)
- aInfo = *static_cast<const SvxBoxInfoItem*>(pBoxItem);
+ {
+ aInfo.reset(static_cast<SvxBoxInfoItem*>(pBoxItem->Clone()));
+ }
else if( pArgs->GetItemState(SDRATTR_TABLE_BORDER_INNER, true, &pBoxItem) == SfxItemState::SET )
{
- aInfo = *static_cast<const SvxBoxInfoItem*>(pBoxItem);
- aInfo.SetWhich(SID_ATTR_BORDER_INNER);
+ aInfo.reset(static_cast<SvxBoxInfoItem*>(pBoxItem->Clone()));
+ aInfo->SetWhich(SID_ATTR_BORDER_INNER);
}
- aInfo.SetTable( true );
- aInfo.SetValid( SvxBoxInfoItemValidFlags::DISABLE, false );
+ aInfo->SetTable( true );
+ aInfo->SetValid( SvxBoxInfoItemValidFlags::DISABLE, false );
// The attributes of all lines will be read and the strongest wins.
const SvxBorderLine* pBorderLine;
@@ -528,40 +530,40 @@ void SwTableShell::Execute(SfxRequest &rReq)
aBorderLine.SetWidth( DEF_LINE_WIDTH_5 );
}
- if( aBox.GetTop() != nullptr )
+ if( aBox->GetTop() != nullptr )
{
- aBox.SetLine(&aBorderLine, SvxBoxItemLine::TOP);
+ aBox->SetLine(&aBorderLine, SvxBoxItemLine::TOP);
}
- if( aBox.GetBottom() != nullptr )
+ if( aBox->GetBottom() != nullptr )
{
- aBox.SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
+ aBox->SetLine(&aBorderLine, SvxBoxItemLine::BOTTOM);
}
- if( aBox.GetLeft() != nullptr )
+ if( aBox->GetLeft() != nullptr )
{
- aBox.SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
+ aBox->SetLine(&aBorderLine, SvxBoxItemLine::LEFT);
}
- if( aBox.GetRight() != nullptr )
+ if( aBox->GetRight() != nullptr )
{
- aBox.SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
+ aBox->SetLine(&aBorderLine, SvxBoxItemLine::RIGHT);
}
- if( aInfo.GetHori() != nullptr )
+ if( aInfo->GetHori() != nullptr )
{
- aInfo.SetLine(&aBorderLine, SvxBoxInfoItemLine::HORI);
+ aInfo->SetLine(&aBorderLine, SvxBoxInfoItemLine::HORI);
}
- if( aInfo.GetVert() != nullptr )
+ if( aInfo->GetVert() != nullptr )
{
- aInfo.SetLine(&aBorderLine, SvxBoxInfoItemLine::VERT);
+ aInfo->SetLine(&aBorderLine, SvxBoxInfoItemLine::VERT);
}
- aCoreSet.Put( aBox );
- aCoreSet.Put( aInfo );
+ aCoreSet.Put( *aBox );
+ aCoreSet.Put( *aInfo );
rSh.SetTabBorders( aCoreSet );
// we must record the "real" values because otherwise the lines can't be reconstructed on playtime
// the coding style of the controller (setting lines with width 0) is not transportable via Query/PutValue in
// the SvxBoxItem
- rReq.AppendItem( aBox );
- rReq.AppendItem( aInfo );
+ rReq.AppendItem( *aBox );
+ rReq.AppendItem( *aInfo );
bCallDone = true;
break;
}
@@ -582,9 +584,9 @@ void SwTableShell::Execute(SfxRequest &rReq)
aCoreSet.Put(SfxUInt16Item(SID_HTML_MODE, ::GetHtmlMode(GetView().GetDocShell())));
rSh.GetTableAttr(aCoreSet);
// GetTableAttr overwrites the background!
- SvxBrushItem aBrush( RES_BACKGROUND );
+ std::shared_ptr<SvxBrushItem> aBrush(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
if(rSh.GetBoxBackground(aBrush))
- aCoreSet.Put( aBrush );
+ aCoreSet.Put( *aBrush );
else
aCoreSet.InvalidateItem( RES_BACKGROUND );
diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx
index 3b7b5d41d57e..20fad8442156 100644
--- a/sw/source/uibase/shells/textsh.cxx
+++ b/sw/source/uibase/shells/textsh.cxx
@@ -905,21 +905,26 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq )
rSh.GetCurAttr( aSet );
SvtScriptType nScript = rSh.GetScriptType();
- SvxFontItem aFont( RES_CHRATR_FONT );
+ std::shared_ptr<SvxFontItem> aFont(std::make_shared<SvxFontItem>(RES_CHRATR_FONT));
{
SvxScriptSetItem aSetItem( SID_ATTR_CHAR_FONT, *aSet.GetPool() );
aSetItem.GetItemSet().Put( aSet, false );
const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScript );
if( pI )
- aFont = *static_cast<const SvxFontItem*>(pI);
+ {
+ aFont.reset(static_cast<SvxFontItem*>(pI->Clone()));
+ }
else
- aFont = static_cast<const SvxFontItem&>(
+ {
+ aFont.reset(static_cast<SvxFontItem*>(
aSet.Get(
GetWhichOfScript(
RES_CHRATR_FONT,
- SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetAppLanguage() ) )));
+ SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetAppLanguage() ) )).Clone()));
+ }
+
if (aFontName.isEmpty())
- aFontName = aFont.GetFamilyName();
+ aFontName = aFont->GetFamilyName();
}
vcl::Font aNewFont(aFontName, Size(1,1)); // Size only because CTOR.
@@ -934,7 +939,7 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq )
if( aFontName.isEmpty() && !sSymbolFont.isEmpty() )
aAllSet.Put( SfxStringItem( SID_FONT_NAME, sSymbolFont ) );
else
- aAllSet.Put( SfxStringItem( SID_FONT_NAME, aFont.GetFamilyName() ) );
+ aAllSet.Put( SfxStringItem( SID_FONT_NAME, aFont->GetFamilyName() ) );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<SfxAbstractDialog> pDlg(pFact->CreateCharMapDialog(GetView().GetFrameWeld(), aAllSet, true));
@@ -961,11 +966,15 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq )
aSetItem.GetItemSet().Put( aSet, false );
const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScript );
if( pI )
- aFont = *static_cast<const SvxFontItem*>(pI);
+ {
+ aFont.reset(static_cast<SvxFontItem*>(pI->Clone()));
+ }
else
- aFont = static_cast<const SvxFontItem&>(aSet.Get( GetWhichOfScript(
+ {
+ aFont.reset(static_cast<SvxFontItem*>(aSet.Get( GetWhichOfScript(
RES_CHRATR_FONT,
- SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetAppLanguage() ) )));
+ SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetAppLanguage() ) )).Clone()));
+ }
}
// Insert character.
@@ -974,11 +983,11 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq )
// #108876# a font attribute has to be set always due to a guessed script type
if( !aNewFont.GetFamilyName().isEmpty() )
{
- SvxFontItem aNewFontItem( aFont );
- aNewFontItem.SetFamilyName( aNewFont.GetFamilyName() );
- aNewFontItem.SetFamily( aNewFont.GetFamilyType());
- aNewFontItem.SetPitch( aNewFont.GetPitch());
- aNewFontItem.SetCharSet( aNewFont.GetCharSet() );
+ std::shared_ptr<SvxFontItem> aNewFontItem(static_cast<SvxFontItem*>(aFont->Clone()));
+ aNewFontItem->SetFamilyName( aNewFont.GetFamilyName() );
+ aNewFontItem->SetFamily( aNewFont.GetFamilyType());
+ aNewFontItem->SetPitch( aNewFont.GetPitch());
+ aNewFontItem->SetCharSet( aNewFont.GetCharSet() );
SfxItemSet aRestoreSet( GetPool(), svl::Items<RES_CHRATR_FONT, RES_CHRATR_FONT,
RES_CHRATR_CJK_FONT, RES_CHRATR_CJK_FONT,
@@ -988,20 +997,20 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq )
if( SvtScriptType::LATIN & nScript )
{
aRestoreSet.Put( aSet.Get( RES_CHRATR_FONT ) );
- aNewFontItem.SetWhich(RES_CHRATR_FONT);
- aSet.Put( aNewFontItem );
+ aNewFontItem->SetWhich(RES_CHRATR_FONT);
+ aSet.Put( *aNewFontItem );
}
if( SvtScriptType::ASIAN & nScript )
{
aRestoreSet.Put( aSet.Get( RES_CHRATR_CJK_FONT ) );
- aNewFontItem.SetWhich(RES_CHRATR_CJK_FONT);
- aSet.Put( aNewFontItem );
+ aNewFontItem->SetWhich(RES_CHRATR_CJK_FONT);
+ aSet.Put( *aNewFontItem );
}
if( SvtScriptType::COMPLEX & nScript )
{
aRestoreSet.Put( aSet.Get( RES_CHRATR_CTL_FONT ) );
- aNewFontItem.SetWhich(RES_CHRATR_CTL_FONT);
- aSet.Put( aNewFontItem );
+ aNewFontItem->SetWhich(RES_CHRATR_CTL_FONT);
+ aSet.Put( *aNewFontItem );
}
rSh.SetMark();
@@ -1020,7 +1029,10 @@ void SwTextShell::InsertSymbol( SfxRequest& rReq )
rSh.ClearMark();
rSh.UpdateAttr();
- aFont = aNewFontItem;
+
+ // Why was this done? aFont is not used anymore below, we are not
+ // in a loop and it's a local variable...?
+ // aFont = aNewFontItem;
}
rSh.EndAllAction();
diff --git a/sw/source/uibase/uiview/formatclipboard.cxx b/sw/source/uibase/uiview/formatclipboard.cxx
index 76cadb99a208..f8f95205dbf6 100644
--- a/sw/source/uibase/uiview/formatclipboard.cxx
+++ b/sw/source/uibase/uiview/formatclipboard.cxx
@@ -98,29 +98,29 @@ std::unique_ptr<SfxItemSet> lcl_CreateEmptyItemSet( SelectionType nSelectionType
void lcl_getTableAttributes( SfxItemSet& rSet, SwWrtShell &rSh )
{
- SvxBrushItem aBrush( RES_BACKGROUND );
+ std::shared_ptr<SvxBrushItem> aBrush(std::make_shared<SvxBrushItem>(RES_BACKGROUND));
rSh.GetBoxBackground(aBrush);
- rSet.Put( aBrush );
+ rSet.Put( *aBrush );
if(rSh.GetRowBackground(aBrush))
{
- aBrush.SetWhich(SID_ATTR_BRUSH_ROW);
- rSet.Put( aBrush );
+ aBrush->SetWhich(SID_ATTR_BRUSH_ROW);
+ rSet.Put( *aBrush );
}
else
rSet.InvalidateItem(SID_ATTR_BRUSH_ROW);
rSh.GetTabBackground(aBrush);
- aBrush.SetWhich(SID_ATTR_BRUSH_TABLE);
- rSet.Put( aBrush );
+ aBrush->SetWhich(SID_ATTR_BRUSH_TABLE);
+ rSet.Put( *aBrush );
SvxBoxInfoItem aBoxInfo( SID_ATTR_BORDER_INNER );
rSet.Put(aBoxInfo);
rSh.GetTabBorders( rSet );
- SvxFrameDirectionItem aBoxDirection( SvxFrameDirection::Environment, RES_FRAMEDIR );
+ std::shared_ptr<SvxFrameDirectionItem> aBoxDirection(std::make_shared<SvxFrameDirectionItem>(SvxFrameDirection::Environment, RES_FRAMEDIR));
if(rSh.GetBoxDirection( aBoxDirection ))
{
- aBoxDirection.SetWhich(FN_TABLE_BOX_TEXTORIENTATION);
- rSet.Put(aBoxDirection);
+ aBoxDirection->SetWhich(FN_TABLE_BOX_TEXTORIENTATION);
+ rSet.Put(*aBoxDirection);
}
rSet.Put(SfxUInt16Item(FN_TABLE_SET_VERT_ALIGN, rSh.GetBoxAlign()));
@@ -159,15 +159,15 @@ void lcl_setTableAttributes( const SfxItemSet& rSet, SwWrtShell &rSh )
rSh.SetBoxBackground( *static_cast<const SvxBrushItem*>(pItem) );
if(pRowItem)
{
- SvxBrushItem aBrush(*static_cast<const SvxBrushItem*>(pRowItem));
- aBrush.SetWhich(RES_BACKGROUND);
- rSh.SetRowBackground(aBrush);
+ std::shared_ptr<SvxBrushItem> aBrush(static_cast<SvxBrushItem*>(pRowItem->Clone()));
+ aBrush->SetWhich(RES_BACKGROUND);
+ rSh.SetRowBackground(*aBrush);
}
if(pTableItem)
{
- SvxBrushItem aBrush(*static_cast<const SvxBrushItem*>(pTableItem));
- aBrush.SetWhich(RES_BACKGROUND);
- rSh.SetTabBackground( aBrush );
+ std::shared_ptr<SvxBrushItem> aBrush(static_cast<SvxBrushItem*>(pTableItem->Clone()));
+ aBrush->SetWhich(RES_BACKGROUND);
+ rSh.SetTabBackground(*aBrush);
}
}
if(bBorder)
diff --git a/sw/source/uibase/uiview/viewtab.cxx b/sw/source/uibase/uiview/viewtab.cxx
index f59d3103c75e..39e056cc0b2f 100644
--- a/sw/source/uibase/uiview/viewtab.cxx
+++ b/sw/source/uibase/uiview/viewtab.cxx
@@ -721,25 +721,24 @@ void SwView::ExecTabWin( SfxRequest const & rReq )
if ( i >= rTabStops.Count() )
{
// No DefTab
- SvxTabStopItem aTabStops( RES_PARATR_TABSTOP );
- aTabStops = rTabStops;
+ std::shared_ptr<SvxTabStopItem> aTabStops(static_cast<SvxTabStopItem*>(rTabStops.Clone()));
- ::lcl_EraseDefTabs(aTabStops);
+ ::lcl_EraseDefTabs(*aTabStops);
SvxTabStop aSwTabStop( 0, SvxTabAdjust::Default );
- aTabStops.Insert(aSwTabStop);
+ aTabStops->Insert(aSwTabStop);
const SvxTabStopItem& rDefTabs = rSh.GetDefault(RES_PARATR_TABSTOP);
- ::MakeDefTabs( ::GetTabDist(rDefTabs), aTabStops );
+ ::MakeDefTabs( ::GetTabDist(rDefTabs), *aTabStops );
if( pColl && pColl->IsAutoUpdateFormat())
{
SfxItemSet aSetTmp(GetPool(), svl::Items<RES_PARATR_TABSTOP, RES_PARATR_TABSTOP>{});
- aSetTmp.Put(aTabStops);
+ aSetTmp.Put(*aTabStops);
rSh.AutoUpdatePara( pColl, aSetTmp );
}
else
- rSh.SetAttrItem( aTabStops );
+ rSh.SetAttrItem( *aTabStops );
}
}
}
@@ -1453,15 +1452,15 @@ void SwView::StateTabWin(SfxItemSet& rSet)
}
else
{
- SvxLRSpaceItem aLR( RES_LR_SPACE );
+ std::shared_ptr<SvxLRSpaceItem> aLR(std::make_shared<SvxLRSpaceItem>(RES_LR_SPACE));
if ( !IsTabColFromDoc() )
{
- aLR = aCoreSet.Get(RES_LR_SPACE);
+ aLR.reset(static_cast<SvxLRSpaceItem*>(aCoreSet.Get(RES_LR_SPACE).Clone()));
// #i23726#
if (m_pNumRuleNodeFromDoc)
{
- short nOffset = static_cast< short >(aLR.GetTextLeft() +
+ short nOffset = static_cast< short >(aLR->GetTextLeft() +
// #i42922# Mouse move of numbering label
// has to consider the left indent of the paragraph
m_pNumRuleNodeFromDoc->GetLeftMarginWithNum( true ) );
@@ -1469,11 +1468,11 @@ void SwView::StateTabWin(SfxItemSet& rSet)
short nFLOffset;
m_pNumRuleNodeFromDoc->GetFirstLineOfsWithNum( nFLOffset );
- aLR.SetLeft( nOffset + nFLOffset );
+ aLR->SetLeft( nOffset + nFLOffset );
}
}
- aLR.SetWhich(nWhich);
- rSet.Put(aLR);
+ aLR->SetWhich(nWhich);
+ rSet.Put(*aLR);
}
break;
}
diff --git a/sw/source/uibase/utlui/navipi.cxx b/sw/source/uibase/utlui/navipi.cxx
index af7a34ca2e80..7aac5d6094c4 100644
--- a/sw/source/uibase/utlui/navipi.cxx
+++ b/sw/source/uibase/utlui/navipi.cxx
@@ -1115,7 +1115,7 @@ sal_Int8 SwNavigationPI::ExecuteDrop( const ExecuteDropEvent& rEvt )
m_pxObjectShell.reset();
}
SfxStringItem aFileItem(SID_FILE_NAME, sFileName );
- SfxStringItem aOptionsItem( SID_OPTIONS, OUString("HRC") );
+ SfxStringItem aOptionsItem( SID_OPTIONS, "HRC" );
SfxLinkItem aLink( SID_DONELINK,
LINK( this, SwNavigationPI, DoneLink ) );
GetActiveView()->GetViewFrame()->GetDispatcher()->ExecuteList(
diff --git a/sw/source/uibase/utlui/uitool.cxx b/sw/source/uibase/utlui/uitool.cxx
index 2c84af61fd53..c44434b25961 100644
--- a/sw/source/uibase/utlui/uitool.cxx
+++ b/sw/source/uibase/utlui/uitool.cxx
@@ -101,25 +101,27 @@ void SetMetric(MetricFormatter& rCtrl, FieldUnit eUnit)
void PrepareBoxInfo(SfxItemSet& rSet, const SwWrtShell& rSh)
{
- SvxBoxInfoItem aBoxInfo( SID_ATTR_BORDER_INNER );
+ std::shared_ptr<SvxBoxInfoItem> aBoxInfo(std::make_shared<SvxBoxInfoItem>(SID_ATTR_BORDER_INNER));
const SfxPoolItem *pBoxInfo;
- if ( SfxItemState::SET == rSet.GetItemState( SID_ATTR_BORDER_INNER,
- true, &pBoxInfo))
- aBoxInfo = *static_cast<const SvxBoxInfoItem*>(pBoxInfo);
+
+ if ( SfxItemState::SET == rSet.GetItemState( SID_ATTR_BORDER_INNER, true, &pBoxInfo))
+ {
+ aBoxInfo.reset(static_cast<SvxBoxInfoItem*>(pBoxInfo->Clone()));
+ }
// Table variant: If more than one table cells are selected
rSh.GetCursor(); //So that GetCursorCnt() returns the right thing
- aBoxInfo.SetTable (rSh.IsTableMode() && rSh.GetCursorCnt() > 1);
+ aBoxInfo->SetTable (rSh.IsTableMode() && rSh.GetCursorCnt() > 1);
// Always show the distance field
- aBoxInfo.SetDist (true);
+ aBoxInfo->SetDist (true);
// Set minimal size in tables and paragraphs
- aBoxInfo.SetMinDist (rSh.IsTableMode() || rSh.GetSelectionType() & (SelectionType::Text | SelectionType::Table));
+ aBoxInfo->SetMinDist (rSh.IsTableMode() || rSh.GetSelectionType() & (SelectionType::Text | SelectionType::Table));
// Set always the default distance
- aBoxInfo.SetDefDist (MIN_BORDER_DIST);
+ aBoxInfo->SetDefDist (MIN_BORDER_DIST);
// Single lines can have only in tables DontCare-Status
- aBoxInfo.SetValid(SvxBoxInfoItemValidFlags::DISABLE, !rSh.IsTableMode());
+ aBoxInfo->SetValid(SvxBoxInfoItemValidFlags::DISABLE, !rSh.IsTableMode());
- rSet.Put(aBoxInfo);
+ rSet.Put(*aBoxInfo);
}
void ConvertAttrCharToGen(SfxItemSet& rSet)
@@ -427,22 +429,24 @@ void PageDescToItemSet( const SwPageDesc& rPageDesc, SfxItemSet& rSet)
// Margins, border and the other stuff.
rSet.Put(rMaster.GetAttrSet());
- SvxBoxInfoItem aBoxInfo( SID_ATTR_BORDER_INNER );
+ std::shared_ptr<SvxBoxInfoItem> aBoxInfo(std::make_shared<SvxBoxInfoItem>(SID_ATTR_BORDER_INNER));
const SfxPoolItem *pBoxInfo;
- if ( SfxItemState::SET == rSet.GetItemState( SID_ATTR_BORDER_INNER,
- true, &pBoxInfo) )
- aBoxInfo = *static_cast<const SvxBoxInfoItem*>(pBoxInfo);
- aBoxInfo.SetTable( false );
+ if ( SfxItemState::SET == rSet.GetItemState( SID_ATTR_BORDER_INNER, true, &pBoxInfo) )
+ {
+ aBoxInfo.reset(static_cast<SvxBoxInfoItem*>(pBoxInfo->Clone()));
+ }
+
+ aBoxInfo->SetTable( false );
// Show always the distance field
- aBoxInfo.SetDist( true);
+ aBoxInfo->SetDist( true);
// Set minimal size in tables and paragraphs
- aBoxInfo.SetMinDist( false );
+ aBoxInfo->SetMinDist( false );
// Set always the default distance
- aBoxInfo.SetDefDist( MIN_BORDER_DIST );
+ aBoxInfo->SetDefDist( MIN_BORDER_DIST );
// Single lines can have only in tables DontCare-Status
- aBoxInfo.SetValid( SvxBoxInfoItemValidFlags::DISABLE );
- rSet.Put( aBoxInfo );
+ aBoxInfo->SetValid( SvxBoxInfoItemValidFlags::DISABLE );
+ rSet.Put( *aBoxInfo );
SfxStringItem aFollow(SID_ATTR_PAGE_EXT1, OUString());
if(rPageDesc.GetFollow())
@@ -492,7 +496,7 @@ void PageDescToItemSet( const SwPageDesc& rPageDesc, SfxItemSet& rSet)
// Shifting frame attributes
aHeaderSet.Put(pHeaderFormat->GetAttrSet());
- aHeaderSet.Put( aBoxInfo );
+ aHeaderSet.Put( *aBoxInfo );
// Create SetItem
SvxSetItem aSetItem(SID_ATTR_PAGE_HEADERSET, aHeaderSet);
@@ -542,7 +546,7 @@ void PageDescToItemSet( const SwPageDesc& rPageDesc, SfxItemSet& rSet)
// Shifting Frame attributes
aFooterSet.Put(pFooterFormat->GetAttrSet());
- aFooterSet.Put( aBoxInfo );
+ aFooterSet.Put( *aBoxInfo );
// Create SetItem
SvxSetItem aSetItem(SID_ATTR_PAGE_FOOTERSET, aFooterSet);