summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedricbosdo@openoffice.org>2011-02-17 23:08:54 +0100
committerCédric Bosdonnat <cedricbosdo@openoffice.org>2011-03-19 15:33:12 +0100
commit7382abd40503f384e73b3cbb806addc4c8952257 (patch)
tree42d22b1e307f0db01137a0688057984bef41a3a6
parent2157b3563a8ba64b56ed32648a61ff59071557f2 (diff)
Fixed RTF import/export of new border lines
-rw-r--r--sw/source/filter/ww8/rtfattributeoutput.cxx159
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());
}