diff options
author | Cédric Bosdonnat <cedricbosdo@openoffice.org> | 2011-02-17 23:08:54 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cedricbosdo@openoffice.org> | 2011-03-19 15:33:12 +0100 |
commit | 7382abd40503f384e73b3cbb806addc4c8952257 (patch) | |
tree | 42d22b1e307f0db01137a0688057984bef41a3a6 | |
parent | 2157b3563a8ba64b56ed32648a61ff59071557f2 (diff) |
Fixed RTF import/export of new border lines
-rw-r--r-- | sw/source/filter/ww8/rtfattributeoutput.cxx | 159 |
1 files changed, 66 insertions, 93 deletions
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx index b14f78e33346..5b204e7142cc 100644 --- a/sw/source/filter/ww8/rtfattributeoutput.cxx +++ b/sw/source/filter/ww8/rtfattributeoutput.cxx @@ -154,72 +154,75 @@ using namespace ::com::sun::star; static OString OutTBLBorderLine(RtfExport &rExport, const SvxBorderLine* pLine, const sal_Char* pStr) { OStringBuffer aRet; - aRet.append(pStr); - // single line - switch ( pLine->GetStyle( ) ) + if ( !pLine->isEmpty() ) { - case SOLID: - { - if( DEF_LINE_WIDTH_0 == pLine->GetWidth() ) - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRHAIR); - else - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRS); - } - break; - case DOTTED: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRDOT); - break; - case DASHED: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRDASH); - break; - case DOUBLE: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRDB); - break; - case THINTHICK_SMALLGAP: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTNTHSG); - break; - case THINTHICK_MEDIUMGAP: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTNTHMG); - break; - case THINTHICK_LARGEGAP: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTNTHLG); - break; - case THICKTHIN_SMALLGAP: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTHTNSG); - break; - case THICKTHIN_MEDIUMGAP: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTHTNMG); - break; - case THICKTHIN_LARGEGAP: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTHTNLG); - break; - case EMBOSSED: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDREMBOSS); - break; - case ENGRAVED: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRENGRAVE); - break; - case OUTSET: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDROUTSET); - break; - case INSET: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRINSET); - break; - case NO_STYLE: - default: - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRNONE); - break; - } + aRet.append(pStr); + // single line + switch ( pLine->GetStyle( ) ) + { + case SOLID: + { + if( DEF_LINE_WIDTH_0 == pLine->GetWidth() ) + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRHAIR); + else + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRS); + } + break; + case DOTTED: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRDOT); + break; + case DASHED: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRDASH); + break; + case DOUBLE: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRDB); + break; + case THINTHICK_SMALLGAP: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTNTHSG); + break; + case THINTHICK_MEDIUMGAP: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTNTHMG); + break; + case THINTHICK_LARGEGAP: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTNTHLG); + break; + case THICKTHIN_SMALLGAP: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTHTNSG); + break; + case THICKTHIN_MEDIUMGAP: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTHTNMG); + break; + case THICKTHIN_LARGEGAP: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTHTNLG); + break; + case EMBOSSED: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDREMBOSS); + break; + case ENGRAVED: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRENGRAVE); + break; + case OUTSET: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDROUTSET); + break; + case INSET: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRINSET); + break; + case NO_STYLE: + default: + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRNONE); + break; + } - if ( 255 >= pLine->GetWidth() ) // That value comes from RTF specs - { - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRW).append((sal_Int32)pLine->GetWidth()); - } - else - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTH OOO_STRING_SVTOOLS_RTF_BRDRW).append((sal_Int32)pLine->GetWidth() / 2); + if ( 255 >= pLine->GetWidth() ) // That value comes from RTF specs + { + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRW).append((sal_Int32)pLine->GetWidth()); + } + else + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTH OOO_STRING_SVTOOLS_RTF_BRDRW).append((sal_Int32)pLine->GetWidth() / 2); - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRCF); - aRet.append((sal_Int32)rExport.GetColor(pLine->GetColor())); + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRCF); + aRet.append((sal_Int32)rExport.GetColor(pLine->GetColor())); + } return aRet.makeStringAndClear(); } @@ -233,22 +236,6 @@ static OString OutBorderLine(RtfExport &rExport, const SvxBorderLine* pLine, return aRet.makeStringAndClear(); } -static OString OutBorderLine( RtfExport &rExport, const SvxBorderLine* pLine, - const char* pStr ) -{ - OStringBuffer aRet; - aRet.append(pStr); - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDLNCOL); - aRet.append((sal_Int32)rExport.GetColor( pLine->GetColor() ) ); - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDLNIN); - aRet.append((sal_Int32)pLine->GetInWidth()); - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDLNOUT); - aRet.append((sal_Int32)pLine->GetOutWidth()); - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDLNDIST); - aRet.append((sal_Int32)pLine->GetDistance()); - return aRet.makeStringAndClear(); -} - void RtfAttributeOutput::RTLAndCJKState( bool bIsRTL, sal_uInt16 nScript ) { OSL_TRACE("%s", OSL_THIS_FUNC); @@ -2892,20 +2879,6 @@ void RtfAttributeOutput::FormatBox( const SvxBoxItem& rBox ) } } - const sal_uInt16* pBrd = aBorders; - const sal_Char** pBrdNms = (const sal_Char**)aBorderNames; - for( int i = 0; i < 4; ++i, ++pBrd, ++pBrdNms ) - { - const SvxBorderLine* pLn = rBox.GetLine( *pBrd ); - if( pLn ) - { - m_aSectionBreaks.append("{" OOO_STRING_SVTOOLS_RTF_IGNORE); - m_aSectionBreaks.append(OutBorderLine( m_rExport, pLn, *pBrdNms )); - m_aSectionBreaks.append("}" OOO_STRING_SVTOOLS_RTF_BRSP); - m_aSectionBreaks.append((sal_Int32)rBox.GetDistance( *pBrd )); - } - } - if (!m_bBufferSectionBreaks) m_aStyles.append(m_aSectionBreaks.makeStringAndClear()); } |