vcl/qa/cppunit/svm/data/layoutmode.svm |binary vcl/qa/cppunit/svm/svmtest.cxx | 27 +++++++++++++++++++++++++-- vcl/source/gdi/mtfxmldump.cxx | 26 +++++++++++++++++++++++++- 3 files changed, 50 insertions(+), 3 deletions(-)
New commits: commit bc4cea4943c9189b92f51aacf097549023398b2e Author: panoskorovesis <panoskorove...@outlook.com> AuthorDate: Mon Jun 21 14:40:08 2021 +0300 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Wed Jun 23 08:57:09 2021 +0200 Add LayoutMode cppunit test to vcl. The test sets two LayoutModes (using ComplexTextLayoutFlags) and checks their attributes. Change-Id: Id765c150485c6f06c1326498a7f1b40b8f9c12fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117575 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/vcl/qa/cppunit/svm/data/layoutmode.svm b/vcl/qa/cppunit/svm/data/layoutmode.svm new file mode 100644 index 000000000000..d12f09d663aa Binary files /dev/null and b/vcl/qa/cppunit/svm/data/layoutmode.svm differ diff --git a/vcl/qa/cppunit/svm/svmtest.cxx b/vcl/qa/cppunit/svm/svmtest.cxx index a8244ff2f25b..a95c249c96bf 100644 --- a/vcl/qa/cppunit/svm/svmtest.cxx +++ b/vcl/qa/cppunit/svm/svmtest.cxx @@ -190,7 +190,7 @@ class SvmTest : public test::BootstrapFixture, public XmlTestTools void checkComment(const GDIMetaFile& rMetaFile); void testComment(); - //void checkLayoutMode(const GDIMetaFile& rMetaFile); + void checkLayoutMode(const GDIMetaFile& rMetaFile); void testLayoutMode(); void checkTextLanguage(const GDIMetaFile& rMetaFile); @@ -2108,8 +2108,31 @@ void SvmTest::testComment() checkComment(readFile(u"comment.svm")); } +void SvmTest::checkLayoutMode(const GDIMetaFile& rMetaFile) +{ + xmlDocUniquePtr pDoc = dumpMeta(rMetaFile); + + assertXPathAttrs(pDoc, "/metafile/layoutmode[1]", { + {"textlayout", "#0004"} + }); + + assertXPathAttrs(pDoc, "/metafile/layoutmode[2]", { + {"textlayout", "#0001"} + }); +} + void SvmTest::testLayoutMode() -{} +{ + GDIMetaFile aGDIMetaFile; + ScopedVclPtrInstance<VirtualDevice> pVirtualDev; + setupBaseVirtualDevice(*pVirtualDev, aGDIMetaFile); + + pVirtualDev->SetLayoutMode(ComplexTextLayoutFlags::TextOriginLeft); + pVirtualDev->SetLayoutMode(ComplexTextLayoutFlags::BiDiRtl); + + checkLayoutMode(writeAndReadStream(aGDIMetaFile)); + checkLayoutMode(readFile(u"layoutmode.svm")); +} void SvmTest::checkTextLanguage(const GDIMetaFile& rMetaFile) { diff --git a/vcl/source/gdi/mtfxmldump.cxx b/vcl/source/gdi/mtfxmldump.cxx index 901edde87437..0b9ba2c2ef20 100644 --- a/vcl/source/gdi/mtfxmldump.cxx +++ b/vcl/source/gdi/mtfxmldump.cxx @@ -439,6 +439,19 @@ OUString convertPixelFormatToString(vcl::PixelFormat ePixelFormat) return OUString(); } +OUString convertComplexTestLayoutFlags(ComplexTextLayoutFlags eComplexTestLayoutFlags) +{ + switch(eComplexTestLayoutFlags) + { + default: + case ComplexTextLayoutFlags::Default: return "#0000"; + case ComplexTextLayoutFlags::BiDiRtl: return "#0001"; + case ComplexTextLayoutFlags::BiDiStrong: return "#0002"; + case ComplexTextLayoutFlags::TextOriginLeft: return "#0004"; + case ComplexTextLayoutFlags::TextOriginRight: return "#0008"; + } +} + OUString hex32(sal_uInt32 nNumber) { std::stringstream ss; @@ -1351,7 +1364,18 @@ void MetafileXmlDump::writeXml(const GDIMetaFile& rMetaFile, tools::XmlWriter& r } break; - //case MetaActionType::LAYOUTMODE: + case MetaActionType::LAYOUTMODE: + { + const MetaLayoutModeAction* pMetaLayoutModeAction = static_cast<MetaLayoutModeAction*>(pAction); + + rWriter.startElement(sCurrentElementTag); + + rWriter.attribute("textlayout", convertComplexTestLayoutFlags(pMetaLayoutModeAction->GetLayoutMode())); + + rWriter.endElement(); + } + break; + case MetaActionType::TEXTLANGUAGE: { const MetaTextLanguageAction* pMetaTextLanguageAction = static_cast<MetaTextLanguageAction*>(pAction); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits