[Libreoffice-commits] core.git: Branch 'feature/table-style' - 2 commits - sw/inc sw/source

Alex Ivan alexnivan at yahoo.com
Sun Jun 30 13:13:25 PDT 2013


 sw/inc/charatr.hxx              |   12 +
 sw/inc/swtblfmt.hxx             |   87 +++++++------
 sw/inc/tblafmt.hxx              |    4 
 sw/source/core/doc/swtblfmt.cxx |  139 ++++++++++++---------
 sw/source/core/doc/tblafmt.cxx  |  261 ++++++++++++++++++++++++----------------
 5 files changed, 298 insertions(+), 205 deletions(-)

New commits:
commit f85cc2130c35f22e998e031324d0162367f4d0f8
Author: Alex Ivan <alexnivan at yahoo.com>
Date:   Sun Jun 30 23:10:21 2013 +0300

    Save/Load of SwBoxAutoFmt move to SwTableBoxFmt
    
    Save and Load methods have been moved to SwTableBoxFmt.
    Should now be safe to begin removing Sw*AutoFmt.
    
    Change-Id: I3bca20af4fb540f2923e17d2a1c115f39097b44d

diff --git a/sw/inc/charatr.hxx b/sw/inc/charatr.hxx
index 886437a..f302047 100644
--- a/sw/inc/charatr.hxx
+++ b/sw/inc/charatr.hxx
@@ -104,8 +104,16 @@ inline const SvxCharHiddenItem  &SwAttrSet::GetCharHidden( sal_Bool bInP ) const
 
 inline const SvxPostureItem          &SwFmt::GetPosture(sal_Bool bInP) const
     {   return aSet.GetPosture(bInP); }
+inline const SvxPostureItem          &SwFmt::GetCJKPosture(sal_Bool bInP) const
+    {   return aSet.GetCJKPosture(bInP); }
+inline const SvxPostureItem          &SwFmt::GetCTLPosture(sal_Bool bInP) const
+    {   return aSet.GetCTLPosture(bInP); }
 inline const SvxWeightItem           &SwFmt::GetWeight(sal_Bool bInP) const
     {   return aSet.GetWeight(bInP); }
+inline const SvxWeightItem           &SwFmt::GetCJKWeight(sal_Bool bInP) const
+    {   return aSet.GetCJKWeight(bInP); }
+inline const SvxWeightItem           &SwFmt::GetCTLWeight(sal_Bool bInP) const
+    {   return aSet.GetCTLWeight(bInP); }
 inline const SvxShadowedItem         &SwFmt::GetShadowed(sal_Bool bInP) const
     {   return aSet.GetShadowed(bInP); }
 inline const SvxAutoKernItem         &SwFmt::GetAutoKern(sal_Bool bInP) const
@@ -124,6 +132,10 @@ inline const SvxCrossedOutItem       &SwFmt::GetCrossedOut(sal_Bool bInP) const
     {   return aSet.GetCrossedOut(bInP); }
 inline const SvxFontHeightItem             &SwFmt::GetSize(sal_Bool bInP) const
     {   return aSet.GetSize(bInP); }
+inline const SvxFontHeightItem             &SwFmt::GetCJKSize(sal_Bool bInP) const
+    {   return aSet.GetCJKSize(bInP); }
+inline const SvxFontHeightItem             &SwFmt::GetCTLSize(sal_Bool bInP) const
+    {   return aSet.GetCTLSize(bInP); }
 inline const SvxPropSizeItem         &SwFmt::GetPropSize(sal_Bool bInP) const
     {   return aSet.GetPropSize(bInP); }
 inline const SvxFontItem             &SwFmt::GetFont(sal_Bool bInP) const
diff --git a/sw/inc/swtblfmt.hxx b/sw/inc/swtblfmt.hxx
index 6227ecc..990032f 100644
--- a/sw/inc/swtblfmt.hxx
+++ b/sw/inc/swtblfmt.hxx
@@ -50,6 +50,8 @@
 #include <frmfmt.hxx>
 #include <paratr.hxx>
 
+struct SwAfVersions;
+
 class SwDoc;
 class SwTableLineFmt;
 class SwTableBoxFmt;
@@ -204,11 +206,19 @@ public:
 
     void SetValueFormat( const String& rFmt, LanguageType eLng, LanguageType eSys );
 
+    const SvxFontHeightItem& GetHeight() const;
+    const SvxFontHeightItem& GetCJKHeight() const;
+    const SvxFontHeightItem& GetCTLHeight() const;
+
     const SvxFrameDirectionItem& GetTextOrientation() const;
     const SwFmtVertOrient& GetVerticalAlignment() const;
 
     void GetValueFormat( String& rFmt, LanguageType& rLng, LanguageType& rSys ) const;
 
+    sal_Bool Load( SvStream& rStream, const SwAfVersions& rVersions, sal_uInt16 nVer );
+    sal_Bool Save( SvStream& rStream, sal_uInt16 fileVersion ) const;
+    sal_Bool SaveVersionNo( SvStream& rStream, sal_uInt16 fileVersion ) const;
+
     TYPEINFO();     // Already in base class Content.
 
     DECL_FIXEDMEMPOOL_NEWDEL(SwTableBoxFmt)
diff --git a/sw/inc/tblafmt.hxx b/sw/inc/tblafmt.hxx
index 3ac0123..d8f3132 100644
--- a/sw/inc/tblafmt.hxx
+++ b/sw/inc/tblafmt.hxx
@@ -178,10 +178,6 @@ public:
     void SetBackground( const SvxBrushItem& rNew )      { aBackground = rNew; }
     void SetValueFormat( const String& rFmt, LanguageType eLng, LanguageType eSys )
         { sNumFmtString = rFmt; eNumFmtLanguage = eLng; eSysLanguage = eSys; }
