summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorJustin Luth <justin_luth@sil.org>2022-01-04 15:36:35 +0200
committerJustin Luth <jluth@mail.com>2022-01-05 11:35:55 +0100
commit411cc8af8490ba307245c689ed5714f612bb9d6f (patch)
tree086a38ddb0716077917c98772f0ef5afffb7bc82 /sw
parent6f9278886eec76fdba19e2763c194fc129a2a42e (diff)
tdf#146489 writerfilter: ensure only character properties
This is another RTF regression found against LO 6.0's commit fdfdea4d5af51a68f2d497cc5c3359d74c385fd5 tdf#82173 writerfilter: apply char properties to footnote The original commit in LO 6.0 intended that only character properties were used. A follow-up commit for RTF tried to ensure that these would be on the top of the stack. However, in this case, it seems like somehow the table is getting involved in putting the paragraph context on the top. (Actually, there is no GetTopContextOfType(CONTEXT_CHARACTER) at all.) In any case, aFontProperties should only contain character properties, so ensure that. The unit test shows that there is still some kind of import problem, because the footnote marker should be a large, red character, but it is just normal text. See tdf#108949. Change-Id: I1ea7256891b198046f79f0d3a36e43d6c2ae3383 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127943 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com> (cherry picked from commit 44c37c4af2d23d1469cdeeb56f2f5a2bef493986) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127954
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/extras/rtfexport/data/tdf146489.rtf56
-rw-r--r--sw/qa/extras/rtfexport/rtfexport4.cxx6
2 files changed, 62 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfexport/data/tdf146489.rtf b/sw/qa/extras/rtfexport/data/tdf146489.rtf
new file mode 100644
index 000000000000..d8e198114052
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/tdf146489.rtf
@@ -0,0 +1,56 @@
+{\rtf1\ansi\deff3\adeflang1025
+{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq2\fcharset0 DejaVu Sans;}{\f6\fswiss\fprq0\fcharset0 FreeSans;}{\f7\fnil\fprq2\fcharset0 FreeSans;}}
+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red201\green33\blue30;\red255\green233\blue148;}
+{\stylesheet{\s0\snext0\rtlch\af7\afs24\alang1081 \ltrch\lang1033\langfe2052\hich\af3\loch\widctlpar\hyphpar0\aspalpha\ltrpar\cf0\f3\fs24\lang1033\kerning1\dbch\af5\langfe2052 Normal;}
+{\*\cs15\snext15 Numbering Symbols;}
+{\*\cs16\snext16\loch\super Footnote Anchor;}
+{\*\cs17\snext17 Footnote Characters;}
+{\*\cs18\snext18\loch\super Endnote Anchor;}
+{\*\cs19\snext19 Endnote Characters;}
+{\s20\sbasedon0\snext21\rtlch\af7\afs28 \ltrch\hich\af4\loch\sb240\sa120\keepn\f4\fs28\dbch\af5 Heading;}
+{\s21\sbasedon0\snext21\loch\sl276\slmult1\sb0\sa140 Text Body;}
+{\s22\sbasedon21\snext22\rtlch\af6 \ltrch\loch\sl276\slmult1\sb0\sa140 List;}
+{\s23\sbasedon0\snext23\rtlch\af6\afs24\ai \ltrch\loch\sb120\sa120\noline\fs24\i Caption;}
+{\s24\sbasedon0\snext24\rtlch\af6\alang255 \ltrch\lang255\langfe255\loch\noline\lang255\dbch\langfe255 Index;}
+{\s25\sbasedon0\snext25\loch\nowidctlpar\noline Table Contents;}
+{\s26\sbasedon0\snext26\rtlch\afs20 \ltrch\loch\li340\ri0\lin340\rin0\fi-340\noline\fs20 Footnote;}
+}{\*\listtable{\list\listtemplateid1
+{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'00.;}{\levelnumbers\'01;}\fi-360\li720}
+{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\fi-360\li1080}
+{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\fi-360\li1440}
+{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\fi-360\li1800}
+{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\fi-360\li2160}
+{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\fi-360\li2520}
+{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\fi-360\li2880}
+{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'07.;}{\levelnumbers\'01;}\fi-360\li3240}
+{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'08.;}{\levelnumbers\'01;}\fi-360\li3600}\listid1}
+{\list\listtemplateid2
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}
+{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}\listid2}
+}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}}{\*\generator LibreOfficeDev/7.4.0.0.alpha0$Linux_X86_64 LibreOffice_project/9f5188173a4a37a9d41ee90a5555874f1f17136e}{\info{\creatim\yr2022\mo1\dy4\hr20\min1}{\revtim\yr2022\mo1\dy5\hr8\min9}{\printim\yr0\mo0\dy0\hr0\min0}}{\*\userprops}\deftab709
+\hyphauto1\viewscale170
+{\*\pgdsctbl
+{\pgdsc0\pgdscuse451\lndscpsxn\pgwsxn8391\pghsxn5953\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default Page Style;}}
+\formshade\landscape\paperh5953\paperw8391\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgndec\sftnnar\saftnnrlc\sectunlocked1\lndscpsxn\pgwsxn8391\pghsxn5953\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
+{\*\ftnsep\chftnsep}\trowd\trql\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\cellx3061\cellx6123\pgndec\loch\ql\ltrpar\pard\plain \s25\loch\nowidctlpar\noline\loch\intbl{\listtext\pard\plain 1.\tab}\ilvl0\ls1 \li720\ri0\lin720\rin0\fi-360\ql\ltrpar{\loch
+numbered}{{\super \rtlch\afs96\ab \ltrch\loch\cf17\fs96\b\loch \chftn{\*\footnote \chftn\pard\plain \s26\rtlch\afs20 \ltrch\loch\li340\ri0\lin340\rin0\fi-340\noline\fs20{\rtlch\afs28 \ltrch\loch\fs28\chcbpat18\loch
+\tab Footnote }{\rtlch\afs28 \ltrch\loch\fs28\chcbpat18\loch
+caller in body text is large, red color.}
+}}
+}{\rtlch\afs96\ab \ltrch\loch\cf17\fs96\b\loch
+ }{\loch
+para}
+\par \pard\plain \s25\loch\nowidctlpar\noline\loch\intbl\ql\ltrpar\loch
+\cell\pard\plain \s25\loch\nowidctlpar\noline\loch\intbl\ql\nowidctlpar\noline\ltrpar\loch
+\cell\row\pard\trowd\trql\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\cellx3061\cellx6123\pard\plain \s25\loch\nowidctlpar\noline\loch\intbl\ql\nowidctlpar\noline\ltrpar\loch
+\cell\pard\plain \s25\loch\nowidctlpar\noline\loch\intbl\ql\nowidctlpar\noline\ltrpar\loch
+\cell\row\pard\pard\plain \s0\rtlch\af7\afs24\alang1081 \ltrch\lang1033\langfe2052\hich\af3\loch\widctlpar\hyphpar0\aspalpha\ltrpar\cf0\f3\fs24\lang1033\kerning1\dbch\af5\langfe2052\loch\ql\ltrpar{\loch
+unnumbered}
+\par } \ No newline at end of file
diff --git a/sw/qa/extras/rtfexport/rtfexport4.cxx b/sw/qa/extras/rtfexport/rtfexport4.cxx
index 66dda7f8500c..edee77a348fd 100644
--- a/sw/qa/extras/rtfexport/rtfexport4.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport4.cxx
@@ -218,6 +218,12 @@ CPPUNIT_TEST_FIXTURE(Test, testTabStopFillChars)
CPPUNIT_ASSERT_EQUAL(u' ', aTabstops[0].FillChar);
}
+DECLARE_RTFEXPORT_TEST(testTdf146489, "tdf146489.rtf")
+{
+ uno::Reference<text::XTextRange> xPara = getParagraph(2, "unnumbered");
+ CPPUNIT_ASSERT_EQUAL(OUString(), getProperty<OUString>(xPara, "ListLabelString"));
+}
+
DECLARE_RTFEXPORT_TEST(testCjklist38, "cjklist38.rtf")
{
sal_Int16 numFormat = getNumberingTypeOfParagraph(1);