summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2017-06-19 15:32:16 +0200
committerAndras Timar <andras.timar@collabora.com>2017-06-28 22:37:46 +0200
commit617c577b372deebfb4050713a79c97cc512b16aa (patch)
treed259fef3ffe05553262c2ed76041968e5ccf7c9c /sw
parent11a98f5bb553606d05d86a143a1e11b78a23f29f (diff)
Watermark: tdf#91687 correct size in the .doc
Export: * Watermarks saved using Writer were very small in the MSO. Export fUsegtextFStretch property in the Geometry Text Boolean Properties. * tdf#91687: SnapRect contains size of Watermark after rotation. We have to export size without rotation. Import: * When import set height depending on used font and width. Text will keep the ratio. Remember the padding for export. * added unit test * introduced enum to avoid magic numbers for stretch and best fit properties. Change-Id: I3427afe78488d499f13c543ca401c096161aaf34 Reviewed-on: https://gerrit.libreoffice.org/39355 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/extras/ww8export/data/tdf91687.docbin0 -> 23552 bytes
-rw-r--r--sw/qa/extras/ww8export/ww8export2.cxx10
-rw-r--r--sw/source/filter/ww8/wrtw8esh.cxx7
3 files changed, 16 insertions, 1 deletions
diff --git a/sw/qa/extras/ww8export/data/tdf91687.doc b/sw/qa/extras/ww8export/data/tdf91687.doc
new file mode 100644
index 000000000000..d1c1e0a0c381
--- /dev/null
+++ b/sw/qa/extras/ww8export/data/tdf91687.doc
Binary files differ
diff --git a/sw/qa/extras/ww8export/ww8export2.cxx b/sw/qa/extras/ww8export/ww8export2.cxx
index 1f9082fd1ff6..6aba024fcb15 100644
--- a/sw/qa/extras/ww8export/ww8export2.cxx
+++ b/sw/qa/extras/ww8export/ww8export2.cxx
@@ -101,6 +101,16 @@ DECLARE_WW8EXPORT_TEST(testTdf108072, "tdf108072.doc")
CPPUNIT_ASSERT_EQUAL(true, getProperty<bool>(xTableRows->getByIndex(0), "IsSplitAllowed"));
}
+DECLARE_WW8EXPORT_TEST(testTdf91687, "tdf91687.doc")
+{
+ // Exported Watermarks were resized
+ uno::Reference<drawing::XShape> xWatermark = getShape(1);
+ uno::Reference<beans::XPropertySet> xWatermarkProperties(xWatermark, uno::UNO_QUERY);
+
+ CPPUNIT_ASSERT_EQUAL((sal_Int32)5172, xWatermark->getSize().Height);
+ CPPUNIT_ASSERT_EQUAL((sal_Int32)18105, xWatermark->getSize().Width);
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index 9fc44252d0d6..2e94c500cbde 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -759,7 +759,12 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const
OSL_ENSURE(pObj, "wo ist das SDR-Object?");
if (pObj)
{
- aRect = pObj->GetSnapRect();
+ aRect = pObj->GetLogicRect();
+
+ // We have to export original size with padding
+ const SfxItemSet& rSet = pObj->GetMergedItemSet();
+ const SdrMetricItem* pItem = static_cast<const SdrMetricItem*>(rSet.GetItem(SDRATTR_TEXT_UPPERDIST));
+ aRect.SetSize(Size(aRect.GetWidth(), aRect.GetHeight() + pItem->GetValue()));
}
}