[Libreoffice-commits] core.git: sw/qa sw/source
Justin Luth (via logerrit)
logerrit at kemper.freedesktop.org
Sat May 25 09:00:53 UTC 2019
sw/qa/extras/ww8export/data/tdf112618_textbox_no_bg.doc |binary
sw/qa/extras/ww8export/ww8export3.cxx | 7 +++++++
sw/source/filter/ww8/ww8graf.cxx | 8 +++++++-
3 files changed, 14 insertions(+), 1 deletion(-)
New commits:
commit 3de954c90abf46219b57f9fce2332ef7ede146e7
Author: Justin Luth <justin.luth at collabora.com>
AuthorDate: Wed May 1 15:14:14 2019 +0300
Commit: Justin Luth <justin_luth at sil.org>
CommitDate: Sat May 25 11:00:22 2019 +0200
tdf#101826 ww8import: Fly - do convert XATTR if FILLSTYLE==NONE
This fixes tdf112618, which wasn't importing properly anymore
since recent commit cc899c6967238877f0094bcf00627145e484ffec
for bug 101826.
I tried to setFly( XFillTransparencyItem(100) ), but then
it didn't round-trip. Fixing up the export sounds like a
suicide mission, so I just used the non-regressive path.
There is still a chance that unset transparency could cause problems
with other types like solid/gradient/bitmap. However, I wasn't
able to design any example documents to prove that. One difference
is that the RES_BACKGROUND looks in the parents (bInP) for
attributes, while I only transfer directly set attributes(!bInP).
Change-Id: I5160562e222629510ede3b49ae85ec99f7b351c9
Reviewed-on: https://gerrit.libreoffice.org/71646
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth at sil.org>
diff --git a/sw/qa/extras/ww8export/data/tdf112618_textbox_no_bg.doc b/sw/qa/extras/ww8export/data/tdf112618_textbox_no_bg.doc
new file mode 100644
index 000000000000..c7d9823b0db9
Binary files /dev/null and b/sw/qa/extras/ww8export/data/tdf112618_textbox_no_bg.doc differ
diff --git a/sw/qa/extras/ww8export/ww8export3.cxx b/sw/qa/extras/ww8export/ww8export3.cxx
index 339ebd17e440..fcf5fc44379f 100644
--- a/sw/qa/extras/ww8export/ww8export3.cxx
+++ b/sw/qa/extras/ww8export/ww8export3.cxx
@@ -179,6 +179,13 @@ DECLARE_WW8EXPORT_TEST(testTdf121111_fillStyleNone, "tdf121111_fillStyleNone.doc
CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, getProperty<drawing::FillStyle>(xText, "FillStyle"));
}
+DECLARE_WW8EXPORT_TEST(testTdf112618_textbox_no_bg, "tdf112618_textbox_no_bg.doc")
+{
+ sal_uInt16 nTransparence = getProperty<sal_Int16>(getShape(2), "FillTransparence");
+ CPPUNIT_ASSERT_EQUAL(sal_uInt16(100), nTransparence);
+ CPPUNIT_ASSERT_EQUAL(nTransparence, getProperty<sal_uInt16>(getShape(2), "BackColorTransparency"));
+}
+
DECLARE_WW8EXPORT_TEST(testTdf101826_xattrTextBoxFill, "tdf101826_xattrTextBoxFill.doc")
{
//Basic 1 Color Fill: gradient from yellow(FFFF00) to brown(767600) currently saves as mid-color
diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index f64577ae64f9..3beb1e2f6181 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -1715,7 +1715,13 @@ void SwWW8ImplReader::MatchSdrItemsIntoFlySet( SdrObject const * pSdrObj,
{
rFlySet.Put( *pPoolItem );
if ( i == XATTR_FILLSTYLE )
- bSkipResBackground = true;
+ {
+ const drawing::FillStyle eFill = static_cast<const XFillStyleItem*>(pPoolItem)->GetValue();
+ // Transparency forced in certain situations when fillstyle is none - use old logic for that case still
+ // which is especially needed for export purposes (tdf112618).
+ if ( eFill != drawing::FillStyle_NONE )
+ bSkipResBackground = true;
+ }
}
}
}
More information about the Libreoffice-commits
mailing list