summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2016-12-09 16:27:30 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-12-13 11:44:05 +0000
commit26217b01d5630ddf63c60b4400d3a58d3c0dd789 (patch)
tree519f20b380e79ef88d09747bccc00e828f6e15cb
parentefd3115b6dfb08dcb62c93812f45574692aa59f7 (diff)
tdf#103925 RTF import: fix handling of \animtext0
Since commit ac6bfd85df271b650dbd24b45391dac346ecd72c (tdf#92045 DOCX import: <w:effect w:val="none"/> doesn't mean blinking, 2016-01-06) the "no blink" blink type is not 0, but NS_ooxml::LN_Value_ST_TextEffect_none. (cherry picked from commit c260580daa4fe78093265c1359c4d54677d76470) Change-Id: If854e57d125a365f829797f027ca5e131705e137 Reviewed-on: https://gerrit.libreoffice.org/31899 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r--sw/qa/extras/rtfexport/data/tdf103925.rtf1
-rw-r--r--sw/qa/extras/rtfexport/rtfexport.cxx6
-rw-r--r--writerfilter/source/rtftok/rtfdispatchvalue.cxx20
3 files changed, 24 insertions, 3 deletions
diff --git a/sw/qa/extras/rtfexport/data/tdf103925.rtf b/sw/qa/extras/rtfexport/data/tdf103925.rtf
new file mode 100644
index 000000000000..91183fafea0c
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/tdf103925.rtf
@@ -0,0 +1 @@
+{\rtf1 \animtext0 This is not blinking.\par }
diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx
index 37e9ba71a099..84496ac2c775 100644
--- a/sw/qa/extras/rtfexport/rtfexport.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport.cxx
@@ -1111,6 +1111,12 @@ DECLARE_RTFEXPORT_TEST(testTdf61901, "tdf61901.rtf")
}
}
+DECLARE_RTFEXPORT_TEST(testTdf103925, "tdf103925.rtf")
+{
+ // This was true, \animtext0 resulted in setting the blinking font effect.
+ CPPUNIT_ASSERT_EQUAL(false, getProperty<bool>(getRun(getParagraph(1), 1), "CharFlash"));
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/rtftok/rtfdispatchvalue.cxx b/writerfilter/source/rtftok/rtfdispatchvalue.cxx
index 0a77075a8f7c..4c1d217f4f68 100644
--- a/writerfilter/source/rtftok/rtfdispatchvalue.cxx
+++ b/writerfilter/source/rtftok/rtfdispatchvalue.cxx
@@ -154,9 +154,6 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
nSprm = (m_aStates.top().isRightToLeft || m_aStates.top().eRunType == RTFParserState::RunType::HICH)
? NS_ooxml::LN_EG_RPrBase_szCs : NS_ooxml::LN_EG_RPrBase_sz;
break;
- case RTF_ANIMTEXT:
- nSprm = NS_ooxml::LN_EG_RPrBase_effect;
- break;
case RTF_EXPNDTW:
nSprm = NS_ooxml::LN_EG_RPrBase_spacing;
break;
@@ -1406,6 +1403,23 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
case RTF_TRWWIDTHA:
m_aStates.top().nTableRowWidthAfter = nParam;
break;
+ case RTF_ANIMTEXT:
+ {
+ nId = 0;
+ switch (nParam)
+ {
+ case 0:
+ nId = NS_ooxml::LN_Value_ST_TextEffect_none;
+ break;
+ case 2:
+ nId = NS_ooxml::LN_Value_ST_TextEffect_blinkBackground;
+ break;
+ }
+
+ if (nId > 0)
+ m_aStates.top().aCharacterSprms.set(NS_ooxml::LN_EG_RPrBase_effect, std::make_shared<RTFValue>(nId));
+ break;
+ }
default:
{
SAL_INFO("writerfilter", "TODO handle value '" << keywordToString(nKeyword) << "'");