Blob Blame History Raw
From addf504efd94119f08ba227e39c04819925af608 Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@collabora.co.uk>
Date: Tue, 17 Nov 2015 20:57:49 +0100
Subject: [PATCH 342/398] gtktiledviewer: set author name when inserting a
 comment

Change-Id: Iee66687ce813ff801f29e4568329ed2a39f905ba
(cherry picked from commit e0080a60ac2fb0a57cbf1ecbeda250e37d8b402e)
---
 libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 86fc9e539b39..7dcd52446344 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -10,6 +10,7 @@
 #include <assert.h>
 #include <stdio.h>
 #include <string.h>
+#include <pwd.h>
 #include <string>
 #include <map>
 #include <iostream>
@@ -118,6 +119,7 @@ public:
     std::shared_ptr<TiledRowColumnBar> m_pRowBar;
     std::shared_ptr<TiledRowColumnBar> m_pColumnBar;
     std::shared_ptr<TiledCornerButton> m_pCornerButton;
+    std::string m_aAuthor;
 
     TiledWindow()
         : m_pDocView(nullptr),
@@ -148,6 +150,8 @@ public:
         m_pFindbarLabel(nullptr),
         m_bFindAll(false)
     {
+        struct passwd* pPasswd = getpwuid(getuid());
+        m_aAuthor = std::string(pPasswd->pw_gecos);
     }
 };
 
@@ -799,7 +803,18 @@ static void toggleToolItem(GtkWidget* pWidget, gpointer /*pData*/)
         // notify about the finished Save
         gboolean bNotify = (rString == ".uno:Save");
 
-        lok_doc_view_post_command(pLOKDocView, rString.c_str(), nullptr, bNotify);
+        std::string aArguments;
+        if (rString == ".uno:InsertAnnotation" && !rWindow.m_aAuthor.empty())
+        {
+            boost::property_tree::ptree aTree;
+            aTree.put(boost::property_tree::ptree::path_type("Author/type", '/'), "string");
+            aTree.put(boost::property_tree::ptree::path_type("Author/value", '/'), rWindow.m_aAuthor);
+            std::stringstream aStream;
+            boost::property_tree::write_json(aStream, aTree);
+            aArguments = aStream.str();
+        }
+
+        lok_doc_view_post_command(pLOKDocView, rString.c_str(), (aArguments.empty() ? nullptr : aArguments.c_str()), bNotify);
     }
 }
 
-- 
2.12.0