diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-03-03 17:58:11 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-03-04 22:02:37 -0500 |
commit | 2c62596cf264ef10749d8bfdb2bb2ebef2d98fbc (patch) | |
tree | 1311156cb36884d0dde2b022467d7d0de6d799df /editeng | |
parent | fb052ae6174e4c96157ef6973f02c1d3cd4d9ba2 (diff) |
fdo#75260: Correctly draw double lines for both Writer and Calc.
Fix all sorts of incorrect double line handling in drawinglayer in order to
draw thick-thin double line types correctly. Also change handling of border
lines in writer tables. There are still some outstanding issues but it's
much better than how it was before.
Also realized that Word and Excel handle simple thin double lines differently;
Word varies widths of all of the lines and the gap whereas Excel only has one
fixed size for its double line. For this reason I decided to add a separate
double line type (DOUBLE_THIN) to handle Excel's double line.
Change-Id: Iaaa353b6e4f998b524262bea59260b4333e0cdb4
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/items/borderline.cxx | 5 | ||||
-rw-r--r-- | editeng/source/items/frmitems.cxx | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/editeng/source/items/borderline.cxx b/editeng/source/items/borderline.cxx index 2da1753d4f20..b919e58b5aab 100644 --- a/editeng/source/items/borderline.cxx +++ b/editeng/source/items/borderline.cxx @@ -316,6 +316,10 @@ BorderWidthImpl SvxBorderLine::getWidthImpl( SvxBorderStyle nStyle ) 1.0/3.0, 1.0/3.0, 1.0/3.0 ); break; + case DOUBLE_THIN: + aImpl = BorderWidthImpl(CHANGE_DIST, 10.0, 10.0, 1.0); + break; + case THINTHICK_SMALLGAP: aImpl = BorderWidthImpl( CHANGE_LINE1, 1.0, THINTHICK_SMALLGAP_line2, THINTHICK_SMALLGAP_gap ); @@ -429,6 +433,7 @@ void SvxBorderLine::GuessLinesWidths( SvxBorderStyle nStyle, sal_uInt16 nOut, sa static const SvxBorderStyle aDoubleStyles[] = { DOUBLE, + DOUBLE_THIN, THINTHICK_SMALLGAP, THINTHICK_MEDIUMGAP, THINTHICK_LARGEGAP, diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx index e8443204d62e..57bd705c3b55 100644 --- a/editeng/source/items/frmitems.cxx +++ b/editeng/source/items/frmitems.cxx @@ -1834,7 +1834,7 @@ SvxBoxItem::LineToSvxLine(const ::com::sun::star::table::BorderLine2& rLine, Svx rSvxLine.SetWidth( bConvert? MM100_TO_TWIP_UNSIGNED( rLine.LineWidth ) : rLine.LineWidth ); // fdo#46112: double does not necessarily mean symmetric // for backwards compatibility - bGuessWidth = (DOUBLE == nStyle) && + bGuessWidth = ((DOUBLE == nStyle || DOUBLE_THIN == nStyle)) && (rLine.InnerLineWidth > 0) && (rLine.OuterLineWidth > 0); } |