Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Hi,

See
http://cgit.freedesktop.org/libreoffice/core/commit/?id=629001d

Regression from 3.4; backported patch attached.
(Also on gerrit: https://gerrit.libreoffice.org/228)

Thanks,

Miklos
From 3b7c3ede59b0cdd7ff739c94c17382002f41b687 Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@suse.cz>
Date: Fri, 15 Jun 2012 16:15:07 +0200
Subject: [PATCH] fdo#50087 fix RTF import of Title, Subject, Comments
 document properties

Change-Id: I3358fad4949c2c21ecf63983a36b7c8428df9f06
---
 writerfilter/source/rtftok/rtfdocumentimpl.cxx |   18 ++++++++++++++++++
 writerfilter/source/rtftok/rtfdocumentimpl.hxx |    5 ++++-
 2 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx 
b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 361ad89..e293599 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -1019,6 +1019,9 @@ void RTFDocumentImpl::text(OUString& rString)
         case DESTINATION_FALT:
         case DESTINATION_PARAGRAPHNUMBERING_TEXTAFTER:
         case DESTINATION_PARAGRAPHNUMBERING_TEXTBEFORE:
+        case DESTINATION_TITLE:
+        case DESTINATION_SUBJECT:
+        case DESTINATION_DOCCOMM:
             m_aStates.top().aDestinationText.append(rString);
             break;
         case DESTINATION_EQINSTRUCTION:
@@ -1442,6 +1445,15 @@ int RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword)
         case RTF_PNTXTB:
             m_aStates.top().nDestinationState = DESTINATION_PARAGRAPHNUMBERING_TEXTBEFORE;
             break;
+        case RTF_TITLE:
+            m_aStates.top().nDestinationState = DESTINATION_TITLE;
+            break;
+        case RTF_SUBJECT:
+            m_aStates.top().nDestinationState = DESTINATION_SUBJECT;
+            break;
+        case RTF_DOCCOMM:
+            m_aStates.top().nDestinationState = DESTINATION_DOCCOMM;
+            break;
         default:
 #if OSL_DEBUG_LEVEL > 1
             OSL_TRACE("%s: TODO handle destination '%s'", OSL_THIS_FUNC, 
lcl_RtfToString(nKeyword));
@@ -3301,6 +3313,12 @@ int RTFDocumentImpl::popState()
         
m_xDocumentProperties->setKeywords(comphelper::string::convertCommaSeparated(m_aStates.top().aDestinationText.makeStringAndClear()));
     else if (m_aStates.top().nDestinationState == DESTINATION_COMMENT && 
m_xDocumentProperties.is())
         m_xDocumentProperties->setGenerator(m_aStates.top().aDestinationText.makeStringAndClear());
+    else if (m_aStates.top().nDestinationState == DESTINATION_TITLE && m_xDocumentProperties.is())
+        m_xDocumentProperties->setTitle(m_aStates.top().aDestinationText.makeStringAndClear());
+    else if (m_aStates.top().nDestinationState == DESTINATION_SUBJECT && 
m_xDocumentProperties.is())
+        m_xDocumentProperties->setSubject(m_aStates.top().aDestinationText.makeStringAndClear());
+    else if (m_aStates.top().nDestinationState == DESTINATION_DOCCOMM && 
m_xDocumentProperties.is())
+        
m_xDocumentProperties->setDescription(m_aStates.top().aDestinationText.makeStringAndClear());
     else if (m_aStates.top().nDestinationState == DESTINATION_OPERATOR
             || m_aStates.top().nDestinationState == DESTINATION_COMPANY)
     {
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx 
b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
index aa2f756..d7347e4 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
@@ -114,7 +114,10 @@ namespace writerfilter {
             DESTINATION_DRAWINGOBJECT,
             DESTINATION_PARAGRAPHNUMBERING,
             DESTINATION_PARAGRAPHNUMBERING_TEXTBEFORE,
-            DESTINATION_PARAGRAPHNUMBERING_TEXTAFTER
+            DESTINATION_PARAGRAPHNUMBERING_TEXTAFTER,
+            DESTINATION_TITLE,
+            DESTINATION_SUBJECT,
+            DESTINATION_DOCCOMM
 
         };
 
-- 
1.7.7


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.