summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper/BorderHandler.cxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-07-04 17:47:22 +0200
committerMichael Stahl <mstahl@redhat.com>2012-07-04 17:55:45 +0200
commit2d045cdb69176b280812dda0b813371cf1ac72e2 (patch)
treec427cd49c3782d509199d4e4590ff42e7862bf93 /writerfilter/source/dmapper/BorderHandler.cxx
parent6146c5d1557f4813c9793c1b00567885382c00e7 (diff)
refactor handling of double border widths:
Word uses a completely different definition of "width" of a double border than OOo and ODF: for Word the width is apparently the largest of the 3 component widths, while OOo and ODF define the width as the total with of all 3 components. The new border implementation in LO 3.4 was apparently inspired by Word's double border definition, which resulted in various import filter regressions, see the previous fixes: 36e43b52992735c622833e923faa63774b9e2f76 e2ffb71305c5f085eec6d396651c76d6daee3406 70a6a4d425558340bb49507975343a3e0a1bdde8 These fixes set the ScaleMetrics, which actually seems sub-optimal as there is a ScaleItemSet function somewhere that apparently re-scales all items in an itemset, which could undo the fixes. Also, one of the fixes actually managed to break RTF/DOCX import of double borders, as that ended up in the same code via the API. This commit now reverses the change, so that the width of a border is now always the total with of all components, which is (imho) much more intutitive, and also leads to a consistent UI where selecting say 3pt width has predictable results, no matter what the border style. The border widths are now converted in the Word format import/export filters (writerfilter and sw/source/filter/ww8), and various tests were adapted to the new handling. Change-Id: I50456c49b1a298569607e6c88f19f18441348ac3
Diffstat (limited to 'writerfilter/source/dmapper/BorderHandler.cxx')
-rw-r--r--writerfilter/source/dmapper/BorderHandler.cxx4
1 files changed, 2 insertions, 2 deletions
diff --git a/writerfilter/source/dmapper/BorderHandler.cxx b/writerfilter/source/dmapper/BorderHandler.cxx
index 2d0801708fa2..068c21091d7c 100644
--- a/writerfilter/source/dmapper/BorderHandler.cxx
+++ b/writerfilter/source/dmapper/BorderHandler.cxx
@@ -35,7 +35,7 @@ using namespace ::com::sun::star;
BorderHandler::BorderHandler( bool bOOXML ) :
LoggedProperties(dmapper_logger, "BorderHandler"),
m_nCurrentBorderPosition( BORDER_TOP ),
-m_nLineWidth(26), // Word default
+m_nLineWidth(15), // Word default, in twips
m_nLineType(0),
m_nLineColor(0),
m_nLineDistance(0),
@@ -70,7 +70,7 @@ void BorderHandler::lcl_attribute(Id rName, Value & rVal)
break;
case NS_rtf::LN_DPTLINEWIDTH: // 0x2871
// width of a single line in 1/8 pt, max of 32 pt -> twip * 5 / 2.
- m_nLineWidth = ConversionHelper::convertTwipToMM100( nIntValue * 5 / 2 );
+ m_nLineWidth = nIntValue * 5 / 2;
break;
case NS_rtf::LN_BRCTYPE: // 0x2872
m_nLineType = nIntValue;