diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-01-07 08:19:17 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2016-01-25 21:09:04 +0000 |
commit | af55185eb9ffcf903bba22cad736797162a7eb4d (patch) | |
tree | 2bccc5375a10c3fc8528ea8432f00c212524f875 /sw | |
parent | 10f3272bb1bf36cae5eb6e80f9f1e0f4753ebb5d (diff) |
tdf#95213 DOCX import: don't reuse list label styles
We used to optimize the creation of these styles, so in case two list
label had the same character properties, then we could avoid creating
two styles for those.
This isn't correct though: it means if the style is changed later by the
user, then unexpected other places in the document will change as well.
Do what the binary DOC filter does: create one character style for each
level of a numbering separately.
(cherry picked from commit f9c8d97d82a85b897520a2fe897352ee5ad879d9)
Conflicts:
sw/qa/extras/ooxmlimport/ooxmlimport.cxx
writerfilter/source/dmapper/DomainMapper.cxx
writerfilter/source/dmapper/DomainMapper_Impl.cxx
writerfilter/source/dmapper/NumberingManager.cxx
Change-Id: I967b30fc078b1be30f7ef81b2706df2962fc3fb0
Reviewed-on: https://gerrit.libreoffice.org/21437
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport5.cxx | 2 | ||||
-rw-r--r-- | sw/qa/extras/ooxmlimport/data/tdf95213.docx | bin | 0 -> 17747 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 14 |
3 files changed, 15 insertions, 1 deletions
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx index c709513509e0..7f1472fac131 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx @@ -460,7 +460,7 @@ DECLARE_OOXMLEXPORT_TEST(testfdo76934, "fdo76934.docx") return; // Ensure that after fix LO is preserving AutoSpacing property in styles.xml - assertXPath ( pXmlDoc, "/w:styles[1]/w:style[36]/w:pPr[1]/w:spacing[1]", "beforeAutospacing", "1" ); + assertXPath ( pXmlDoc, "/w:styles[1]/w:style[@w:styleId='Title']/w:pPr[1]/w:spacing[1]", "beforeAutospacing", "1" ); } DECLARE_OOXMLEXPORT_TEST(testfdo79540, "fdo79540.docx") diff --git a/sw/qa/extras/ooxmlimport/data/tdf95213.docx b/sw/qa/extras/ooxmlimport/data/tdf95213.docx Binary files differnew file mode 100644 index 000000000000..831d543b903f --- /dev/null +++ b/sw/qa/extras/ooxmlimport/data/tdf95213.docx diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 17849e340e70..a83d683da96a 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -2875,6 +2875,20 @@ DECLARE_OOXMLIMPORT_TEST(testTdf92045, "tdf92045.docx") CPPUNIT_ASSERT_EQUAL(false, getProperty<bool>(getRun(getParagraph(1), 1), "CharFlash")); } +DECLARE_OOXMLIMPORT_TEST(testTdf95213, "tdf95213.docx") +{ + // Get the second paragraph's numbering style's 2nd level's character style name. + uno::Reference<text::XTextRange> xParagraph = getParagraph(2); + auto xLevels = getProperty< uno::Reference<container::XIndexAccess> >(xParagraph, "NumberingRules"); + uno::Sequence<beans::PropertyValue> aLevel; + xLevels->getByIndex(1) >>= aLevel; // 2nd level + OUString aName = std::find_if(aLevel.begin(), aLevel.end(), [](const beans::PropertyValue& rValue) { return rValue.Name == "CharStyleName"; })->Value.get<OUString>(); + + uno::Reference<beans::XPropertySet> xStyle(getStyles("CharacterStyles")->getByName(aName), uno::UNO_QUERY); + // This was awt::FontWeight::BOLD. + CPPUNIT_ASSERT_EQUAL(awt::FontWeight::NORMAL, getProperty<float>(xStyle, "CharWeight")); +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); |