[Libreoffice-commits] core.git: Branch 'private/Rosemary/change-tracking' - 2 commits - sw/inc sw/source xmloff/source

Rosemary Sebastian rosemaryseb8 at gmail.com
Thu Jun 16 20:14:01 UTC 2016


 sw/inc/unoprnms.hxx                         |    5 +++--
 sw/source/core/unocore/unomapproperties.hxx |    4 ++--
 sw/source/core/unocore/unoredline.cxx       |   25 +++++++++++++++++++++----
 xmloff/source/text/XMLRedlineExport.cxx     |   26 +++++++++++++++++++-------
 xmloff/source/text/XMLRedlineExport.hxx     |    1 +
 xmloff/source/text/txtparae.cxx             |    5 ++++-
 6 files changed, 50 insertions(+), 16 deletions(-)

New commits:
commit edd64d4304cdf6f18af08e573d0fa952391c7552
Author: Rosemary Sebastian <rosemaryseb8 at gmail.com>
Date:   Fri Jun 17 01:41:44 2016 +0530

    WIP Get change-tracking information
    
    Change-Id: I33982d37ec6b04c1325be5f03455df35d9eaaebe

diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx
index 3683ab4..83b0a7a 100644
--- a/sw/inc/unoprnms.hxx
+++ b/sw/inc/unoprnms.hxx
@@ -540,8 +540,8 @@
 #define UNO_NAME_REDLINE_SUCCESSOR_DATA "RedlineSuccessorData"
 #define UNO_NAME_REDLINE_IDENTIFIER "RedlineIdentifier"
 #define UNO_NAME_IS_IN_HEADER_FOOTER "IsInHeaderFooter"
-#define UNO_NAME_START "Start"
-#define UNO_NAME_END "End"
+#define UNO_NAME_REDLINE_UNDO_START "RedlineUndoStart"
+#define UNO_NAME_REDLINE_UNDO_END "RedlineUndoEnd"
 #define UNO_NAME_REDLINE_ELEMENT_TYPE "RedlineElementType"
 #define UNO_NAME_START_REDLINE "StartRedline"
 #define UNO_NAME_END_REDLINE "EndRedline"
diff --git a/sw/source/core/unocore/unomapproperties.hxx b/sw/source/core/unocore/unomapproperties.hxx
index bc2851f..e10b7d8 100644
--- a/sw/source/core/unocore/unomapproperties.hxx
+++ b/sw/source/core/unocore/unomapproperties.hxx
@@ -74,8 +74,8 @@
     {OUString(UNO_NAME_IS_IN_HEADER_FOOTER), 0, cppu::UnoType<bool>::get(),                             PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY, 0},\
     {OUString(UNO_NAME_REDLINE_TEXT), 0, cppu::UnoType<css::text::XText>::get(),                    PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY,   0},\
     {OUString(UNO_NAME_MERGE_LAST_PARA), 0, cppu::UnoType<bool>::get(),                             PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY, 0},\
-    {OUString(UNO_NAME_START), 0, cppu::UnoType<bool>::get(),                             PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY, 0},\
-    {OUString(UNO_NAME_END), 0, cppu::UnoType<bool>::get(),                               PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY, 0},
+    {OUString(UNO_NAME_REDLINE_UNDO_START), 0, cppu::UnoType<bool>::get(),                             PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY, 0},\
+    {OUString(UNO_NAME_REDLINE_UNDO_END), 0, cppu::UnoType<bool>::get(),                               PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY, 0},
 #define COMMON_CRSR_PARA_PROPERTIES_FN_ONLY \
         { OUString(UNO_NAME_PARA_STYLE_NAME), FN_UNO_PARA_STYLE,        cppu::UnoType<OUString>::get(),                PropertyAttribute::MAYBEVOID,     0},                                                       \
         { OUString(UNO_NAME_PAGE_STYLE_NAME), FN_UNO_PAGE_STYLE,        cppu::UnoType<OUString>::get(),         PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY,   0},                       \
