Kaydet (Commit) fa9d574a authored tarafından YogeshBharate's avatar YogeshBharate Kaydeden (comit) Miklos Vajna

Code changes for fdo#74107:File Corruption - Issue with outerShdw

Problem Description:
- In document.xml, outerShdw dist contains the negative value after roundtrip.
- Due to negative value file get corrupted.

XML difference:
 Roundtrip: Before fix
 <a:outerShdw dist="-1363652116480" dir="2700000">

 Roundtrip: After fix
 <a:outerShdw dist="57811035" dir="2700000">

Conflicts:
	sw/qa/extras/ooxmlexport/ooxmlexport.cxx
Reviewed on:
	https://gerrit.libreoffice.org/7880

Change-Id: Ied752672244d5768dee554e907f2f4d7a9d077d5
üst 363f1c14
......@@ -3182,6 +3182,14 @@ DECLARE_OOXMLEXPORT_TEST(testCaption4, "TableWithAboveCaptions.docx")
CPPUNIT_ASSERT(contents.match(" SEQ Table \\* ARABIC"));
}
DECLARE_OOXMLEXPORT_TEST(testOuterShdw,"testOuterShdw.docx")
{
xmlDocPtr pXmlDoc = parseExport("word/document.xml");
if (!pXmlDoc)
return;
assertXPath(pXmlDoc, "/w:document[1]/w:body[1]/w:p[1]/w:r[3]/mc:AlternateContent[1]/mc:Choice[1]/w:drawing[1]/wp:anchor[1]/a:graphic[1]/a:graphicData[1]/wps:wsp[1]/wps:spPr[1]/a:effectLst[1]/a:outerShdw[1]", "dist", "57811035");
}
#endif
CPPUNIT_PLUGIN_IMPLEMENT();
......
......@@ -571,7 +571,7 @@ void DocxSdrExport::writeDMLEffectLst(const SwFrmFmt& rFrmFmt)
if (aShadowItem.GetLocation() != SVX_SHADOW_NONE)
{
// Distance is measured diagonally from corner
double nShadowDist = sqrt((aShadowItem.GetWidth()*aShadowItem.GetWidth())*2.0);
double nShadowDist = sqrt((double)aShadowItem.GetWidth()*aShadowItem.GetWidth()*2.0);
OString aShadowDist(OString::number(TwipsToEMU(nShadowDist)));
OString aShadowColor = msfilter::util::ConvertColor(aShadowItem.GetColor());
OString aShadowAlpha = lcl_ConvertTransparency(aShadowItem.GetColor());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment