[Libreoffice-commits] core.git: 2 commits - sw/qa sw/source writerfilter/source
Miklos Vajna
vmiklos at collabora.co.uk
Mon Apr 20 01:59:37 PDT 2015
sw/qa/extras/rtfexport/data/hyphpar.rtf | 5 +++++
sw/qa/extras/rtfexport/rtfexport.cxx | 6 ++++++
sw/source/filter/ww8/rtfattributeoutput.cxx | 16 ++--------------
writerfilter/source/rtftok/rtfdocumentimpl.cxx | 3 +++
4 files changed, 16 insertions(+), 14 deletions(-)
New commits:
commit a2fea109e6454b10e8e85148b93bdca89066fe8d
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Mon Apr 20 10:21:12 2015 +0200
RtfAttributeOutput::ParaHyphenZone: use \hyphpar
Previously SvxHyphenZoneItem was serialized to some custom RTF extension
that even our own RTF import ignores since LO 3.5.
Change-Id: Ia99d9750ad0b1a07105eeef2bee07e6fdbfe7876
diff --git a/sw/qa/extras/rtfexport/data/hyphpar.rtf b/sw/qa/extras/rtfexport/data/hyphpar.rtf
new file mode 100644
index 0000000..762392e
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/hyphpar.rtf
@@ -0,0 +1,5 @@
+{\rtf1\hyphauto1
+\pard\plain AAA\par
+\pard\plain\hyphpar0 BBB\par
+\pard\plain CCC\par
+}
diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx
index dc1107a..47a91db 100644
--- a/sw/qa/extras/rtfexport/rtfexport.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport.cxx
@@ -872,6 +872,12 @@ DECLARE_RTFEXPORT_TEST(testHyphauto, "hyphauto.rtf")
CPPUNIT_ASSERT_EQUAL(true, getProperty<bool>(getParagraph(1), "ParaIsHyphenation"));
}
+DECLARE_RTFEXPORT_TEST(testHyphpar, "hyphpar.rtf")
+{
+ // Hyphenation was enabled for all 3 paragraphs, but it should be disabled for the 2nd one.
+ CPPUNIT_ASSERT_EQUAL(false, getProperty<bool>(getParagraph(2), "ParaIsHyphenation"));
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 4f7ce74..c05aacf 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -2663,20 +2663,8 @@ void RtfAttributeOutput::ParaTabStop(const SvxTabStopItem& rTabStop)
void RtfAttributeOutput::ParaHyphenZone(const SvxHyphenZoneItem& rHyphenZone)
{
- sal_Int32 nFlags = rHyphenZone.IsHyphen() ? 1 : 0;
- if (rHyphenZone.IsPageEnd())
- nFlags += 2;
- m_aStyles.append('{');
- m_aStyles.append(OOO_STRING_SVTOOLS_RTF_IGNORE);
- m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HYPHEN);
- m_aStyles.append((sal_Int32)nFlags);
- m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HYPHLEAD);
- m_aStyles.append((sal_Int32)rHyphenZone.GetMinLead());
- m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HYPHTRAIL);
- m_aStyles.append((sal_Int32)rHyphenZone.GetMinTrail());
- m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HYPHMAX);
- m_aStyles.append((sal_Int32)rHyphenZone.GetMaxHyphens());
- m_aStyles.append('}');
+ m_aStyles.append(OOO_STRING_SVTOOLS_RTF_HYPHPAR);
+ m_aStyles.append(int(rHyphenZone.IsHyphen()));
}
void RtfAttributeOutput::ParaNumRule_Impl(const SwTxtNode* pTxtNd, sal_Int32 nLvl, sal_Int32 nNumId)
commit a3ec386c2283a196f8d9f1edd0ff97c38ddb281a
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Mon Apr 20 10:14:19 2015 +0200
RTF import: handle \hyphpar
Change-Id: I2a1d0e194af6eb5fb865d3ed26712eed09a3b28f
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index dd873fe..d8e5d6a 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -4890,6 +4890,9 @@ RTFError RTFDocumentImpl::dispatchToggle(RTFKeyword nKeyword, bool bParam, int n
case RTF_HYPHAUTO:
m_aSettingsTableSprms.set(NS_ooxml::LN_CT_Settings_autoHyphenation, pBoolValue);
break;
+ case RTF_HYPHPAR:
+ m_aStates.top().aParagraphSprms.set(NS_ooxml::LN_CT_PPrBase_suppressAutoHyphens, std::make_shared<RTFValue>(int(bParam && nParam == 0)));
+ break;
default:
{
SAL_INFO("writerfilter", "TODO handle toggle '" << lcl_RtfToString(nKeyword) << "'");
More information about the Libreoffice-commits
mailing list