summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-11-19 17:25:04 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-11-19 17:43:04 +0100
commitd9f0c19edde7cb28086860ea6b3519be0d49a3e0 (patch)
tree3bf8967d72a8c20b2ffc4277f8bea2c88037121d
parent755209d88073fd497b884b8de1348ec75c2df7eb (diff)
DOCX import: handle <w:lvlOverride> without <w:lvlText>
Change-Id: I0b941bd7a733408655db192b8608ed3987b9c1fc
-rw-r--r--sw/qa/extras/ooxmlexport/data/num-override-lvltext.docxbin0 -> 13625 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport.cxx7
-rw-r--r--writerfilter/source/dmapper/NumberingManager.cxx3
3 files changed, 9 insertions, 1 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/num-override-lvltext.docx b/sw/qa/extras/ooxmlexport/data/num-override-lvltext.docx
new file mode 100644
index 000000000000..5ee36020a112
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/num-override-lvltext.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 964ec96c656a..8c78d45343fb 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -591,6 +591,13 @@ DECLARE_OOXMLEXPORT_TEST(testNumParentStyle, "num-parent-style.docx")
CPPUNIT_ASSERT(getProperty<OUString>(getParagraph(4), "NumberingStyleName").startsWith("WWNum"));
}
+DECLARE_OOXMLEXPORT_TEST(testNumOverrideLvltext, "num-override-lvltext.docx")
+{
+ uno::Reference<container::XIndexAccess> xRules = getProperty< uno::Reference<container::XIndexAccess> >(getStyles("NumberingStyles")->getByName("WWNum1"), "NumberingRules");
+ // This was 1, i.e. the numbering on the second level was "1", not "1.1".
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), comphelper::SequenceAsHashMap(xRules->getByIndex(1))["ParentNumbering"].get<sal_Int16>());
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx
index 2d5618d179ca..af2c2e3c1967 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -614,7 +614,8 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
// Get the prefix / suffix / Parent numbering
// and add them to the level properties
OUString sText = pAbsLevel->GetBulletChar( );
- if ( pLevel.get( ) )
+ // Inherit <w:lvlText> from the abstract level in case the override would be empty.
+ if (pLevel.get() && !pLevel->GetBulletChar().isEmpty())
sText = pLevel->GetBulletChar( );
OUString sPrefix;