sw/source/core/doc/docredln.cxx |   29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

New commits:
commit 9582fae07e9ea2df20a7265c62402180995c57da
Author: Pranav Kant <pran...@collabora.co.uk>
Date:   Fri Mar 3 13:17:39 2017 +0530

    lok: Create change tracking position too
    
    We want to expose change tracking comments to lok clients also. For
    this, lok clients needs to know the position in the document where the
    comment should be shown.
    
    Change-Id: I38794387cef3d11b5e0c1cfd0967408d8e54ded3
    Reviewed-on: https://gerrit.libreoffice.org/34949
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: pranavk <pran...@collabora.co.uk>

diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx
index 13421f5..c9f329b 100644
--- a/sw/source/core/doc/docredln.cxx
+++ b/sw/source/core/doc/docredln.cxx
@@ -28,6 +28,7 @@
 #include <editeng/udlnitem.hxx>
 #include <editeng/crossedoutitem.hxx>
 #include <comphelper/lok.hxx>
+#include <comphelper/string.hxx>
 #include <LibreOfficeKit/LibreOfficeKitEnums.h>
 #include <unotools/datetime.hxx>
 #include <sfx2/viewsh.hxx>
@@ -49,11 +50,13 @@
 #include <hints.hxx>
 #include <pamtyp.hxx>
 #include <poolfmt.hxx>
+#include <view.hxx>
 #include <viewsh.hxx>
+#include <viscrs.hxx>
 #include <rootfrm.hxx>
-
 #include <comcore.hrc>
 #include <unoport.hxx>
+#include <wrtsh.hxx>
 
 using namespace com::sun::star;
 
@@ -317,6 +320,29 @@ static void lcl_RedlineNotification(RedlineNotification 
nType, SwRedlineTable::s
     aRedline.put("description", pRedline->GetDescr().toUtf8().getStr());
     OUString sDateTime = 
utl::toISO8601(pRedline->GetRedlineData().GetTimeStamp().GetUNODateTime());
     aRedline.put("dateTime", sDateTime.toUtf8().getStr());
+
+    SwPosition* pStartPos = pRedline->Start();
+    SwPosition* pEndPos = pRedline->End();
+    SwContentNode* pContentNd = pRedline->GetContentNode();
+    SwView* pView = dynamic_cast<SwView*>(SfxViewShell::Current());
+    if (pView && pContentNd)
+    {
+        std::unique_ptr<SwShellCursor> pCursor(new 
SwShellCursor(pView->GetWrtShell(), *pStartPos));
+        pCursor->SetMark();
+        pCursor->GetMark()->nNode = *pContentNd;
+        pCursor->GetMark()->nContent.Assign(pContentNd, 
pEndPos->nContent.GetIndex());
+
+        pCursor->FillRects();
+
+        SwRects* pRects(pCursor.get());
+        std::vector<OString> aRects;
+        for(SwRect& rNextRect : *pRects)
+            aRects.push_back(rNextRect.SVRect().toString());
+
+        const OString sRects = comphelper::string::join("; ", aRects);
+        aRedline.put("textRange", sRects.getStr());
+    }
+
     boost::property_tree::ptree aTree;
     aTree.add_child("redline", aRedline);
     std::stringstream aStream;
@@ -1784,4 +1810,3 @@ SwTableCellRedline::~SwTableCellRedline()
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to