summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorAron Budea <aron.budea@collabora.com>2019-02-23 02:01:54 +0100
committerMiklos Vajna <vmiklos@collabora.com>2019-03-04 12:15:11 +0100
commit0b9e4f6085d147c43a86d107303eea9b86e7f34c (patch)
treeaa5c01125afcf8bda8ab223c2e98cedd59e416e5 /sw
parentba676e500f39c398248b906e516843f20ecef30e (diff)
tdf#119201 Don't show/print hidden shapes in DOCX
Similar fix to b38065ea941375bf4f78f13314e84f4a875545d9 Only rely visibility setting for now, but properly: visible means also printed, hidden means not printed. Ie. import visible property also as printable, and only output visible property in DOCX format (DOC shapes have no such property). Change-Id: Ifc3c36f90aa16ded1a9f31197612a5c85fde5d87 Reviewed-on: https://gerrit.libreoffice.org/68239 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/extras/ooxmlexport/data/tdf119201.docxbin0 -> 24206 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport13.cxx14
-rw-r--r--sw/source/filter/ww8/docxsdrexport.cxx4
3 files changed, 18 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf119201.docx b/sw/qa/extras/ooxmlexport/data/tdf119201.docx
new file mode 100644
index 000000000000..d454d6731bb1
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/tdf119201.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
index d52f546790c9..01e13fee05c7 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
@@ -147,6 +147,20 @@ DECLARE_OOXMLEXPORT_TEST(testFrameSizeExport, "floating-tables-anchor.docx")
assertXPath(pXmlDoc, "/w:document/w:body/w:tbl[1]/w:tblPr/w:tblW", "w", "4000");
}
+DECLARE_OOXMLEXPORT_TEST(testTdf119201, "tdf119201.docx")
+{
+ // Visibility of shapes wasn't imported/exported, for now base printable property on that, too
+ auto xShape(getShape(1));
+ CPPUNIT_ASSERT_MESSAGE("First shape should be visible.", getProperty<bool>(xShape, "Visible"));
+ CPPUNIT_ASSERT_MESSAGE("First shape should be printable.", getProperty<bool>(xShape, "Printable"));
+ xShape = getShape(2);
+ CPPUNIT_ASSERT_MESSAGE("Second shape should not be visible.", !getProperty<bool>(xShape, "Visible"));
+ CPPUNIT_ASSERT_MESSAGE("Second shape should not be printable.", !getProperty<bool>(xShape, "Printable"));
+ xShape = getShape(3);
+ CPPUNIT_ASSERT_MESSAGE("Third shape should be visible.", getProperty<bool>(xShape, "Visible"));
+ CPPUNIT_ASSERT_MESSAGE("Third shape should be printable.", getProperty<bool>(xShape, "Printable"));
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/docxsdrexport.cxx b/sw/source/filter/ww8/docxsdrexport.cxx
index 425f9bd5fa0a..dc902a9b93ef 100644
--- a/sw/source/filter/ww8/docxsdrexport.cxx
+++ b/sw/source/filter/ww8/docxsdrexport.cxx
@@ -892,6 +892,10 @@ void DocxSdrExport::writeDMLDrawing(const SdrObject* pSdrObject, const SwFrameFo
if (!pSdrObject->GetDescription().isEmpty())
pDocPrAttrList->add(XML_descr,
OUStringToOString(pSdrObject->GetDescription(), RTL_TEXTENCODING_UTF8));
+ if (!pSdrObject->IsVisible()
+ && pFrameFormat->GetAnchor().GetAnchorId() != RndStdIds::FLY_AS_CHAR)
+
+ pDocPrAttrList->add(XML_hidden, OString::number(1).getStr());
sax_fastparser::XFastAttributeListRef xDocPrAttrListRef(pDocPrAttrList);
pFS->singleElementNS(XML_wp, XML_docPr, xDocPrAttrListRef);