sw/qa/extras/ww8import/data/fdo36868.doc |binary sw/qa/extras/ww8import/ww8import.cxx | 9 +++++++++ sw/source/filter/ww8/ww8par3.cxx | 9 ++------- 3 files changed, 11 insertions(+), 7 deletions(-)
New commits: commit 74904ca6b083f16074e1c5b60729890fc972ad42 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Oct 15 15:17:09 2013 +0200 fdo#36868 WW8 import: allow outline numbering and list style in the same ... .. paragraph style The original problem (from a user's point of view) was that the second level of the numbering started from 1.1 instead of 2.1 in the bugdoc. This was fixed by using outline numbering for level 2 as well, but this is problematic in many cases: we want to have outline numbering exactly when outline numbering is enabled for the given paragraph style. So revert the change in SwWW8ImplReader::SetStylesList() and fix it differently: SwWW8ImplReader::RegisterNumFmtOnStyle() explicitly ignores list style if outline numbering is available with no good reason. Both the WW8 format and Writer core allows to have outline numbering and a list style at the same time, so set list style even when outline numbering is available. This fixes the original issue, too -- without introducing nasty fake outline numbering usage. Also add a testcase for the original issue. (regression from e3d5c3e0746916c4056389dd8c2daa6c451c8f6e) Change-Id: Id7d2d67a96a858aee3230110cb518fea51d19d38 diff --git a/sw/qa/extras/ww8import/data/fdo36868.doc b/sw/qa/extras/ww8import/data/fdo36868.doc new file mode 100644 index 0000000..382c6b2 Binary files /dev/null and b/sw/qa/extras/ww8import/data/fdo36868.doc differ diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx index c61c9ed..79fc470 100644 --- a/sw/qa/extras/ww8import/ww8import.cxx +++ b/sw/qa/extras/ww8import/ww8import.cxx @@ -35,6 +35,7 @@ public: void testN816593(); void testPageBorder(); void testN823651(); + void testFdo36868(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -62,6 +63,7 @@ void Test::run() {"n816593.doc", &Test::testN816593}, {"page-border.doc", &Test::testPageBorder}, {"n823651.doc", &Test::testN823651}, + {"fdo36868.doc", &Test::testFdo36868}, }; header(); for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) @@ -285,6 +287,13 @@ void Test::testN823651() CPPUNIT_ASSERT_EQUAL(7.5f, getProperty<float>(getParagraphOfText(1, xText), "CharHeight")); } +void Test::testFdo36868() +{ + OUString aText = parseDump("/root/page/body/txt[3]/Special[@nType='POR_NUMBER']", "rText"); + // This was 1.1. + CPPUNIT_ASSERT_EQUAL(OUString("2.1"), aText); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx index e7b0b40..80195fa 100644 --- a/sw/source/filter/ww8/ww8par3.cxx +++ b/sw/source/filter/ww8/ww8par3.cxx @@ -1741,8 +1741,6 @@ void SwWW8ImplReader::SetStylesList(sal_uInt16 nStyle, sal_uInt16 nActLFO, { rStyleInf.nLFOIndex = nActLFO; rStyleInf.nListLevel = nActLevel; - if (nActLevel > 0) // it must be an outline list - rStyleInf.nOutlineLevel = nActLevel; if ( (USHRT_MAX > nActLFO) && @@ -1791,12 +1789,9 @@ void SwWW8ImplReader::RegisterNumFmtOnStyle(sal_uInt16 nStyle) { if( MAXLEVEL > rStyleInf.nOutlineLevel ) rStyleInf.pOutlineNumrule = pNmRule; - else - { - rStyleInf.pFmt->SetFmtAttr( + rStyleInf.pFmt->SetFmtAttr( SwNumRuleItem( pNmRule->GetName() ) ); - rStyleInf.bHasStyNumRule = true; - } + rStyleInf.bHasStyNumRule = true; } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits