[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