summaryrefslogtreecommitdiff
path: root/oox/qa/unit/vml.cxx
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2021-12-16 10:16:02 +0100
committerMike Kaganski <mike.kaganski@collabora.com>2021-12-17 11:57:24 +0100
commitf21f0f0ff656880149cfdfd34b8984c9541bca24 (patch)
treece3a3171c03a0f71d9b1931cb2ffd20d25f9b8c0 /oox/qa/unit/vml.cxx
parentd382e7c1decd39c4f3d8a25ce4e808e79b516e68 (diff)
VML import: handle <v:imagedata gain="..." blacklevel="...">co-21.06.10-1
Map it to (the UNO API of) GraphicDrawMode::Watermark, similar to what the binary import does in SvxMSDffManager::ImportGraphic() and how the drawingML import does it in oox::drawingml::GraphicProperties::pushToPropMap(). On export, the drawingML export is used, and that already maps GraphicDrawMode::Watermark to <a:lum bright="70000" contrast="-70000">. (cherry picked from commit 90556b6df0f6378fb60d7dee18b2f5d275ece530) Conflicts: oox/qa/unit/vml.cxx Change-Id: I33986a03bf3d3863da5c5b1f0a2e0da0fa595c9e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126949 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'oox/qa/unit/vml.cxx')
-rw-r--r--oox/qa/unit/vml.cxx22
1 files changed, 22 insertions, 0 deletions
diff --git a/oox/qa/unit/vml.cxx b/oox/qa/unit/vml.cxx
index d75372da39ae..680e55fb093a 100644
--- a/oox/qa/unit/vml.cxx
+++ b/oox/qa/unit/vml.cxx
@@ -17,6 +17,7 @@
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/text/WritingMode2.hpp>
+#include <com/sun/star/drawing/ColorMode.hpp>
using namespace ::com::sun::star;
@@ -145,6 +146,27 @@ CPPUNIT_TEST_FIXTURE(OoxVmlTest, testGraphicStroke)
CPPUNIT_ASSERT_EQUAL(drawing::LineStyle_SOLID, eLineStyle);
}
+CPPUNIT_TEST_FIXTURE(OoxVmlTest, testWatermark)
+{
+ // Given a document with a picture watermark, and the "washout" checkbox is ticked on the Word
+ // UI:
+ // When loading that document:
+ load(u"watermark.docx");
+
+ // Then make sure the watermark effect is not lost on import:
+ uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(getComponent(), uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPagesSupplier->getDrawPages()->getByIndex(0),
+ uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ drawing::ColorMode eMode{};
+ xShape->getPropertyValue("GraphicColorMode") >>= eMode;
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 3
+ // - Actual : 0
+ // i.e. the color mode was STANDARD, not WATERMARK.
+ CPPUNIT_ASSERT_EQUAL(drawing::ColorMode_WATERMARK, eMode);
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */