[Libreoffice-commits] core.git: sw/qa sw/source

Miklos Vajna vmiklos at collabora.co.uk
Thu Jan 9 08:44:46 PST 2014


 sw/qa/extras/ww8export/ww8export.cxx |   11 ++++-------
 sw/source/filter/ww8/wrtww8.cxx      |   17 ++++++++++++++++-
 sw/source/filter/ww8/ww8atr.cxx      |    1 -
 3 files changed, 20 insertions(+), 9 deletions(-)

New commits:
commit cc0943a5db55811c7cb864c1a38ccabab6ad348f
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Jan 9 17:39:02 2014 +0100

    DOC export of annotation marks
    
    Change-Id: Ib29aef7838b9d31d7956c93e1aa5b896852e4b89

diff --git a/sw/qa/extras/ww8export/ww8export.cxx b/sw/qa/extras/ww8export/ww8export.cxx
index 39f6c79..1c4a8d7 100644
--- a/sw/qa/extras/ww8export/ww8export.cxx
+++ b/sw/qa/extras/ww8export/ww8export.cxx
@@ -152,8 +152,6 @@ DECLARE_WW8EXPORT_TEST(testCharacterBorder, "charborder.odt")
 
 DECLARE_WW8EXPORT_TEST(testFdo59530, "fdo59530.doc")
 {
-#if 0
-    // FIXME port to AnnotationMarks
     // See ooxmlexport's testFdo38244().
     // Test comment range feature.
     uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
@@ -163,10 +161,10 @@ DECLARE_WW8EXPORT_TEST(testFdo59530, "fdo59530.doc")
     uno::Reference<container::XEnumeration> xRunEnum = xRunEnumAccess->createEnumeration();
     xRunEnum->nextElement();
     uno::Reference<beans::XPropertySet> xPropertySet(xRunEnum->nextElement(), uno::UNO_QUERY);
-    CPPUNIT_ASSERT_EQUAL(OUString("TextFieldStart"), getProperty<OUString>(xPropertySet, "TextPortionType"));
+    CPPUNIT_ASSERT_EQUAL(OUString("Annotation"), getProperty<OUString>(xPropertySet, "TextPortionType"));
     xRunEnum->nextElement();
     xPropertySet.set(xRunEnum->nextElement(), uno::UNO_QUERY);
-    CPPUNIT_ASSERT_EQUAL(OUString("TextFieldEnd"), getProperty<OUString>(xPropertySet, "TextPortionType"));
+    CPPUNIT_ASSERT_EQUAL(OUString("AnnotationEnd"), getProperty<OUString>(xPropertySet, "TextPortionType"));
 
     // Test initials.
     uno::Reference<text::XTextFieldsSupplier> xTextFieldsSupplier(mxComponent, uno::UNO_QUERY);
@@ -181,14 +179,13 @@ DECLARE_WW8EXPORT_TEST(testFdo59530, "fdo59530.doc")
     xRunEnum = xRunEnumAccess->createEnumeration();
     xRunEnum->nextElement();
     xPropertySet.set(xRunEnum->nextElement(), uno::UNO_QUERY);
-    CPPUNIT_ASSERT_EQUAL(OUString("TextFieldStart"), getProperty<OUString>(xPropertySet, "TextPortionType"));
+    CPPUNIT_ASSERT_EQUAL(OUString("Annotation"), getProperty<OUString>(xPropertySet, "TextPortionType"));
     // Comment ends in the third paragraph
     xRunEnumAccess.set(xParaEnum->nextElement(), uno::UNO_QUERY);
     xRunEnum = xRunEnumAccess->createEnumeration();
     xRunEnum->nextElement();
     xPropertySet.set(xRunEnum->nextElement(), uno::UNO_QUERY);
-    CPPUNIT_ASSERT_EQUAL(OUString("TextFieldEnd"), getProperty<OUString>(xPropertySet, "TextPortionType"));
-#endif
+    CPPUNIT_ASSERT_EQUAL(OUString("AnnotationEnd"), getProperty<OUString>(xPropertySet, "TextPortionType"));
 }
 
 #endif
diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx
index d8a3d92..a24cf5b 100644
--- a/sw/source/filter/ww8/wrtww8.cxx
+++ b/sw/source/filter/ww8/wrtww8.cxx
@@ -1387,8 +1387,23 @@ void WW8Export::AppendBookmarks( const SwTxtNode& rNd, sal_Int32 nAktPos, sal_In
     }
 }
 
-void WW8Export::AppendAnnotationMarks( const SwTxtNode& /*rNd*/, sal_Int32 /*nAktPos*/, sal_Int32 /*nLen*/ )
+void WW8Export::AppendAnnotationMarks(const SwTxtNode& rNode, sal_Int32 nAktPos, sal_Int32 nLen)
 {
+    std::vector<OUString> aStarts;
+    IMarkVector aMarks;
+    if (GetAnnotationMarks(rNode, nAktPos, nAktPos + nLen, aMarks))
+    {
+        for (IMarkVector::const_iterator it = aMarks.begin(), end = aMarks.end(); it != end; ++it)
+        {
+            sw::mark::IMark* pMark = (*it);
+            const sal_Int32 nStart = pMark->GetMarkStart().nContent.GetIndex();
+            if (nStart == nAktPos)
+            {
+                pAtn->AddRangeStartPosition(Fc2Cp(Strm().Tell()));
+                return;
+            }
+        }
+    }
 }
 
 void WW8Export::MoveFieldMarks(WW8_CP nFrom, WW8_CP nTo)
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index 42f1a8b..418d20d 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -2490,7 +2490,6 @@ void WW8AttributeOutput::PostitField( const SwField* pFld )
 
 void WW8AttributeOutput::WritePostitFieldStart()
 {
-    m_rWW8Export.pAtn->AddRangeStartPosition( m_rWW8Export.Fc2Cp( m_rWW8Export.Strm().Tell() ) );
 }
 
 bool WW8AttributeOutput::DropdownField( const SwField* pFld )


More information about the Libreoffice-commits mailing list