[Libreoffice-commits] core.git: 2 commits - oox/source sw/qa sysui/CustomTarget_share.mk
Szabolcs (via logerrit)
logerrit at kemper.freedesktop.org
Thu Apr 2 12:47:55 UTC 2020
oox/source/drawingml/textcharacterpropertiescontext.cxx | 40 +++++++
sw/qa/extras/ooxmlexport/data/tdf123351_UnderlineGroupSapeText.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport4.cxx | 54 ++++++++++
sysui/CustomTarget_share.mk | 5
4 files changed, 96 insertions(+), 3 deletions(-)
New commits:
commit 63860b3652ade32bee1902b02f2da51a52e60bea
Author: Szabolcs <szabolcs450 at gmail.com>
AuthorDate: Wed Apr 1 09:17:17 2020 +0200
Commit: László Németh <nemeth at numbertext.org>
CommitDate: Thu Apr 2 14:47:28 2020 +0200
tdf#123351 DOCX DrawingML shape import: fix missing underline
in shape texts.
Handling of 18 underline types in DrawingML shape objects, i.e.
in grouped shapes did not exist.
Note: Underline type "words" imported as "single" temporarily.
Also testing of dashLong is missing, because it is exported as
dashLongHeavy in DOCX.
Co-Authors: Balázs Regényi, Tibor Nagy
Change-Id: I620d919da6b85eaed211e5cbdd5c1a55e60436d8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91461
Tested-by: László Németh <nemeth at numbertext.org>
Reviewed-by: László Németh <nemeth at numbertext.org>
diff --git a/oox/source/drawingml/textcharacterpropertiescontext.cxx b/oox/source/drawingml/textcharacterpropertiescontext.cxx
index a126c258cd11..b7bb876044cf 100644
--- a/oox/source/drawingml/textcharacterpropertiescontext.cxx
+++ b/oox/source/drawingml/textcharacterpropertiescontext.cxx
@@ -162,6 +162,46 @@ ContextHandlerRef TextCharacterPropertiesContext::onCreateContext( sal_Int32 aEl
mrTextCharacterProperties.maAsianThemeFont.setAttributes(rAttribs.getString(W_TOKEN(eastAsiaTheme), OUString()));
}
break;
+ case W_TOKEN( u ):
+ {
+ // If you add here, check if it is in drawingmltypes.cxx 113.
+ auto attrib = rAttribs.getString(W_TOKEN( val ), OUString());
+ if (attrib == "single" || attrib == "words") // TODO: implement words properly. Now it is a single line.
+ mrTextCharacterProperties.moUnderline = XML_sng;
+ else if (attrib == "wavyHeavy")
+ mrTextCharacterProperties.moUnderline = XML_wavyHeavy;
+ else if (attrib == "wavyDouble")
+ mrTextCharacterProperties.moUnderline = XML_wavyDbl;
+ else if (attrib == "wave")
+ mrTextCharacterProperties.moUnderline = XML_wavy;
+ else if (attrib == "thick")
+ mrTextCharacterProperties.moUnderline = XML_heavy;
+ else if (attrib == "dottedHeavy")
+ mrTextCharacterProperties.moUnderline = XML_dottedHeavy;
+ else if (attrib == "dotted")
+ mrTextCharacterProperties.moUnderline = XML_dotted;
+ else if (attrib == "dashDotDotHeavy")
+ mrTextCharacterProperties.moUnderline = XML_dotDotDashHeavy;
+ else if (attrib == "dotDotDash")
+ mrTextCharacterProperties.moUnderline = XML_dotDotDash;
+ else if (attrib == "dashDotHeavy")
+ mrTextCharacterProperties.moUnderline = XML_dotDashHeavy;
+ else if (attrib == "dotDash")
+ mrTextCharacterProperties.moUnderline = XML_dotDash;
+ else if (attrib == "double")
+ mrTextCharacterProperties.moUnderline = XML_dbl;
+ else if (attrib == "dashLongHeavy")
+ mrTextCharacterProperties.moUnderline = XML_dashLongHeavy;
+ else if (attrib == "dashLong")
+ mrTextCharacterProperties.moUnderline = XML_dashLong;
+ else if (attrib == "dashedHeavy")
+ mrTextCharacterProperties.moUnderline = XML_dashHeavy;
+ else if (attrib == "dash")
+ mrTextCharacterProperties.moUnderline = XML_dash;
+ else if (attrib == "none")
+ mrTextCharacterProperties.moUnderline = XML_none;
+ break;
+ }
case W_TOKEN( b ):
mrTextCharacterProperties.moBold = rAttribs.getBool(W_TOKEN( val ), true);
break;
diff --git a/sw/qa/extras/ooxmlexport/data/tdf123351_UnderlineGroupSapeText.docx b/sw/qa/extras/ooxmlexport/data/tdf123351_UnderlineGroupSapeText.docx
new file mode 100644
index 000000000000..8726f7ee6f72
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf123351_UnderlineGroupSapeText.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index aa4c902d6765..91acdfe299ec 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -1144,6 +1144,60 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testDocxTablePosition, "floating-table-posit
assertXPath(pXmlDoc, "/w:document/w:body/w:tbl/w:tblPr/w:tblpPr", "tblpY", "4611");
}
+DECLARE_OOXMLEXPORT_TEST(testUnderlineGroupShapeText, "tdf123351_UnderlineGroupSapeText.docx")
+{
+ // tdf#123351: Check if correct underline is used.
+ xmlDocPtr pXmlDocument = parseExport("word/document.xml");
+ if (!pXmlDocument)
+ return;
+
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[1]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "single");
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[1]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[2]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "double");
+
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[2]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "thick");
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[2]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[2]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "dotted");
+
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[3]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "dottedHeavy");
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[3]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[2]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "dash");
+
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[4]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "dashedHeavy");
+
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[5]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:r[1]/w:rPr/w:u", "val", "dashLongHeavy");
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[5]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[2]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "dotDash");
+
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[6]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "dashDotHeavy");
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[6]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[2]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "dotDotDash");
+
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[7]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "dashDotDotHeavy");
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[7]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[2]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "wave");
+
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[8]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "wavyHeavy");
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent[8]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[2]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "wavyDouble");
+
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[32]/w:r/mc:AlternateContent[1]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "none");
+
+ // TODO: Import of "words".
+ // This must fail when import of "words" is implemented. This is a temporary solution, we read "words" as "single".
+ assertXPath(pXmlDocument, "/w:document/w:body/w:p[32]/w:r/mc:AlternateContent[1]/mc:Choice/w:drawing/wp:anchor"
+ "/a:graphic/a:graphicData/wpg:wgp/wps:wsp[2]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr/w:u", "val", "single");
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 009db597027890ade07d31674c740ae0fc432f87
Author: Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Thu Apr 2 13:48:48 2020 +0200
Commit: Stephan Bergmann <sbergman at redhat.com>
CommitDate: Thu Apr 2 14:47:19 2020 +0200
Only process with brand.pl the *.keys and *.desktop files
...and not also whatever other prerequisites those two rules might have (e.g.,
instdir/program/python.bin).
Before 01344a8ca57636ac87108c22f777a02fe6d963d5 "convert sysui to gbuild and add
to tail_build", the corresponding dmake code in sysui/desktop/share/makefile.mk
had been
> $(COMMONMISC)$/{$(PRODUCTLIST)}$/openoffice.keys : ../mimetypes/openoffice.mime brand.pl translate.pl ../productversion.mk $(ULFDIR)$/documents.ulf
> $(COMMONMISC)$/{$(PRODUCTLIST)}$/openoffice.keys : ../mimetypes/{$(MIMELIST)}.keys
[...]
> @$(PERL) brand.pl -p $(PRODUCTNAME.$(@:d:d:f)) -u $(UNIXFILENAME.$(@:d:d:f)) --iconprefix '$(ICONPREFIX.$(@:d:d:f))-' $< $(MISC)/$(@:d:d:f)
[...]
and
> $(LAUNCHERFLAGFILE) : ../productversion.mk brand.pl translate.pl $(ULFDIR)$/launcher_name.ulf $(ULFDIR)$/launcher_comment.ulf $(ULFDIR)/launcher_genericname.ulf $(ULFDIR)/launcher_unityquicklist.ulf
> $(LAUNCHERFLAGFILE) : $(LAUNCHERDEPN)
[...]
> @$(PERL) brand.pl -p '$${{PRODUCTNAME}} $${{PRODUCTVERSION}}' -u $(UNIXWRAPPERNAME) --iconprefix '$${{UNIXBASISROOTNAME}}-' $< $(@:db).$(INPATH).$(@:f)
[...]
where Dmake's $< denotes "the list of prerequisites specified in the current
rule" (<https://www.openoffice.org/tools/dmake/dmake_4.11.html>, section
"RUNTIME MACROS"), whereas GNU Make's $^ denotes all prerequisites.
Change-Id: Ie6efc5d9512408711db32502e0959b32ec232603
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91566
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
diff --git a/sysui/CustomTarget_share.mk b/sysui/CustomTarget_share.mk
index 7402dddf46b4..f4c38f813a09 100644
--- a/sysui/CustomTarget_share.mk
+++ b/sysui/CustomTarget_share.mk
@@ -139,7 +139,6 @@ $(share_WORKDIR)/%/openoffice.org.xml: $(share_WORKDIR)/documents.ulf $(MIMEDESK
$(PERL) $(share_SRCDIR)/share/create_mime_xml.pl $< > $@
$(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),PRL)
-
$(share_WORKDIR)/%/openoffice.keys: \
$(share_SRCDIR)/mimetypes/openoffice.mime $(MIMEKEYS) $(share_SRCDIR)/share/brand.pl \
$(share_TRANSLATE) $(share_WORKDIR)/documents.ulf \
@@ -148,7 +147,7 @@ $(share_WORKDIR)/%/openoffice.keys: \
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,1)
$(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),PRL)
$(PERL) $(share_SRCDIR)/share/brand.pl -p $* -u $(UNIXFILENAME.$*) \
- --iconprefix $(UNIXFILENAME.$*)- $^ $(share_WORKDIR)/$*
+ --iconprefix $(UNIXFILENAME.$*)- $(MIMEKEYS) $(share_WORKDIR)/$*
$(call gb_ExternalExecutable_get_command,python) $(share_TRANSLATE) \
-p $* -d $(share_WORKDIR)/$* \
--ext "keys" --key "description" $(share_WORKDIR)/documents.ulf
@@ -244,7 +243,7 @@ $(share_WORKDIR)/%/build.flag: $(share_SRCDIR)/share/brand.pl $(LAUNCHERS) \
$(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),PRL)
$(PERL) $(share_SRCDIR)/share/brand.pl -p '$${PRODUCTNAME} $${PRODUCTVERSION}' -u $(UNIXFILENAME.$*) \
$(brand_URIPARAM) \
- --iconprefix '$${UNIXBASISROOTNAME}-' $^ $(share_WORKDIR)/$*
+ --iconprefix '$${UNIXBASISROOTNAME}-' $(LAUNCHERS) $(share_WORKDIR)/$*
$(call gb_ExternalExecutable_get_command,python) $(share_TRANSLATE) -p $(PRODUCTNAME.$*)$(PRODUCTVERSION) -d $(share_WORKDIR)/$* \
--ext "desktop" --key "Comment" $(share_WORKDIR)/launcher_comment.ulf
$(call gb_ExternalExecutable_get_command,python) $(share_TRANSLATE) -p $(PRODUCTNAME.$*)$(PRODUCTVERSION) -d $(share_WORKDIR)/$* \
More information about the Libreoffice-commits
mailing list