[Libreoffice-commits] core.git: include/sax sax/source sw/qa sw/source
Tamás Zolnai
tamas.zolnai at collabora.com
Fri Oct 28 14:11:07 UTC 2016
include/sax/fshelper.hxx | 2 +-
sax/source/tools/fastserializer.cxx | 6 +-----
sw/qa/extras/ooxmlexport/data/tdf103544.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport9.cxx | 15 +++++++++++++++
sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx | 4 ++--
sw/source/filter/ww8/docxattributeoutput.cxx | 5 +----
6 files changed, 20 insertions(+), 12 deletions(-)
New commits:
commit b927c1f4b334f80d2c2965e5b7327d6b6a685105
Author: Tamás Zolnai <tamas.zolnai at collabora.com>
Date: Fri Oct 28 15:24:51 2016 +0000
tdf#103544: DOCX exp.: Image loss when have a frame anchored to the same para.
Regression from:
83d51e5e52688c4c9bc0ad70a511458bb06a242d
Partly revert the commit causes this regression.
I checked the related bugs (tdf#78590,tdf#80748)
intended to be fixed by this commit and reverting
this part does not bring back the corruption.
I guess something changed in frames' and text boxes'
import in the meantime, because this MergeMarks::IGNORE
is useless now.
Change-Id: If17776e8628561961c7ce2a2994e3fc609f75639
Reviewed-on: https://gerrit.libreoffice.org/30351
Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>
diff --git a/include/sax/fshelper.hxx b/include/sax/fshelper.hxx
index badbc29..fd9b856 100644
--- a/include/sax/fshelper.hxx
+++ b/include/sax/fshelper.hxx
@@ -60,7 +60,7 @@ const sal_Int32 FSEND_internal = -1; // same as XML_TOKEN_INVALID
namespace sax_fastparser {
-enum class MergeMarks { APPEND = 0, PREPEND = 1, POSTPONE = 2, IGNORE = 3 };
+enum class MergeMarks { APPEND = 0, PREPEND = 1, POSTPONE = 2};
typedef css::uno::Reference< css::xml::sax::XFastAttributeList > XFastAttributeListRef;
diff --git a/sax/source/tools/fastserializer.cxx b/sax/source/tools/fastserializer.cxx
index 49ed24b..620fe68 100644
--- a/sax/source/tools/fastserializer.cxx
+++ b/sax/source/tools/fastserializer.cxx
@@ -405,7 +405,7 @@ namespace sax_fastparser {
// flush, so that we get everything in getData()
maCachedOutputStream.flush();
- if (maMarkStack.size() == 1 && eMergeType != MergeMarks::IGNORE)
+ if (maMarkStack.size() == 1)
{
#ifdef DBG_UTIL
while (!maMarkStack.top()->m_DebugEndedElements.empty())
@@ -469,8 +469,6 @@ namespace sax_fastparser {
topDebugEndedElements,
topDebugStartedElements);
break;
- case MergeMarks::IGNORE:
- break;
}
#endif
if (maMarkStack.empty())
@@ -488,8 +486,6 @@ namespace sax_fastparser {
case MergeMarks::APPEND: maMarkStack.top()->append( aMerge ); break;
case MergeMarks::PREPEND: maMarkStack.top()->prepend( aMerge ); break;
case MergeMarks::POSTPONE: maMarkStack.top()->postpone( aMerge ); break;
- case MergeMarks::IGNORE: break;
-
}
}
diff --git a/sw/qa/extras/ooxmlexport/data/tdf103544.docx b/sw/qa/extras/ooxmlexport/data/tdf103544.docx
new file mode 100644
index 0000000..2e18f21
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf103544.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
index 7800cd3..5ee0ff4 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
@@ -17,6 +17,7 @@
#include <com/sun/star/text/XTextFramesSupplier.hpp>
#include <com/sun/star/text/XTextEmbeddedObjectsSupplier.hpp>
#include <com/sun/star/text/XTextViewCursorSupplier.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
class Test : public SwModelTestBase
{
@@ -68,6 +69,20 @@ DECLARE_OOXMLEXPORT_TEST(testTdf84678, "tdf84678.docx")
// This was 0, left margin inside a shape+text wasn't imported from DOCX.
// 360000 EMU, but layout uses twips.
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(567), parseDump("/root/page/body/txt/anchored/fly/infos/prtBounds", "left").toInt32());
+
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTdf103544, "tdf103544.docx")
+{
+ // We have two shapes: a frame and an image
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> xDrawPage = xDrawPageSupplier->getDrawPage();
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xDrawPage->getCount());
+
+ // Image was lost because of the frame export
+ uno::Reference<beans::XPropertySet> xImage(getShape(1), uno::UNO_QUERY);
+ auto xGraphic = getProperty<uno::Reference<graphic::XGraphic> >(xImage, "Graphic");
+ CPPUNIT_ASSERT(xGraphic.is());
}
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx
index 39a2274..fa5f9df 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx
@@ -498,8 +498,8 @@ DECLARE_OOXMLEXPORT_TEST(testFDO78590, "FDO78590.docx")
return;
// This is to ensure that the fld starts and ends inside a hyperlink...
- assertXPath ( pXmlDoc, "/w:document/w:body/w:p[1]/w:pPr/w:framePr", "w", "9851" );
- assertXPath ( pXmlDoc, "/w:document/w:body/w:p[1]/w:pPr/w:framePr", "h", "1669" );
+ assertXPath ( pXmlDoc, "/w:document/w:body/w:p[2]/w:pPr/w:framePr", "w", "9851" );
+ assertXPath ( pXmlDoc, "/w:document/w:body/w:p[2]/w:pPr/w:framePr", "h", "1669" );
}
DECLARE_OOXMLEXPORT_TEST(testSdtCitationRun, "sdt-citation-run.docx")
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 4096694..1d90898 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -579,10 +579,7 @@ void DocxAttributeOutput::EndParagraph( ww8::WW8TableNodeInfoInner::Pointer_t pT
//sdtcontent is written so Set m_bParagraphHasDrawing to false
m_rExport.SdrExporter().setParagraphHasDrawing( false );
m_bRunTextIsOn = false;
- if(aFramePrTextbox.empty())
- m_pSerializer->mergeTopMarks(Tag_StartParagraph_1);
- else
- m_pSerializer->mergeTopMarks(Tag_StartParagraph_1, sax_fastparser::MergeMarks::IGNORE);
+ m_pSerializer->mergeTopMarks(Tag_StartParagraph_1);
// Write framePr
if(!aFramePrTextbox.empty())
More information about the Libreoffice-commits
mailing list