-
-    sal_Bool Load( SvStream& rStream, const SwAfVersions& rVersions, sal_uInt16 nVer );
-    sal_Bool Save( SvStream& rStream, sal_uInt16 fileVersion ) const;
-    sal_Bool SaveVersionNo( SvStream& rStream, sal_uInt16 fileVersion ) const;
 };
 
 /*
diff --git a/sw/source/core/doc/swtblfmt.cxx b/sw/source/core/doc/swtblfmt.cxx
index d9d9c7e..65bdb5f 100644
--- a/sw/source/core/doc/swtblfmt.cxx
+++ b/sw/source/core/doc/swtblfmt.cxx
@@ -427,6 +427,21 @@ void SwTableBoxFmt::SetValueFormat( const String& rFmt, LanguageType eLng, Langu
     eSysLanguage = eSys;
 }
 
+const SvxFontHeightItem& SwTableBoxFmt::GetHeight() const
+{
+    return SwFmt::GetSize();
+}
+
+const SvxFontHeightItem& SwTableBoxFmt::GetCJKHeight() const
+{
+    return SwFmt::GetCJKSize();
+}
+
+const SvxFontHeightItem& SwTableBoxFmt::GetCTLHeight() const
+{
+    return SwFmt::GetCTLSize();
+}
+
 const SvxFrameDirectionItem& SwTableBoxFmt::GetTextOrientation() const
 {
     return SwFmt::GetFrmDir();
diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx
index baa170a..8840a20 100644
--- a/sw/source/core/doc/tblafmt.cxx
+++ b/sw/source/core/doc/tblafmt.cxx
@@ -400,80 +400,114 @@ SwBoxAutoFmt& SwBoxAutoFmt::operator=( const SwBoxAutoFmt& rNew )
     aItem = *(aItemType*)pNew; \
     delete pNew;
 
-sal_Bool SwBoxAutoFmt::Load( SvStream& rStream, const SwAfVersions& rVersions, sal_uInt16 nVer )
+sal_Bool SwTableBoxFmt::Load( SvStream& rStream, const SwAfVersions& rVersions, sal_uInt16 nVer )
 {
     SfxPoolItem* pNew;
-    SvxOrientationItem aOrientation( SVX_ORIENTATION_STANDARD, 0);
-
-    READ( aFont,        SvxFontItem            , rVersions.nFontVersion)
 
+    SvxFontItem aFont = SvxFontItem( *(SvxFontItem*)GetDfltAttr( RES_CHRATR_FONT ) );
+    READ( aFont, SvxFontItem, rVersions.nFontVersion )
     if( rStream.GetStreamCharSet() == aFont.GetCharSet() )
-        aFont.SetCharSet(::osl_getThreadTextEncoding());
+        aFont.SetCharSet( ::osl_getThreadTextEncoding() );
+    SetFont( aFont );
+
+    SvxFontHeightItem aHeight = SvxFontHeightItem( 240, 100, RES_CHRATR_FONTSIZE );
+    READ( aHeight, SvxFontHeightItem, rVersions.nFontHeightVersion )
+    SetHeight( aHeight );
+
+    SvxWeightItem aWeight = SvxWeightItem( WEIGHT_NORMAL, RES_CHRATR_WEIGHT );
+    READ( aWeight, SvxWeightItem, rVersions.nWeightVersion )
+    SetWeight( aWeight );
+
+    SvxPostureItem aPosture = SvxPostureItem( ITALIC_NONE, RES_CHRATR_POSTURE );
+    READ( aPosture, SvxPostureItem, rVersions.nPostureVersion )
+    SetPosture( aPosture );
 
-    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)
+        SvxFontItem aCJKFont = SvxFontItem( *(SvxFontItem*)GetDfltAttr( RES_CHRATR_FONT ) );
+        READ( aCJKFont, SvxFontItem, rVersions.nFontVersion )
+        SetCJKFont( aCJKFont );
+
+        SvxFontHeightItem aCJKHeight = SvxFontHeightItem( 240, 100, RES_CHRATR_FONTSIZE );
+        READ( aCJKHeight, SvxFontHeightItem, rVersions.nFontHeightVersion )
+        SetCJKHeight( aCJKHeight );
+
+        SvxWeightItem aCJKWeight = SvxWeightItem( WEIGHT_NORMAL, RES_CHRATR_WEIGHT );
+        READ( aCJKWeight, SvxWeightItem, rVersions.nWeightVersion )
+        SetCJKWeight( aCJKWeight );
+
+        SvxPostureItem aCJKPosture = SvxPostureItem( ITALIC_NONE, RES_CHRATR_POSTURE );
+        READ( aCJKPosture, SvxPostureItem, rVersions.nPostureVersion )
+        SetCJKPosture( aCJKPosture );
+
+
+        SvxFontItem aCTLFont = SvxFontItem( *(SvxFontItem*)GetDfltAttr( RES_CHRATR_FONT ) );
+        READ( aCTLFont, SvxFontItem, rVersions.nFontVersion )
+        SetCTLFont( aCTLFont );
+
+        SvxFontHeightItem aCTLHeight = SvxFontHeightItem( 240, 100, RES_CHRATR_FONTSIZE );
+        READ( aCTLHeight, SvxFontHeightItem, rVersions.nFontHeightVersion )
+        SetCTLHeight( aCTLHeight );
+
+        SvxWeightItem aCTLWeight = SvxWeightItem( WEIGHT_NORMAL, RES_CHRATR_WEIGHT );
+        READ( aCTLWeight, SvxWeightItem, rVersions.nWeightVersion )
+        SetCTLWeight( aCTLWeight );
+
+        SvxPostureItem aCTLPosture = SvxPostureItem( ITALIC_NONE, RES_CHRATR_POSTURE );
+        READ( aCTLPosture, SvxPostureItem, rVersions.nPostureVersion )
+        SetCTLPosture( aCTLPosture );
     }
-    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)
+    SvxUnderlineItem aUnderline = SvxUnderlineItem( UNDERLINE_NONE, RES_CHRATR_UNDERLINE );
+    READ( aUnderline, SvxUnderlineItem, rVersions.nUnderlineVersion )
+    SetUnderline( aUnderline );
 
-    // --- from 680/dr14 on: diagonal frame lines
-    if( nVer >= AUTOFORMAT_DATA_ID_680DR14 )
+    if( nVer >= AUTOFORMAT_DATA_ID_300OVRLN )
     {
-        READ( aTLBR, SvxLineItem, rVersions.nLineVersion)
-        READ( aBLTR, SvxLineItem, rVersions.nLineVersion)
+        SvxOverlineItem aOverline = SvxOverlineItem( UNDERLINE_NONE, RES_CHRATR_OVERLINE );
+        READ( aOverline, SvxOverlineItem, rVersions.nOverlineVersion )
+        SetOverline( aOverline );
     }
 
-    READ( aBackground,  SvxBrushItem        , rVersions.nBrushVersion)
+    SvxCrossedOutItem aCrossedOut = SvxCrossedOutItem( STRIKEOUT_NONE, RES_CHRATR_CROSSEDOUT );
+    READ( aCrossedOut, SvxCrossedOutItem, rVersions.nCrossedOutVersion )
+    SetCrossedOut( aCrossedOut );
 
-    pNew = aAdjust.Create(rStream, rVersions.nAdjustVersion );
-    SetAdjust( *(SvxAdjustItem*)pNew );
-    delete pNew;
+    SvxContourItem aContour = SvxContourItem( sal_False, RES_CHRATR_CONTOUR );
+    READ( aContour, SvxContourItem, rVersions.nContourVersion )
+    SetContour( aContour );
 
-    if (nVer >= AUTOFORMAT_DATA_ID_31005 && WriterSpecificBlockExists(rStream))
-    {
-        READ(m_aTextOrientation, SvxFrameDirectionItem, rVersions.m_nTextOrientationVersion);
-        READ(m_aVerticalAlignment, SwFmtVertOrient, rVersions.m_nVerticalAlignmentVersion);
-    }
+    SvxShadowedItem aShadowed = SvxShadowedItem( sal_False, RES_CHRATR_SHADOWED );
+    READ( aShadowed, SvxShadowedItem, rVersions.nShadowedVersion )
+    SetShadowed( aShadowed );
 
-    READ( aHorJustify,  SvxHorJustifyItem , rVersions.nHorJustifyVersion)
-    READ( aVerJustify,  SvxVerJustifyItem   , rVersions.nVerJustifyVersion)
+    SvxColorItem aColor = SvxColorItem( RES_CHRATR_COLOR );
+    READ( aColor, SvxColorItem, rVersions.nColorVersion )
+    SetColor( aColor );
 
-    READ( aOrientation, SvxOrientationItem  , rVersions.nOrientationVersion)
-    READ( aMargin, SvxMarginItem       , rVersions.nMarginVersion)
+    SvxBoxItem aBox = SvxBoxItem( RES_BOX );
+    READ( aBox, SvxBoxItem, rVersions.nBoxVersion )
+    SetBox( aBox );
 
-    pNew = aLinebreak.Create(rStream, rVersions.nBoolVersion );
-    aLinebreak.SetValue( ((SfxBoolItem*)pNew)->GetValue() );
+    SvxBrushItem aBackground = SvxBrushItem( RES_BACKGROUND );
+    READ( aBackground, SvxBrushItem, rVersions.nBrushVersion )
+    SetBackground( aBackground );
+
+    SvxAdjustItem aAdjust = SvxAdjustItem( SVX_ADJUST_LEFT, RES_PARATR_ADJUST );
+    pNew = aAdjust.Create( rStream, rVersions.nAdjustVersion );
+    SetAdjust( *(SvxAdjustItem*)pNew );
     delete pNew;
 
-    if ( nVer >= AUTOFORMAT_DATA_ID_504 )
+    if (nVer >= AUTOFORMAT_DATA_ID_31005 && WriterSpecificBlockExists(rStream))
     {
-        pNew = aRotateAngle.Create( rStream, rVersions.nInt32Version );
-        aRotateAngle.SetValue( ((SfxInt32Item*)pNew)->GetValue() );
-        delete pNew;
-        pNew = aRotateMode.Create( rStream, rVersions.nRotateModeVersion );
-        aRotateMode.SetValue( ((SvxRotateModeItem*)pNew)->GetValue() );
-        delete pNew;
+        SvxFrameDirectionItem aTextOrientation = SvxFrameDirectionItem( FRMDIR_ENVIRONMENT, RES_FRAMEDIR );
+        READ( aTextOrientation, SvxFrameDirectionItem, rVersions.m_nTextOrientationVersion )
+        SetTextOrientation( aTextOrientation );
+
+        SwFmtVertOrient aVerticalAlignment = SwFmtVertOrient( 0, com::sun::star::text::VertOrientation::NONE, com::sun::star::text::RelOrientation::FRAME );
+        READ( aVerticalAlignment, SwFmtVertOrient, rVersions.m_nVerticalAlignmentVersion );
+        SetVerticalAlignment( aVerticalAlignment );
     }
 
     if( 0 == rVersions.nNumFmtVersion )
@@ -489,56 +523,84 @@ sal_Bool SwBoxAutoFmt::Load( SvStream& rStream, const SwAfVersions& rVersions, s
             eSysLanguage = ::GetAppLanguage();
     }
 
-    aStacked.SetValue( aOrientation.IsStacked() );
-    aRotateAngle.SetValue( aOrientation.GetRotation( aRotateAngle.GetValue() ) );
-
     return 0 == rStream.GetError();
 }
 
-sal_Bool SwBoxAutoFmt::Save( SvStream& rStream, sal_uInt16 fileVersion ) const
+sal_Bool SwTableBoxFmt::Save( SvStream& rStream, sal_uInt16 fileVersion ) const
 {
-    SvxOrientationItem aOrientation( aRotateAngle.GetValue(), aStacked.GetValue(), 0 );
+    SvxFontItem aFont = GetFont();
+    aFont.Store( rStream, aFont.GetVersion(fileVersion) );
 
-    aFont.Store( rStream, aFont.GetVersion(fileVersion)  );
+    SvxFontHeightItem aHeight = GetHeight();
     aHeight.Store( rStream, aHeight.GetVersion(fileVersion) );
+
+    SvxWeightItem aWeight = GetWeight();
     aWeight.Store( rStream, aWeight.GetVersion(fileVersion) );
+
+    SvxPostureItem aPosture = GetPosture();
     aPosture.Store( rStream, aPosture.GetVersion(fileVersion) );
-    aCJKFont.Store( rStream, aCJKFont.GetVersion(fileVersion)  );
+
+    SvxFontItem aCJKFont = GetCJKFont();
+    aCJKFont.Store( rStream, aCJKFont.GetVersion(fileVersion) );
+
+    SvxFontHeightItem aCJKHeight = GetCJKHeight();
     aCJKHeight.Store( rStream, aCJKHeight.GetVersion(fileVersion) );
+
+    SvxWeightItem aCJKWeight = GetCJKWeight();
     aCJKWeight.Store( rStream, aCJKWeight.GetVersion(fileVersion) );
+
+    SvxPostureItem aCJKPosture = GetCJKPosture();
     aCJKPosture.Store( rStream, aCJKPosture.GetVersion(fileVersion) );
-    aCTLFont.Store( rStream, aCTLFont.GetVersion(fileVersion)  );
+
+    SvxFontItem aCTLFont = GetCTLFont();
+    aCTLFont.Store( rStream, aCTLFont.GetVersion(fileVersion) );
+
+    SvxFontHeightItem aCTLHeight = GetCTLHeight();
     aCTLHeight.Store( rStream, aCTLHeight.GetVersion(fileVersion) );
+
+    SvxWeightItem aCTLWeight = GetCTLWeight();
     aCTLWeight.Store( rStream, aCTLWeight.GetVersion(fileVersion) );
+
+    SvxPostureItem aCTLPosture = GetCTLPosture();
     aCTLPosture.Store( rStream, aCTLPosture.GetVersion(fileVersion) );
+
+    SvxUnderlineItem aUnderline = GetUnderline();
     aUnderline.Store( rStream, aUnderline.GetVersion(fileVersion) );
+
+    SvxOverlineItem aOverline = GetOverline();
     aOverline.Store( rStream, aOverline.GetVersion(fileVersion) );
+
+    SvxCrossedOutItem aCrossedOut = GetCrossedOut();
     aCrossedOut.Store( rStream, aCrossedOut.GetVersion(fileVersion) );
+
+    SvxContourItem aContour = GetContour();
     aContour.Store( rStream, aContour.GetVersion(fileVersion) );
+
+    SvxShadowedItem aShadowed = GetShadowed();
     aShadowed.Store( rStream, aShadowed.GetVersion(fileVersion) );
+
+    SvxColorItem aColor = GetColor();
     aColor.Store( rStream, aColor.GetVersion(fileVersion) );
+
+    SvxBoxItem aBox = GetBox();
     aBox.Store( rStream, aBox.GetVersion(fileVersion) );
-    aTLBR.Store( rStream, aTLBR.GetVersion(fileVersion) );
-    aBLTR.Store( rStream, aBLTR.GetVersion(fileVersion) );
+
+    SvxBrushItem aBackground = GetBackground();
     aBackground.Store( rStream, aBackground.GetVersion(fileVersion) );
 
+    SvxAdjustItem aAdjust = GetAdjust();
     aAdjust.Store( rStream, aAdjust.GetVersion(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));
-    }
+        SvxFrameDirectionItem aTextOrientation = GetTextOrientation();
+        aTextOrientation.Store(rStream, aTextOrientation.GetVersion(fileVersion));
 
-    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) );
-    // Calc Rotation from SO5
-    aRotateAngle.Store( rStream, aRotateAngle.GetVersion(fileVersion) );
-    aRotateMode.Store( rStream, aRotateMode.GetVersion(fileVersion) );
+        SwFmtVertOrient aVerticalAlignment = GetVerticalAlignment();
+        aVerticalAlignment.Store(rStream, aVerticalAlignment.GetVersion(fileVersion));
+    }
 
     // --- from 680/dr25 on: store strings as UTF-8
     write_lenPrefixed_uInt8s_FromOUString<sal_uInt16>(rStream, sNumFmtString,
@@ -549,40 +611,30 @@ sal_Bool SwBoxAutoFmt::Save( SvStream& rStream, sal_uInt16 fileVersion ) const
 }
 
 
-sal_Bool SwBoxAutoFmt::SaveVersionNo( SvStream& rStream, sal_uInt16 fileVersion ) const
+sal_Bool SwTableBoxFmt::SaveVersionNo( SvStream& rStream, sal_uInt16 fileVersion ) const
 {
-    rStream << aFont.GetVersion( fileVersion );
-    rStream << aHeight.GetVersion( fileVersion );
-    rStream << aWeight.GetVersion( fileVersion );
-    rStream << aPosture.GetVersion( fileVersion );
-    rStream << aUnderline.GetVersion( fileVersion );
-    rStream << aOverline.GetVersion( fileVersion );
-    rStream << aCrossedOut.GetVersion( fileVersion );
-    rStream << aContour.GetVersion( fileVersion );
-    rStream << aShadowed.GetVersion( fileVersion );
-    rStream << aColor.GetVersion( fileVersion );
-    rStream << aBox.GetVersion( fileVersion );
-    rStream << aTLBR.GetVersion( fileVersion );
-    rStream << aBackground.GetVersion( fileVersion );
-
-    rStream << aAdjust.GetVersion( fileVersion );
+    rStream << GetFont().GetVersion( fileVersion );
+    rStream << GetHeight().GetVersion( fileVersion );
+    rStream << GetWeight().GetVersion( fileVersion );
+    rStream << GetPosture().GetVersion( fileVersion );
+    rStream << GetUnderline().GetVersion( fileVersion );
+    rStream << GetOverline().GetVersion( fileVersion );
+    rStream << GetCrossedOut().GetVersion( fileVersion );
+    rStream << GetContour().GetVersion( fileVersion );
+    rStream << GetShadowed().GetVersion( fileVersion );
+    rStream << GetColor().GetVersion( fileVersion );
+    rStream << GetBox().GetVersion( fileVersion );
+    rStream << GetBackground().GetVersion( fileVersion );
+    rStream << GetAdjust().GetVersion( fileVersion );
 
     if (fileVersion >= SOFFICE_FILEFORMAT_50)
     {
         WriterSpecificAutoFormatBlock block(rStream);
 
-        rStream << m_aTextOrientation.GetVersion(fileVersion);
-        rStream << m_aVerticalAlignment.GetVersion(fileVersion);
+        rStream << GetTextOrientation().GetVersion(fileVersion);
+        rStream << GetVerticalAlignment().GetVersion(fileVersion);
     }
 
-    rStream << aHorJustify.GetVersion( fileVersion );
-    rStream << aVerJustify.GetVersion( fileVersion );
-    rStream << SvxOrientationItem(SVX_ORIENTATION_STANDARD, 0).GetVersion( fileVersion );
-    rStream << aMargin.GetVersion( fileVersion );
-    rStream << aLinebreak.GetVersion( fileVersion );
-    rStream << aRotateAngle.GetVersion( fileVersion );
-    rStream << aRotateMode.GetVersion( fileVersion );
-
     rStream << (sal_uInt16)0;       // NumberFormat
 
     return 0 == rStream.GetError();
@@ -960,7 +1012,8 @@ SwTableAutoFmt* SwTableAutoFmt::Load( SvStream& rStream, const SwAfVersions& rVe
         for( sal_uInt8 i = 0; bRet && i < 16; ++i )
         {
             SwBoxAutoFmt* pFmt = new SwBoxAutoFmt;
-            bRet = pFmt->Load( rStream, rVersions, nVal );
+            // TODO Remove members in SwTableAutoFmt and adapt this
+            // bRet = pFmt->Load( rStream, rVersions, nVal );
             if( bRet )
                 pRet->aBoxAutoFmt[ i ] = pFmt;
             else
@@ -1027,7 +1080,8 @@ sal_Bool SwTableAutoFmt::Save( SvStream& rStream, sal_uInt16 fileVersion ) const
                 pDfltBoxAutoFmt = new SwBoxAutoFmt;
             pFmt = pDfltBoxAutoFmt;
         }
-        bRet = pFmt->Save( rStream, fileVersion );
+        // TODO Remove members in SwTableAutoFmt and adapt this
+        // bRet = pFmt->Save( rStream, fileVersion );
     }
     return bRet;
 }
@@ -1248,8 +1302,9 @@ sal_Bool SwTableAutoFmtTbl::Save( SvStream& rStream ) const
         bRet = 0 == rStream.GetError();
 
         // Write this version number for all attributes
-        m_pImpl->m_AutoFormats[0].GetBoxFmt(0).SaveVersionNo(
-                rStream, AUTOFORMAT_FILE_VERSION);
+        // TODO Remove members in SwTableAutoFmt and adapt this
+        // m_pImpl->m_AutoFormats[0].GetBoxFmt(0).SaveVersionNo(
+        //        rStream, AUTOFORMAT_FILE_VERSION);
 
         rStream << static_cast<sal_uInt16>(m_pImpl->m_AutoFormats.size() - 1);
         bRet = 0 == rStream.GetError();
commit 6da46098addecc575b5437028d5c577f1b29a220
Author: Alex Ivan <alexnivan at yahoo.com>
Date:   Sun Jun 30 18:16:09 2013 +0300

    Replace bare pointer with boost::scoped_ptr
    
    Members of SwTable*Fmt classes are now boost::scoped_ptr.
    Also, incorrect implementation of operator= has been corrected.
    
    Change-Id: I0b73c6351e3fa71d14dcb20b82fa2165969c6c27

diff --git a/sw/inc/swtblfmt.hxx b/sw/inc/swtblfmt.hxx
index 3f25f7a..6227ecc 100644
--- a/sw/inc/swtblfmt.hxx
+++ b/sw/inc/swtblfmt.hxx
@@ -20,6 +20,7 @@
 #define _SWTBLFMT_HXX
 
 #include "hintids.hxx"
+#include <boost/scoped_ptr.hpp>
 #include <charatr.hxx>
 #include <cmdid.h>
 #include <doc.hxx>
@@ -64,39 +65,39 @@ protected:
     SwTableFmt( SwAttrPool& rPool, const String &rFmtNm,
                     SwFrmFmt *pDrvdFrm );
 
-    SwTableLineFmt* m_pFstLineFmt;
-    SwTableLineFmt* m_pLstLineFmt;
-    SwTableLineFmt* m_pOddLineFmt;
-    SwTableLineFmt* m_pEvnLineFmt;
+    boost::scoped_ptr<SwTableLineFmt> m_pFstLineFmt;
+    boost::scoped_ptr<SwTableLineFmt> m_pLstLineFmt;
+    boost::scoped_ptr<SwTableLineFmt> m_pOddLineFmt;
+    boost::scoped_ptr<SwTableLineFmt> m_pEvnLineFmt;
 
-    SwTableLineFmt* m_pFstColFmt;
-    SwTableLineFmt* m_pLstColFmt;
-    SwTableLineFmt* m_pOddColFmt;
-    SwTableLineFmt* m_pEvnColFmt;
+    boost::scoped_ptr<SwTableLineFmt> m_pFstColFmt;
+    boost::scoped_ptr<SwTableLineFmt> m_pLstColFmt;
+    boost::scoped_ptr<SwTableLineFmt> m_pOddColFmt;
+    boost::scoped_ptr<SwTableLineFmt> m_pEvnColFmt;
 
 public:
-    SwTableFmt( SwTableFmt& rNew );
+    SwTableFmt( const SwTableFmt& rNew );
     SwTableFmt& operator=( const SwTableFmt& rNew );
 
-    void SetFirstLineFmt( SwTableLineFmt* pNew ) { m_pFstLineFmt = pNew; }
-    void SetLastLineFmt( SwTableLineFmt* pNew ) { m_pLstLineFmt = pNew; }
-    void SetOddLineFmt( SwTableLineFmt* pNew ) { m_pOddLineFmt = pNew; }
-    void SetEvenLineFmt( SwTableLineFmt* pNew ) { m_pEvnLineFmt = pNew; }
+    void SetFirstLineFmt( SwTableLineFmt* pNew ) { m_pFstLineFmt.reset( pNew ); }
+    void SetLastLineFmt( SwTableLineFmt* pNew ) { m_pLstLineFmt.reset( pNew ); }
+    void SetOddLineFmt( SwTableLineFmt* pNew ) { m_pOddLineFmt.reset( pNew ); }
+    void SetEvenLineFmt( SwTableLineFmt* pNew ) { m_pEvnLineFmt.reset( pNew ); }
 
-    void SetFirstColFmt( SwTableLineFmt* pNew ) { m_pFstColFmt = pNew; }
-    void SetLastColFmt( SwTableLineFmt* pNew ) { m_pLstColFmt = pNew; }
-    void SetOddColFmt( SwTableLineFmt* pNew ) { m_pOddColFmt = pNew; }
-    void SetEvenColFmt( SwTableLineFmt* pNew ) { m_pEvnColFmt = pNew; }
+    void SetFirstColFmt( SwTableLineFmt* pNew ) { m_pFstColFmt.reset( pNew ); }
+    void SetLastColFmt( SwTableLineFmt* pNew ) { m_pLstColFmt.reset( pNew ); }
+    void SetOddColFmt( SwTableLineFmt* pNew ) { m_pOddColFmt.reset( pNew ); }
+    void SetEvenColFmt( SwTableLineFmt* pNew ) { m_pEvnColFmt.reset( pNew ); }
 
-    SwTableLineFmt* GetFirstLineFmt() { return m_pFstLineFmt; }
-    SwTableLineFmt* GetLastLineFmt() { return m_pLstLineFmt; }
-    SwTableLineFmt* GetOddLineFmt() { return m_pOddLineFmt; }
-    SwTableLineFmt* GetEvenLineFmt() { return m_pEvnLineFmt; }
+    SwTableLineFmt* GetFirstLineFmt() { return m_pFstLineFmt.get(); }
+    SwTableLineFmt* GetLastLineFmt() { return m_pLstLineFmt.get(); }
+    SwTableLineFmt* GetOddLineFmt() { return m_pOddLineFmt.get(); }
+    SwTableLineFmt* GetEvenLineFmt() { return m_pEvnLineFmt.get(); }
 
-    SwTableLineFmt* GetFirstColFmt() { return m_pFstColFmt; }
-    SwTableLineFmt* GetLastColFmt() { return m_pLstColFmt; }
-    SwTableLineFmt* GetOddColFmt() { return m_pOddColFmt; }
-    SwTableLineFmt* GetEvenColFmt() { return m_pEvnColFmt; }
+    SwTableLineFmt* GetFirstColFmt() { return m_pFstColFmt.get(); }
+    SwTableLineFmt* GetLastColFmt() { return m_pLstColFmt.get(); }
+    SwTableLineFmt* GetOddColFmt() { return m_pOddColFmt.get(); }
+    SwTableLineFmt* GetEvenColFmt() { return m_pEvnColFmt.get(); }
 
     void SetBreak( const SvxFmtBreakItem& rNew );
     void SetPageDesc( const SwFmtPageDesc& rNew );
@@ -132,24 +133,24 @@ protected:
                     SwFrmFmt *pDrvdFrm );
 
     // Odd and Even Box formats will be used to handle alternating columns
-    SwTableBoxFmt* m_pFstBoxFmt;
-    SwTableBoxFmt* m_pLstBoxFmt;
-    SwTableBoxFmt* m_pOddBoxFmt;
-    SwTableBoxFmt* m_pEvnBoxFmt;
+    boost::scoped_ptr<SwTableBoxFmt> m_pFstBoxFmt;
+    boost::scoped_ptr<SwTableBoxFmt> m_pLstBoxFmt;
+    boost::scoped_ptr<SwTableBoxFmt> m_pOddBoxFmt;
+    boost::scoped_ptr<SwTableBoxFmt> m_pEvnBoxFmt;
 
 public:
-    SwTableLineFmt( SwTableLineFmt& rNew );
+    SwTableLineFmt( const SwTableLineFmt& rNew );
     SwTableLineFmt& operator=( const SwTableLineFmt& rNew );
 
-    void SetFirstBoxFmt( SwTableBoxFmt* pNew ) { m_pFstBoxFmt = pNew; }
-    void SetLastBoxFmt( SwTableBoxFmt* pNew ) { m_pLstBoxFmt = pNew; }
-    void SetOddBoxFmt( SwTableBoxFmt* pNew ) { m_pOddBoxFmt = pNew; }
-    void SetEvenBoxFmt( SwTableBoxFmt* pNew ) { m_pEvnBoxFmt = pNew; }
+    void SetFirstBoxFmt( SwTableBoxFmt* pNew ) { m_pFstBoxFmt.reset( pNew ); }
+    void SetLastBoxFmt( SwTableBoxFmt* pNew ) { m_pLstBoxFmt.reset( pNew ); }
+    void SetOddBoxFmt( SwTableBoxFmt* pNew ) { m_pOddBoxFmt.reset( pNew ); }
+    void SetEvenBoxFmt( SwTableBoxFmt* pNew ) { m_pEvnBoxFmt.reset( pNew ); }
 
-    SwTableBoxFmt* GetFirstBoxFmt() { return m_pFstBoxFmt; }
-    SwTableBoxFmt* GetLastBoxFmt() { return m_pLstBoxFmt; }
-    SwTableBoxFmt* GetOddBoxFmt() { return m_pOddBoxFmt; }
-    SwTableBoxFmt* GetEvenBoxFmt() { return m_pEvnBoxFmt; }
+    SwTableBoxFmt* GetFirstBoxFmt() { return m_pFstBoxFmt.get(); }
+    SwTableBoxFmt* GetLastBoxFmt() { return m_pLstBoxFmt.get(); }
+    SwTableBoxFmt* GetOddBoxFmt() { return m_pOddBoxFmt.get(); }
+    SwTableBoxFmt* GetEvenBoxFmt() { return m_pEvnBoxFmt.get(); }
 
     TYPEINFO();     // Already in base class Content.
 
diff --git a/sw/source/core/doc/swtblfmt.cxx b/sw/source/core/doc/swtblfmt.cxx
index d31b8e2..d9d9c7e 100644
--- a/sw/source/core/doc/swtblfmt.cxx
+++ b/sw/source/core/doc/swtblfmt.cxx
@@ -33,15 +33,15 @@ SwTableFmt::SwTableFmt( SwAttrPool& rPool, const sal_Char* pFmtNm,
 
         SwDoc* pDoc = GetDoc();
 
-        m_pFstLineFmt = pDoc->MakeTableLineFmt();
-        m_pLstLineFmt = pDoc->MakeTableLineFmt();
-        m_pOddLineFmt = pDoc->MakeTableLineFmt();
-        m_pEvnLineFmt = pDoc->MakeTableLineFmt();
-
-        m_pFstColFmt = pDoc->MakeTableLineFmt();
-        m_pLstColFmt = pDoc->MakeTableLineFmt();
-        m_pOddColFmt = pDoc->MakeTableLineFmt();
-        m_pEvnColFmt = pDoc->MakeTableLineFmt();
+        m_pFstLineFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pLstLineFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pOddLineFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pEvnLineFmt.reset( pDoc->MakeTableLineFmt() );
+
+        m_pFstColFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pLstColFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pOddColFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pEvnColFmt.reset( pDoc->MakeTableLineFmt() );
     }
 
 SwTableFmt::SwTableFmt( SwAttrPool& rPool, const String &rFmtNm,
@@ -58,29 +58,29 @@ SwTableFmt::SwTableFmt( SwAttrPool& rPool, const String &rFmtNm,
 
         SwDoc* pDoc = GetDoc();
 
-        m_pFstLineFmt = pDoc->MakeTableLineFmt();
-        m_pLstLineFmt = pDoc->MakeTableLineFmt();
-        m_pOddLineFmt = pDoc->MakeTableLineFmt();
-        m_pEvnLineFmt = pDoc->MakeTableLineFmt();
+        m_pFstLineFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pLstLineFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pOddLineFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pEvnLineFmt.reset( pDoc->MakeTableLineFmt() );
 
-        m_pFstColFmt = pDoc->MakeTableLineFmt();
-        m_pLstColFmt = pDoc->MakeTableLineFmt();
-        m_pOddColFmt = pDoc->MakeTableLineFmt();
-        m_pEvnColFmt = pDoc->MakeTableLineFmt();
+        m_pFstColFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pLstColFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pOddColFmt.reset( pDoc->MakeTableLineFmt() );
+        m_pEvnColFmt.reset( pDoc->MakeTableLineFmt() );
     }
 
-SwTableFmt::SwTableFmt( SwTableFmt& rNew )
+SwTableFmt::SwTableFmt( const SwTableFmt& rNew )
     : SwFrmFmt( (SwFrmFmt)rNew )
     {
-        *m_pFstLineFmt = SwTableLineFmt( *rNew.GetFirstLineFmt() );
-        *m_pLstLineFmt = SwTableLineFmt( *rNew.GetLastLineFmt() );
-        *m_pOddLineFmt = SwTableLineFmt( *rNew.GetOddLineFmt() );
-        *m_pEvnLineFmt = SwTableLineFmt( *rNew.GetEvenLineFmt() );
-
-        *m_pFstColFmt = SwTableLineFmt( *rNew.GetFirstColFmt() );
-        *m_pLstColFmt = SwTableLineFmt( *rNew.GetLastColFmt() );
-        *m_pOddColFmt = SwTableLineFmt( *rNew.GetOddColFmt() );
-        *m_pEvnColFmt = SwTableLineFmt( *rNew.GetEvenColFmt() );
+        m_pFstLineFmt.reset( new SwTableLineFmt( *rNew.m_pFstLineFmt.get() ) );
+        m_pLstLineFmt.reset( new SwTableLineFmt( *rNew.m_pLstLineFmt.get() ) );
+        m_pOddLineFmt.reset( new SwTableLineFmt( *rNew.m_pOddLineFmt.get() ) );
+        m_pEvnLineFmt.reset( new SwTableLineFmt( *rNew.m_pEvnLineFmt.get() ) );
+
+        m_pFstColFmt.reset( new SwTableLineFmt( *rNew.m_pFstColFmt.get() ) );
+        m_pLstColFmt.reset( new SwTableLineFmt( *rNew.m_pLstColFmt.get() ) );
+        m_pOddColFmt.reset( new SwTableLineFmt( *rNew.m_pOddColFmt.get() ) );
+        m_pEvnColFmt.reset( new SwTableLineFmt( *rNew.m_pEvnColFmt.get() ) );
     }
 
 SwTableFmt& SwTableFmt::operator=( const SwTableFmt& rNew )
@@ -88,15 +88,17 @@ SwTableFmt& SwTableFmt::operator=( const SwTableFmt& rNew )
         if (&rNew == this)
             return *this;
 
-        m_pFstLineFmt = rNew.m_pFstLineFmt;
-        m_pLstLineFmt = rNew.m_pLstLineFmt;
-        m_pOddLineFmt = rNew.m_pOddLineFmt;
-        m_pEvnLineFmt = rNew.m_pEvnLineFmt;
+        SwFrmFmt::operator=( rNew );
 
-        m_pFstColFmt = rNew.m_pFstColFmt;
-        m_pLstColFmt = rNew.m_pLstColFmt;
-        m_pOddColFmt = rNew.m_pOddColFmt;
-        m_pEvnColFmt = rNew.m_pEvnColFmt;
+        m_pFstLineFmt.reset( new SwTableLineFmt( *rNew.m_pFstLineFmt.get() ) );
+        m_pLstLineFmt.reset( new SwTableLineFmt( *rNew.m_pLstLineFmt.get() ) );
+        m_pOddLineFmt.reset( new SwTableLineFmt( *rNew.m_pOddLineFmt.get() ) );
+        m_pEvnLineFmt.reset( new SwTableLineFmt( *rNew.m_pEvnLineFmt.get() ) );
+
+        m_pFstColFmt.reset( new SwTableLineFmt( *rNew.m_pFstColFmt.get() ) );
+        m_pLstColFmt.reset( new SwTableLineFmt( *rNew.m_pLstColFmt.get() ) );
+        m_pOddColFmt.reset( new SwTableLineFmt( *rNew.m_pOddColFmt.get() ) );
+        m_pEvnColFmt.reset( new SwTableLineFmt( *rNew.m_pEvnColFmt.get() ) );
 
         return *this;
     }
@@ -168,15 +170,15 @@ sal_uInt16 SwTableFmt::GetRepeatHeading() const
 
 void SwTableFmt::CopyTableFormatInfo( SwTableFmt* pTableFormat )
 {
-    *m_pFstLineFmt = SwTableLineFmt ( *pTableFormat->GetFirstLineFmt() );
-    *m_pLstLineFmt = SwTableLineFmt ( *pTableFormat->GetLastLineFmt() );
-    *m_pOddLineFmt = SwTableLineFmt ( *pTableFormat->GetOddLineFmt() );
-    *m_pEvnLineFmt = SwTableLineFmt ( *pTableFormat->GetEvenLineFmt() );
+    m_pFstLineFmt.reset( new SwTableLineFmt ( *pTableFormat->GetFirstLineFmt() ) );
+    m_pLstLineFmt.reset( new SwTableLineFmt ( *pTableFormat->GetLastLineFmt() ) );
+    m_pOddLineFmt.reset( new SwTableLineFmt ( *pTableFormat->GetOddLineFmt() ) );
+    m_pEvnLineFmt.reset( new SwTableLineFmt ( *pTableFormat->GetEvenLineFmt() ) );
 
-    *m_pFstColFmt = SwTableLineFmt ( *pTableFormat->GetFirstColFmt() );
-    *m_pLstColFmt = SwTableLineFmt ( *pTableFormat->GetLastColFmt() );
-    *m_pOddColFmt = SwTableLineFmt ( *pTableFormat->GetOddColFmt() );
-    *m_pEvnColFmt = SwTableLineFmt ( *pTableFormat->GetEvenColFmt() );
+    m_pFstColFmt.reset( new SwTableLineFmt ( *pTableFormat->GetFirstColFmt() ) );
+    m_pLstColFmt.reset( new SwTableLineFmt ( *pTableFormat->GetLastColFmt() ) );
+    m_pOddColFmt.reset( new SwTableLineFmt ( *pTableFormat->GetOddColFmt() ) );
+    m_pEvnColFmt.reset( new SwTableLineFmt ( *pTableFormat->GetEvenColFmt() ) );
 }
 
 SwTableLineFmt::SwTableLineFmt( SwAttrPool& rPool, const sal_Char* pFmtNm,
@@ -185,10 +187,10 @@ SwTableLineFmt::SwTableLineFmt( SwAttrPool& rPool, const sal_Char* pFmtNm,
     {
         SwDoc* pDoc = GetDoc();
 
-        m_pFstBoxFmt = pDoc->MakeTableBoxFmt();
-        m_pLstBoxFmt = pDoc->MakeTableBoxFmt();
-        m_pOddBoxFmt = pDoc->MakeTableBoxFmt();
-        m_pEvnBoxFmt = pDoc->MakeTableBoxFmt();
+        m_pFstBoxFmt.reset( pDoc->MakeTableBoxFmt() );
+        m_pLstBoxFmt.reset( pDoc->MakeTableBoxFmt() );
+        m_pOddBoxFmt.reset( pDoc->MakeTableBoxFmt() );
+        m_pEvnBoxFmt.reset( pDoc->MakeTableBoxFmt() );
     }
 
 SwTableLineFmt::SwTableLineFmt( SwAttrPool& rPool, const String &rFmtNm,
@@ -197,19 +199,19 @@ SwTableLineFmt::SwTableLineFmt( SwAttrPool& rPool, const String &rFmtNm,
     {
         SwDoc* pDoc = GetDoc();
 
-        m_pFstBoxFmt = pDoc->MakeTableBoxFmt();
-        m_pLstBoxFmt = pDoc->MakeTableBoxFmt();
-        m_pOddBoxFmt = pDoc->MakeTableBoxFmt();
-        m_pEvnBoxFmt = pDoc->MakeTableBoxFmt();
+        m_pFstBoxFmt.reset( pDoc->MakeTableBoxFmt() );
+        m_pLstBoxFmt.reset( pDoc->MakeTableBoxFmt() );
+        m_pOddBoxFmt.reset( pDoc->MakeTableBoxFmt() );
+        m_pEvnBoxFmt.reset( pDoc->MakeTableBoxFmt() );
     }
 
-SwTableLineFmt::SwTableLineFmt( SwTableLineFmt& rNew )
+SwTableLineFmt::SwTableLineFmt( const SwTableLineFmt& rNew )
     : SwFrmFmt( (SwFrmFmt)rNew )
     {
-        *m_pFstBoxFmt = SwTableBoxFmt( *rNew.GetFirstBoxFmt() );
-        *m_pLstBoxFmt = SwTableBoxFmt( *rNew.GetLastBoxFmt() );
-        *m_pOddBoxFmt = SwTableBoxFmt( *rNew.GetOddBoxFmt() );
-        *m_pEvnBoxFmt = SwTableBoxFmt( *rNew.GetEvenBoxFmt() );
+        m_pFstBoxFmt.reset( new SwTableBoxFmt( *rNew.m_pFstBoxFmt.get() ) );
+        m_pLstBoxFmt.reset( new SwTableBoxFmt( *rNew.m_pLstBoxFmt.get() ) );
+        m_pOddBoxFmt.reset( new SwTableBoxFmt( *rNew.m_pOddBoxFmt.get() ) );
+        m_pEvnBoxFmt.reset( new SwTableBoxFmt( *rNew.m_pEvnBoxFmt.get() ) );
     }
 
 SwTableLineFmt& SwTableLineFmt::operator=( const SwTableLineFmt& rNew )
@@ -217,10 +219,12 @@ SwTableLineFmt& SwTableLineFmt::operator=( const SwTableLineFmt& rNew )
         if (&rNew == this)
                 return *this;
 
-        m_pFstBoxFmt = rNew.m_pFstBoxFmt;
-        m_pLstBoxFmt = rNew.m_pLstBoxFmt;
-        m_pOddBoxFmt = rNew.m_pOddBoxFmt;
-        m_pEvnBoxFmt = rNew.m_pEvnBoxFmt;
+        SwFrmFmt::operator=( rNew );
+
+        m_pFstBoxFmt.reset( new SwTableBoxFmt( *rNew.m_pFstBoxFmt.get() ) );
+        m_pLstBoxFmt.reset( new SwTableBoxFmt( *rNew.m_pLstBoxFmt.get() ) );
+        m_pOddBoxFmt.reset( new SwTableBoxFmt( *rNew.m_pOddBoxFmt.get() ) );
+        m_pEvnBoxFmt.reset( new SwTableBoxFmt( *rNew.m_pEvnBoxFmt.get() ) );
 
         return *this;
     }


More information about the Libreoffice-commits mailing list