diff --git a/sw/source/core/unocore/unoredline.cxx b/sw/source/core/unocore/unoredline.cxx
index 3a93bed..0f8d115 100644
--- a/sw/source/core/unocore/unoredline.cxx
+++ b/sw/source/core/unocore/unoredline.cxx
@@ -311,13 +311,18 @@ uno::Any  SwXRedlinePortion::GetPropertyValue( const OUString& rPropertyName, co
     }
     else if (rPropertyName == UNO_NAME_REDLINE_ELEMENT_TYPE)
     {
-        OUString sElementType = "paragraph";
-        aRet <<= sElementType;
+        SwNodeIndex* pNodeIdx = rRedline.GetContentIdx();
+        if ( 2 < ( pNodeIdx->GetNode().EndOfSectionIndex() - pNodeIdx->GetNode().GetIndex() ) )
+            aRet <<= OUString("paragraph");
+        else
+            aRet <<= OUString("text");
     }
-    else if (rPropertyName == UNO_NAME_START || rPropertyName == UNO_NAME_END)
+    else if (rPropertyName == UNO_NAME_REDLINE_UNDO_START || rPropertyName == UNO_NAME_REDLINE_UNDO_END)
     {
-           sal_Int32 nStart(COMPLETE_STRING), nEnd(COMPLETE_STRING);
-           if(rPropertyName == UNO_NAME_START)
+        sal_Int32 nStart, nEnd;
+           SwNodeIndex* pNodeIdx = rRedline.GetContentIdx();
+           rRedline.CalcStartEnd(pNodeIdx->GetNode().GetIndex(), nStart, nEnd);
+           if(rPropertyName == UNO_NAME_REDLINE_UNDO_START)
                aRet <<= nStart;
            else
                aRet <<= nEnd;
@@ -328,7 +333,7 @@ uno::Any  SwXRedlinePortion::GetPropertyValue( const OUString& rPropertyName, co
 uno::Sequence< beans::PropertyValue > SwXRedlinePortion::CreateRedlineProperties(
     const SwRangeRedline& rRedline, bool bIsStart ) throw()
 {
-    uno::Sequence< beans::PropertyValue > aRet(11);
+    uno::Sequence< beans::PropertyValue > aRet(13);
     const SwRedlineData* pNext = rRedline.GetRedlineData().Next();
     beans::PropertyValue* pRet = aRet.getArray();
 
@@ -364,6 +369,10 @@ uno::Sequence< beans::PropertyValue > SwXRedlinePortion::CreateRedlineProperties
             uno::Reference<text::XText> xRet = new SwXRedlineText(rRedline.GetDoc(), *pNodeIdx);
             pRet[nPropIdx].Name = UNO_NAME_REDLINE_TEXT;
             pRet[nPropIdx++].Value <<= xRet;
+            pRet[nPropIdx].Name = UNO_NAME_REDLINE_UNDO_START;
+            pRet[nPropIdx++].Value <<= pNodeIdx->GetNode().GetIndex();
+            pRet[nPropIdx].Name = UNO_NAME_REDLINE_UNDO_END;
+            pRet[nPropIdx++].Value <<= pNodeIdx->GetNode().EndOfSectionIndex();
         }
         else {
             OSL_FAIL("Empty section in redline portion! (end node immediately follows start node)");
diff --git a/xmloff/source/text/XMLRedlineExport.cxx b/xmloff/source/text/XMLRedlineExport.cxx
index 5bc629c..1d085b8 100644
--- a/xmloff/source/text/XMLRedlineExport.cxx
+++ b/xmloff/source/text/XMLRedlineExport.cxx
@@ -19,6 +19,7 @@
 
 #include "XMLRedlineExport.hxx"
 #include <tools/debug.hxx>
+#include <tools/solar.h>
 #include <rtl/ustring.hxx>
 #include <rtl/ustrbuf.hxx>
 #include <com/sun/star/beans/XPropertySet.hpp>
@@ -335,19 +336,21 @@ void XMLRedlineExport::ExportChangedRegion(
         aAny = rPropSet->getPropertyValue(sRedlineType);
         OUString sType;
         aAny >>= sType;
-        XMLTokenEnum eChangeType = XML_PARAGRAPH;
-        sal_uInt16 nParagraphIdx = 2, nCharStart, nCharEnd;
-        rPropSet->getPropertyValue("Start") >>= nCharStart;
-        rPropSet->getPropertyValue("End") >>= nCharEnd;
-        aAny = rPropSet->getPropertyValue(sRedlineElementType);
+
+        sal_Int16 nParagraphIdx = 2, nCharStart, nCharEnd;
+        rPropSet->getPropertyValue("RedlineUndoStart") >>= nCharStart;
+        rPropSet->getPropertyValue("RedlineUndoEnd") >>= nCharEnd;
+
+        XMLTokenEnum eElementType = XML_PARAGRAPH;
         OUString sElementType;
+        aAny = rPropSet->getPropertyValue(sRedlineElementType);
         aAny >>= sElementType;
-        if( sElementType == "text" )
-            eChangeType = XML_TEXT;
-        OUString sParagraphIdx = "2", sCharStart, sCharEnd;
-        rPropSet->getPropertyValue("Start") >>= sCharStart;
-        rPropSet->getPropertyValue("End") >>= sCharEnd;
-        if(eChangeType == XML_PARAGRAPH)
+
+        if( sType == sFormat )
+            eElementType = XML_FORMAT_CHANGE;
+        else if( sElementType == "text" )
+            eElementType = XML_TEXT;
+        if(eElementType == XML_PARAGRAPH)
         {
             rExport.AddAttribute(XML_NAMESPACE_C, XML_START, "/" + rtl::OUString::number(nParagraphIdx));
             rExport.AddAttribute(XML_NAMESPACE_DC, XML_TYPE, XML_PARAGRAPH);
@@ -355,9 +358,9 @@ void XMLRedlineExport::ExportChangedRegion(
         else
         {
             rExport.AddAttribute(XML_NAMESPACE_C, XML_START, "/" + rtl::OUString::number(nParagraphIdx) + "/" + rtl::OUString::number(nCharStart));
-            if( sType == sInsert )
+            if( sType == sInsert || sType == sFormat )
                 rExport.AddAttribute(XML_NAMESPACE_C, XML_END, "/" + rtl::OUString::number(nParagraphIdx) + "/" + rtl::OUString::number(nCharEnd));
-            rExport.AddAttribute(XML_NAMESPACE_DC, XML_TYPE, eChangeType);
+            rExport.AddAttribute(XML_NAMESPACE_DC, XML_TYPE, eElementType);
         }
         SvXMLElementExport aChange(rExport, XML_NAMESPACE_TEXT,
                                    ConvertTypeName(sType), true, true);
diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx
index ba08a55..d64165e 100644
--- a/xmloff/source/text/txtparae.cxx
+++ b/xmloff/source/text/txtparae.cxx
@@ -3050,8 +3050,10 @@ void XMLTextParagraphExport::_exportTextGraphic(
     OUString sAutoStyle( sStyle );
     sAutoStyle = Find( XML_STYLE_FAMILY_TEXT_FRAME, rPropSet, sStyle );
     if( !sAutoStyle.isEmpty() )
+    {
         GetExport().AddAttribute( XML_NAMESPACE_DRAW, XML_STYLE_NAME,
                                   GetExport().EncodeStyleName( sAutoStyle ) );
+    }
     addTextFrameAttributes( rPropSet, false );
 
     // svg:transform
@@ -3291,8 +3293,10 @@ bool XMLTextParagraphExport::addHyperlinkAttributes(
                                       XML_SERVER_MAP, XML_TRUE );
 
         if( !sUStyleName.isEmpty() )
+        {
             GetExport().AddAttribute( XML_NAMESPACE_TEXT,
               XML_STYLE_NAME, GetExport().EncodeStyleName( sUStyleName ) );
+        }
 
         if( !sVStyleName.isEmpty() )
             GetExport().AddAttribute( XML_NAMESPACE_TEXT,
@@ -3456,7 +3460,6 @@ void XMLTextParagraphExport::exportText( const OUString& rText,
 
             SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT,
                                       XML_S, false, false );
-
             nSpaceChars = 0;
         }
 
commit 68a5a2baf0dce91569514edac2282d8da85fcb50
Author: Rosemary Sebastian <rosemaryseb8 at gmail.com>
Date:   Thu Jun 16 12:14:21 2016 +0530

    Store changed element type
    
    Change-Id: I7ab24494e6545cd5392c4507d3b469d0e78f357c

diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx
index c3e9853..3683ab4 100644
--- a/sw/inc/unoprnms.hxx
+++ b/sw/inc/unoprnms.hxx
@@ -542,6 +542,7 @@
 #define UNO_NAME_IS_IN_HEADER_FOOTER "IsInHeaderFooter"
 #define UNO_NAME_START "Start"
 #define UNO_NAME_END "End"
+#define UNO_NAME_REDLINE_ELEMENT_TYPE "RedlineElementType"
 #define UNO_NAME_START_REDLINE "StartRedline"
 #define UNO_NAME_END_REDLINE "EndRedline"
 #define UNO_NAME_REDLINE_START "RedlineStart"
diff --git a/sw/source/core/unocore/unoredline.cxx b/sw/source/core/unocore/unoredline.cxx
index 367cd9a..3a93bed 100644
--- a/sw/source/core/unocore/unoredline.cxx
+++ b/sw/source/core/unocore/unoredline.cxx
@@ -309,6 +309,11 @@ uno::Any  SwXRedlinePortion::GetPropertyValue( const OUString& rPropertyName, co
     {
         aRet <<= !rRedline.IsDelLastPara();
     }
+    else if (rPropertyName == UNO_NAME_REDLINE_ELEMENT_TYPE)
+    {
+        OUString sElementType = "paragraph";
+        aRet <<= sElementType;
+    }
     else if (rPropertyName == UNO_NAME_START || rPropertyName == UNO_NAME_END)
     {
            sal_Int32 nStart(COMPLETE_STRING), nEnd(COMPLETE_STRING);
@@ -348,6 +353,9 @@ uno::Sequence< beans::PropertyValue > SwXRedlinePortion::CreateRedlineProperties
     pRet[nPropIdx].Name = UNO_NAME_MERGE_LAST_PARA;
     pRet[nPropIdx++].Value <<= !rRedline.IsDelLastPara();
 
+    pRet[nPropIdx].Name = UNO_NAME_REDLINE_ELEMENT_TYPE;
+    pRet[nPropIdx++].Value <<= OUString("paragraph");
+
     SwNodeIndex* pNodeIdx = rRedline.GetContentIdx();
     if(pNodeIdx )
     {
diff --git a/xmloff/source/text/XMLRedlineExport.cxx b/xmloff/source/text/XMLRedlineExport.cxx
index 1e3ad9f..5bc629c 100644
--- a/xmloff/source/text/XMLRedlineExport.cxx
+++ b/xmloff/source/text/XMLRedlineExport.cxx
@@ -72,6 +72,7 @@ XMLRedlineExport::XMLRedlineExport(SvXMLExport& rExp)
 ,   sRedlineSuccessorData("RedlineSuccessorData")
 ,   sRedlineText("RedlineText")
 ,   sRedlineType("RedlineType")
+,   sRedlineElementType("RedlineElementType")
 ,   sUnknownChange("UnknownChange")
 ,   sStartRedline("StartRedline")
 ,   sEndRedline("EndRedline")
@@ -338,6 +339,14 @@ void XMLRedlineExport::ExportChangedRegion(
         sal_uInt16 nParagraphIdx = 2, nCharStart, nCharEnd;
         rPropSet->getPropertyValue("Start") >>= nCharStart;
         rPropSet->getPropertyValue("End") >>= nCharEnd;
+        aAny = rPropSet->getPropertyValue(sRedlineElementType);
+        OUString sElementType;
+        aAny >>= sElementType;
+        if( sElementType == "text" )
+            eChangeType = XML_TEXT;
+        OUString sParagraphIdx = "2", sCharStart, sCharEnd;
+        rPropSet->getPropertyValue("Start") >>= sCharStart;
+        rPropSet->getPropertyValue("End") >>= sCharEnd;
         if(eChangeType == XML_PARAGRAPH)
         {
             rExport.AddAttribute(XML_NAMESPACE_C, XML_START, "/" + rtl::OUString::number(nParagraphIdx));
diff --git a/xmloff/source/text/XMLRedlineExport.hxx b/xmloff/source/text/XMLRedlineExport.hxx
index 1ece917..bdb5719 100644
--- a/xmloff/source/text/XMLRedlineExport.hxx
+++ b/xmloff/source/text/XMLRedlineExport.hxx
@@ -66,6 +66,7 @@ class XMLRedlineExport
     const OUString sRedlineSuccessorData;
     const OUString sRedlineText;
     const OUString sRedlineType;
+    const OUString sRedlineElementType;
     const OUString sRedlineUndoType;
     const OUString sRedlineUndoName;
     const OUString sRedlineUndoStart;


More information about the Libreoffice-commits mailing list