|
|
86e716e |
From ed41167d5ffae11efdd9cb43b2d88a8147e6d13f Mon Sep 17 00:00:00 2001
|
|
|
86e716e |
From: Michael Stahl <mstahl@redhat.com>
|
|
|
86e716e |
Date: Wed, 25 Jan 2012 22:43:39 +0100
|
|
|
86e716e |
Subject: [PATCH 8/8] fdo#38542: SvxBorderLine::GuessLinesWidths:
|
|
|
86e716e |
MIME-Version: 1.0
|
|
|
86e716e |
Content-Type: text/plain; charset=UTF-8
|
|
|
86e716e |
Content-Transfer-Encoding: 8bit
|
|
|
86e716e |
|
|
|
86e716e |
Importing style:border-line-width="0.002cm 0.088cm 0.141cm" (which older
|
|
|
86e716e |
OOo/LO apparently could write) fails, because GuessLinesWidths can't find
|
|
|
86e716e |
a matching style (result: standard "double" border, 3 equal width parts).
|
|
|
86e716e |
Try to create a custom BorderWidthImpl of type DOUBLE instead, that
|
|
|
86e716e |
preserves the individual widths.
|
|
|
86e716e |
|
|
|
86e716e |
Signed-off-by: C├ędric Bosdonnat <cedric.bosdonnat.ooo@free.fr>
|
|
|
86e716e |
Signed-off-by: Noel Power <noel.power@novell.com>
|
|
|
86e716e |
---
|
|
|
86e716e |
editeng/qa/items/borderline_test.cxx | 2 +-
|
|
|
86e716e |
editeng/source/items/borderline.cxx | 21 ++++++++++++++++++---
|
|
|
86e716e |
2 files changed, 19 insertions(+), 4 deletions(-)
|
|
|
86e716e |
|
|
|
86e716e |
diff --git a/editeng/qa/items/borderline_test.cxx b/editeng/qa/items/borderline_test.cxx
|
|
|
86e716e |
index 5d67b62..05172d6 100644
|
|
|
86e716e |
--- a/editeng/qa/items/borderline_test.cxx
|
|
|
86e716e |
+++ b/editeng/qa/items/borderline_test.cxx
|
|
|
86e716e |
@@ -85,7 +85,7 @@ void BorderLineTest::testGuessWidthNoMatch()
|
|
|
86e716e |
line.GuessLinesWidths( DOUBLE,
|
|
|
86e716e |
TEST_WIDTH + 1, TEST_WIDTH + 2, TEST_WIDTH + 3 );
|
|
|
86e716e |
CPPUNIT_ASSERT_EQUAL( DOUBLE, line.GetStyle() );
|
|
|
86e716e |
- CPPUNIT_ASSERT_EQUAL( long( 0 ), line.GetWidth() );
|
|
|
86e716e |
+ CPPUNIT_ASSERT_EQUAL( long( (3 * TEST_WIDTH) + 6 ), line.GetWidth() );
|
|
|
86e716e |
}
|
|
|
86e716e |
|
|
|
86e716e |
void BorderLineTest::testGuessWidthThinthickSmallgap()
|
|
|
86e716e |
diff --git a/editeng/source/items/borderline.cxx b/editeng/source/items/borderline.cxx
|
|
|
86e716e |
index de24284..88adf29 100644
|
|
|
86e716e |
--- a/editeng/source/items/borderline.cxx
|
|
|
86e716e |
+++ b/editeng/source/items/borderline.cxx
|
|
|
86e716e |
@@ -279,10 +279,25 @@ void SvxBorderLine::GuessLinesWidths( SvxBorderStyle nStyle, sal_uInt16 nOut, sa
|
|
|
86e716e |
|
|
|
86e716e |
// If anything matched, then set it
|
|
|
86e716e |
if ( nWidth > 0 )
|
|
|
86e716e |
+ {
|
|
|
86e716e |
nStyle = nTestStyle;
|
|
|
86e716e |
-
|
|
|
86e716e |
- SetStyle( nStyle );
|
|
|
86e716e |
- m_nWidth = nWidth;
|
|
|
86e716e |
+ SetStyle( nStyle );
|
|
|
86e716e |
+ m_nWidth = nWidth;
|
|
|
86e716e |
+ }
|
|
|
86e716e |
+ else
|
|
|
86e716e |
+ {
|
|
|
86e716e |
+ // fdo#38542: not a known double, default to something custom...
|
|
|
86e716e |
+ SetStyle( nStyle );
|
|
|
86e716e |
+ m_nWidth = nOut + nIn + nDist;
|
|
|
86e716e |
+ if (nOut + nIn + nDist)
|
|
|
86e716e |
+ {
|
|
|
86e716e |
+ m_aWidthImpl = BorderWidthImpl(
|
|
|
86e716e |
+ CHANGE_LINE1 | CHANGE_LINE2 | CHANGE_DIST,
|
|
|
86e716e |
+ static_cast<double>(nOut ) / static_cast<double>(m_nWidth),
|
|
|
86e716e |
+ static_cast<double>(nIn ) / static_cast<double>(m_nWidth),
|
|
|
86e716e |
+ static_cast<double>(nDist) / static_cast<double>(m_nWidth));
|
|
|
86e716e |
+ }
|
|
|
86e716e |
+ }
|
|
|
86e716e |
}
|
|
|
86e716e |
else
|
|
|
86e716e |
{
|
|
|
86e716e |
--
|
|
|
86e716e |
1.7.7.6
|
|
|
86e716e |
|