From d9f0c19edde7cb28086860ea6b3519be0d49a3e0 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Wed, 19 Nov 2014 17:25:04 +0100 Subject: DOCX import: handle without Change-Id: I0b941bd7a733408655db192b8608ed3987b9c1fc --- sw/qa/extras/ooxmlexport/data/num-override-lvltext.docx | Bin 0 -> 13625 bytes sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 7 +++++++ writerfilter/source/dmapper/NumberingManager.cxx | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 sw/qa/extras/ooxmlexport/data/num-override-lvltext.docx 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 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/num-override-lvltext.docx 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(getParagraph(4), "NumberingStyleName").startsWith("WWNum")); } +DECLARE_OOXMLEXPORT_TEST(testNumOverrideLvltext, "num-override-lvltext.docx") +{ + uno::Reference xRules = getProperty< uno::Reference >(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()); +} + 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 from the abstract level in case the override would be empty. + if (pLevel.get() && !pLevel->GetBulletChar().isEmpty()) sText = pLevel->GetBulletChar( ); OUString sPrefix; -- cgit v1.2.3