dev/null |binary sw/CppunitTest_sw_filters_test.mk | 2 ++ sw/qa/core/exportdata/rtf/pass/i23357.odt |binary sw/qa/core/filters-test.cxx | 19 +++++++++++++++++-- sw/qa/extras/rtfexport/rtfexport.cxx | 5 ----- sw/source/filter/ww8/docxattributeoutput.cxx | 13 ++++++++++++- sw/source/filter/ww8/docxattributeoutput.hxx | 2 ++ 7 files changed, 33 insertions(+), 8 deletions(-)
New commits: commit d0f8b0262707529f36a7317663df1b1035d0c62a Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Wed Dec 18 19:14:54 2013 +0100 SwFiltersTest::filter: detect import filter on export test This allows e.g. crash-testing the RTF export, even if the input source is not RTF but ODT. Change-Id: I3cf6afd1bc44bb475f1bd8da622d10dac0d3baa6 diff --git a/sw/CppunitTest_sw_filters_test.mk b/sw/CppunitTest_sw_filters_test.mk index 95be87c..102b8a0 100644 --- a/sw/CppunitTest_sw_filters_test.mk +++ b/sw/CppunitTest_sw_filters_test.mk @@ -73,6 +73,8 @@ $(eval $(call gb_CppunitTest_use_components,sw_filters_test,\ svtools/util/svt \ sw/util/msword \ sw/util/sw \ + sw/util/swd \ + uui/util/uui \ toolkit/util/tk \ ucb/source/core/ucb1 \ ucb/source/ucp/file/ucpfile1 \ diff --git a/sw/qa/extras/rtfexport/data/i23357.odt b/sw/qa/core/exportdata/rtf/pass/i23357.odt similarity index 100% rename from sw/qa/extras/rtfexport/data/i23357.odt rename to sw/qa/core/exportdata/rtf/pass/i23357.odt diff --git a/sw/qa/core/filters-test.cxx b/sw/qa/core/filters-test.cxx index 7c811a4..7caa99f 100644 --- a/sw/qa/core/filters-test.cxx +++ b/sw/qa/core/filters-test.cxx @@ -91,7 +91,18 @@ bool SwFiltersTest::filter(const OUString &rFilter, const OUString &rURL, SwDocShellRef xDocShRef = new SwDocShell; SfxMedium* pSrcMed = new SfxMedium(rURL, STREAM_STD_READ); - pSrcMed->SetFilter(pFilter); + + const SfxFilter* pImportFilter = 0; + SfxFilter* pExportFilter = 0; + if (bExport) + { + SFX_APP()->GetFilterMatcher().GuessFilter(*pSrcMed, &pImportFilter, SFX_FILTER_IMPORT, 0); + pExportFilter = pFilter; + } + else + pImportFilter = pFilter; + + pSrcMed->SetFilter(pImportFilter); if (rUserData == FILTER_TEXT_DLG) { @@ -107,10 +118,14 @@ bool SwFiltersTest::filter(const OUString &rFilter, const OUString &rURL, return bLoaded; } + // How come an error may be set, and still DoLoad() returns success? Strange... + if (bLoaded) + xDocShRef->ResetError(); + utl::TempFile aTempFile; aTempFile.EnableKillingFile(); SfxMedium aDstMed(aTempFile.GetURL(), STREAM_STD_WRITE); - aDstMed.SetFilter(pFilter); + aDstMed.SetFilter(pExportFilter); bool bSaved = xDocShRef->DoSaveAs(aDstMed); if (xDocShRef.Is()) xDocShRef->DoClose(); diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx index b4d7254..b6084cb 100644 --- a/sw/qa/extras/rtfexport/rtfexport.cxx +++ b/sw/qa/extras/rtfexport/rtfexport.cxx @@ -579,11 +579,6 @@ DECLARE_RTFEXPORT_TEST(testFdo66743, "fdo66743.rtf") CPPUNIT_ASSERT_EQUAL(sal_Int32(0xd8d8d8), getProperty<sal_Int32>(xCell, "BackColor")); } -DECLARE_RTFEXPORT_TEST(testI23357, "i23357.odt") -{ - // crashtest -} - #endif CPPUNIT_PLUGIN_IMPLEMENT(); commit 5fbea544470d1a3edc51e881c12063ef1bf56dda Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Wed Dec 18 15:33:50 2013 +0100 drawingml export of sw textframe inset This is triggered by testFdo66929 in CppunitTest_sw_ooxmlexport when DML export of TextFrames is enabled in non-experimental mode. Change-Id: I39481c55fc101aa9c61984cc5646911b4c207bc9 diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 81f6479..725a579 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -462,6 +462,7 @@ void DocxAttributeOutput::WriteDMLTextFrame(sw::Frame* pParentFrame) XML_prst, "rect", FSEND); m_bDMLTextFrameSyntax = true; + m_pBodyPrAttrList = m_pSerializer->createAttrList(); m_rExport.OutputFormat( pParentFrame->GetFrmFmt(), false, false, true ); m_bDMLTextFrameSyntax = false; m_pSerializer->endElementNS(XML_wps, XML_spPr); @@ -472,7 +473,9 @@ void DocxAttributeOutput::WriteDMLTextFrame(sw::Frame* pParentFrame) m_rExport.WriteText( ); m_pSerializer->endElementNS( XML_w, XML_txbxContent ); m_pSerializer->endElementNS( XML_wps, XML_txbx ); - m_pSerializer->singleElementNS( XML_wps, XML_bodyPr, FSEND ); + XFastAttributeListRef xBodyPrAttrList(m_pBodyPrAttrList); + m_pBodyPrAttrList = NULL; + m_pSerializer->singleElementNS( XML_wps, XML_bodyPr, xBodyPrAttrList ); m_pSerializer->endElementNS(XML_wps, XML_wsp); m_pSerializer->endElementNS(XML_a, XML_graphicData); @@ -5891,7 +5894,13 @@ void DocxAttributeOutput::FormatBox( const SvxBoxItem& rBox ) } if (m_bDMLTextFrameSyntax) + { + m_pBodyPrAttrList->add(XML_lIns, OString::number(TwipsToEMU(rBox.GetDistance(BOX_LINE_LEFT)))); + m_pBodyPrAttrList->add(XML_tIns, OString::number(TwipsToEMU(rBox.GetDistance(BOX_LINE_TOP)))); + m_pBodyPrAttrList->add(XML_rIns, OString::number(TwipsToEMU(rBox.GetDistance(BOX_LINE_RIGHT)))); + m_pBodyPrAttrList->add(XML_bIns, OString::number(TwipsToEMU(rBox.GetDistance(BOX_LINE_BOTTOM)))); return; + } // v:textbox's inset attribute: inner margin values for textbox text - write only non-default values double fDistanceLeftTwips = double(rBox.GetDistance(BOX_LINE_LEFT)); @@ -6235,6 +6244,7 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri m_pParagraphSpacingAttrList( NULL ), m_pHyperlinkAttrList( NULL ), m_pFlyAttrList( NULL ), + m_pBodyPrAttrList( NULL ), m_pFlyFillAttrList( NULL ), m_pFlyWrapAttrList( NULL ), m_pTextboxAttrList( NULL ), @@ -6293,6 +6303,7 @@ DocxAttributeOutput::~DocxAttributeOutput() delete m_pParagraphSpacingAttrList, m_pParagraphSpacingAttrList = NULL; delete m_pHyperlinkAttrList, m_pHyperlinkAttrList = NULL; delete m_pFlyAttrList, m_pFlyAttrList = NULL; + delete m_pBodyPrAttrList, m_pBodyPrAttrList = NULL; delete m_pTextboxAttrList, m_pTextboxAttrList = NULL; delete m_pColorAttrList, m_pColorAttrList = NULL; diff --git a/sw/source/filter/ww8/docxattributeoutput.hxx b/sw/source/filter/ww8/docxattributeoutput.hxx index 99bb35c..8ebf31e 100644 --- a/sw/source/filter/ww8/docxattributeoutput.hxx +++ b/sw/source/filter/ww8/docxattributeoutput.hxx @@ -678,6 +678,8 @@ private: ::sax_fastparser::FastAttributeList *m_pParagraphSpacingAttrList; ::sax_fastparser::FastAttributeList *m_pHyperlinkAttrList; ::sax_fastparser::FastAttributeList *m_pFlyAttrList; + /// Attributes of <wps:bodyPr>, used during DML export of text frames. + ::sax_fastparser::FastAttributeList *m_pBodyPrAttrList; ::sax_fastparser::FastAttributeList *m_pFlyFillAttrList; ::sax_fastparser::FastAttributeList *m_pFlyWrapAttrList; /// Attributes of the next v:textbox element. _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits