sw/qa/extras/layout/data/tdf117188.docx |binary sw/qa/extras/layout/layout.cxx | 24 ++++++++++++++++++++++++ xmloff/source/draw/ximpshap.cxx | 14 +++++++++----- 3 files changed, 33 insertions(+), 5 deletions(-)
New commits: commit c20276eb5c80114cf23a6950d836e722103c0f30 Author: Mike Kaganski <[email protected]> AuthorDate: Mon Sep 10 17:07:47 2018 +0300 Commit: Andras Timar <[email protected]> CommitDate: Tue Sep 11 18:37:29 2018 +0200 tdf#109229: Set "TextBox" prop before filling textbox-related props Otherwise those properties aren't set, and defaults are used Change-Id: Ib6671c019ff652ec5b59d9cbbf02a4e536a17817 Reviewed-on: https://gerrit.libreoffice.org/60267 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit c3422cd205d8da852f5c310b5f08028d6c4c5eb4) Reviewed-on: https://gerrit.libreoffice.org/60297 Tested-by: Mike Kaganski <[email protected]> Reviewed-by: Andras Timar <[email protected]> diff --git a/sw/qa/extras/layout/data/tdf117188.docx b/sw/qa/extras/layout/data/tdf117188.docx new file mode 100644 index 000000000000..418f665ae7dc Binary files /dev/null and b/sw/qa/extras/layout/data/tdf117188.docx differ diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx index 936909538bfc..8c9740b7e2ae 100644 --- a/sw/qa/extras/layout/layout.cxx +++ b/sw/qa/extras/layout/layout.cxx @@ -7,6 +7,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include <comphelper/propertysequence.hxx> #include <swmodeltestbase.hxx> #include <test/mtfxmldump.hxx> @@ -21,6 +22,7 @@ public: void testTdf117028(); void testTdf117923(); void testTdf118058(); + void testTdf117188(); CPPUNIT_TEST_SUITE(SwLayoutWriter); CPPUNIT_TEST(testTdf116830); @@ -28,6 +30,7 @@ public: CPPUNIT_TEST(testTdf117028); CPPUNIT_TEST(testTdf117923); CPPUNIT_TEST(testTdf118058); + CPPUNIT_TEST(testTdf117188); CPPUNIT_TEST_SUITE_END(); private: @@ -132,6 +135,27 @@ void SwLayoutWriter::testTdf118058() pDoc->getIDocumentLayoutAccess().GetCurrentViewShell()->CalcLayout(); } +void SwLayoutWriter::testTdf117188() +{ + createDoc("tdf117188.docx"); + uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); + utl::TempFile aTempFile; + aTempFile.EnableKillingFile(); + uno::Sequence<beans::PropertyValue> aDescriptor(comphelper::InitPropertySequence({ + { "FilterName", uno::Any(OUString("writer8")) }, + })); + xStorable->storeToURL(aTempFile.GetURL(), aDescriptor); + loadURL(aTempFile.GetURL(), "tdf117188.odt"); + xmlDocPtr pXmlDoc = parseLayoutDump(); + OUString sWidth = getXPath(pXmlDoc, "/root/page/body/txt/anchored/fly/infos/bounds", "width"); + OUString sHeight = getXPath(pXmlDoc, "/root/page/body/txt/anchored/fly/infos/bounds", "height"); + // The text box must have zero border distances + assertXPath(pXmlDoc, "/root/page/body/txt/anchored/fly/infos/prtBounds", "left", "0"); + assertXPath(pXmlDoc, "/root/page/body/txt/anchored/fly/infos/prtBounds", "top", "0"); + assertXPath(pXmlDoc, "/root/page/body/txt/anchored/fly/infos/prtBounds", "width", sWidth); + assertXPath(pXmlDoc, "/root/page/body/txt/anchored/fly/infos/prtBounds", "height", sHeight); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SwLayoutWriter); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx index 2f4f873a9cf4..5cf305acbe0c 100644 --- a/xmloff/source/draw/ximpshap.cxx +++ b/xmloff/source/draw/ximpshap.cxx @@ -690,6 +690,15 @@ void SdXMLShapeContext::SetStyle( bool bSupportsStyle /* = true */) } } + // Writer shapes: if this one has a TextBox, set it here. We need to do it before + // pDocStyle->FillPropertySet, because setting some properties depend on the format + // having RES_CNTNT attribute (e.g., UNO_NAME_TEXT_(LEFT|RIGHT|UPPER|LOWER)DIST; see + // SwTextBoxHelper::syncProperty, which indirectly calls SwTextBoxHelper::isTextBox) + uno::Reference<beans::XPropertySetInfo> xPropertySetInfo + = xPropSet->getPropertySetInfo(); + if (xPropertySetInfo->hasPropertyByName("TextBox")) + xPropSet->setPropertyValue("TextBox", uno::makeAny(mbTextBox)); + // if this is an auto style, set its properties if(bAutoStyle && pDocStyle) { @@ -697,11 +706,6 @@ void SdXMLShapeContext::SetStyle( bool bSupportsStyle /* = true */) pDocStyle->FillPropertySet(xPropSet); } - // Writer shapes: if this one has a TextBox, set it here. - uno::Reference<beans::XPropertySetInfo> xPropertySetInfo = xPropSet->getPropertySetInfo(); - if (xPropertySetInfo->hasPropertyByName("TextBox")) - xPropSet->setPropertyValue("TextBox", uno::makeAny(mbTextBox)); - } while(false); // try to set text auto style _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
