diff options
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/filter/ww8/docxattributeoutput.cxx | 4 | ||||
-rw-r--r-- | sw/source/filter/ww8/rtfattributeoutput.cxx | 10 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8atr.cxx | 3 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8graf.cxx | 4 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par6.cxx | 6 | ||||
-rw-r--r-- | sw/source/filter/xml/xmlithlp.cxx | 4 |
6 files changed, 17 insertions, 14 deletions
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 26c0bea2a5e1..2d1bb23366a9 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -1468,8 +1468,10 @@ static void impl_borderLine( FSHelperPtr pSerializer, sal_Int32 elementToken, co { // Compute the sz attribute + double const fConverted( ::editeng::ConvertBorderWidthToWord( + pBorderLine->GetBorderLineStyle(), pBorderLine->GetWidth())); // The unit is the 8th of point - sal_Int32 nWidth = sal_Int32( pBorderLine->GetWidth() / 2.5 ); + sal_Int32 nWidth = sal_Int32( fConverted / 2.5 ); sal_uInt16 nMinWidth = 2; sal_uInt16 nMaxWidth = 96; diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx index 3ef3aff38a9c..622426553c67 100644 --- a/sw/source/filter/ww8/rtfattributeoutput.cxx +++ b/sw/source/filter/ww8/rtfattributeoutput.cxx @@ -179,12 +179,18 @@ static OString OutTBLBorderLine(RtfExport &rExport, const SvxBorderLine* pLine, break; } + double const fConverted( ::editeng::ConvertBorderWidthToWord( + pLine->GetBorderLineStyle(), pLine->GetWidth()) ); if ( 255 >= pLine->GetWidth() ) // That value comes from RTF specs { - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRW).append((sal_Int32)pLine->GetWidth()); + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRW).append( + static_cast<sal_Int32>(fConverted)); } else - aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTH OOO_STRING_SVTOOLS_RTF_BRDRW).append((sal_Int32)pLine->GetWidth() / 2); + { // use \brdrth to double the value range... + aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRTH OOO_STRING_SVTOOLS_RTF_BRDRW); + aRet.append(static_cast<sal_Int32>(fConverted) / 2); + } aRet.append(OOO_STRING_SVTOOLS_RTF_BRDRCF); aRet.append((sal_Int32)rExport.GetColor(pLine->GetColor())); diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index 3f2c0c02a641..26db61bedc57 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -4057,7 +4057,8 @@ WW8_BRC WW8Export::TranslateBorderLine(const SvxBorderLine& rLine, // what SwRTFWriter::OutRTFBorder does in the RTF filter Eventually it // would be nice if all this functionality was in the one place WW8_BRC aBrc; - sal_uInt16 nWidth = rLine.GetWidth(); + sal_uInt16 nWidth = ::editeng::ConvertBorderWidthToWord( + rLine.GetBorderLineStyle(), rLine.GetWidth()); sal_uInt8 brcType = 0, nColCode = 0; if( nWidth ) // Linie ? diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx index 49fb0b216817..9cde7c4f7656 100644 --- a/sw/source/filter/ww8/ww8graf.cxx +++ b/sw/source/filter/ww8/ww8graf.cxx @@ -1570,10 +1570,6 @@ sal_Int32 SwWW8ImplReader::MatchSdrBoxIntoFlyBoxItem(const Color& rLineColor, aLine.SetWidth( nLineThick ); // No conversion here, nLineThick is already in twips aLine.SetBorderLineStyle(nIdx); - if (table::BorderLineStyle::DOUBLE == nIdx) - { // fdo#43249: divide width by 3 for outer line, gap, inner line - aLine.ScaleMetrics(1, 3); - } for(sal_uInt16 nLine = 0; nLine < 4; ++nLine) rBox.SetLine(new SvxBorderLine( aLine ), nLine); diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index 1ed025035f0f..5010d4b2055c 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -1354,7 +1354,9 @@ void GetLineIndex(SvxBoxItem &rBox, short nLineThickness, short nSpace, sal_uInt ::editeng::SvxBorderLine aLine; aLine.SetBorderLineStyle( eStyle ); - aLine.SetWidth( nLineThickness ); + double const fConverted( (table::BorderLineStyle::NONE == eStyle) ? 0.0 : + ::editeng::ConvertBorderWidthFromWord(eStyle, nLineThickness)); + aLine.SetWidth(fConverted); //No AUTO for borders as yet, so if AUTO, use BLACK if (nCol == 0) @@ -1363,7 +1365,7 @@ void GetLineIndex(SvxBoxItem &rBox, short nLineThickness, short nSpace, sal_uInt aLine.SetColor(SwWW8ImplReader::GetCol(nCol)); if (pSize) - pSize[nWWIndex] = nLineThickness+nSpace; + pSize[nWWIndex] = fConverted + nSpace; rBox.SetLine(&aLine, nOOIndex); rBox.SetDistance(nSpace, nOOIndex); diff --git a/sw/source/filter/xml/xmlithlp.cxx b/sw/source/filter/xml/xmlithlp.cxx index 0902899899e6..d29853e2af17 100644 --- a/sw/source/filter/xml/xmlithlp.cxx +++ b/sw/source/filter/xml/xmlithlp.cxx @@ -218,10 +218,6 @@ sal_Bool lcl_frmitems_setXMLBorder( SvxBorderLine*& rpLine, rpLine->GetOutWidth(); rpLine->SetWidth( nWidth ); - if (bDouble) - { // fdo#38542: divide width by 3 for outer line, gap, inner line - rpLine->ScaleMetrics(1, 3); - } } } lcl_frmitems_setXMLBorderStyle( *rpLine, nStyle ); |