summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorPranav Kant <pranavk@collabora.co.uk>2017-01-30 13:11:05 +0530
committerAndras Timar <andras.timar@collabora.com>2017-02-18 00:51:11 +0100
commit8749daf7ccbe884018b997ed01c7ffdc723e6f0b (patch)
tree77bbca9daf85bfa533ed920005e352bd7fd623d7 /libreofficekit
parent7870e90da5bf4de44cfa82209ba06cd4d1cfb1a2 (diff)
gtktiledviewer: Can edit comment from comment sidebar now
TODO: Ideal would be to replace these buttons with a popover menu containing all the actions that can be taken on a comment Change-Id: Iec19e6c4a934394f84bcf4bb20cc14f207ef95be (cherry picked from commit bc713d0670b02c9f267fcf1e5f3373525bcda047)
Diffstat (limited to 'libreofficekit')
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx29
1 files changed, 27 insertions, 2 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 8286b18a0f23..5c6e6f9bc8ce 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -281,6 +281,30 @@ static void userPromptDialog(GtkWidget* pDocView, const std::string& aTitle, std
gtk_widget_destroy(pDialog);
}
+static void editButtonClicked(GtkWidget* pWidget, gpointer userdata)
+{
+ TiledWindow& rWindow = lcl_getTiledWindow(pWidget);
+ std::map<std::string, std::string> aEntries;
+ aEntries["Text"] = "";
+
+ userPromptDialog(rWindow.m_pDocView, "Edit comment", aEntries);
+
+ int *commentId = static_cast<int*>(g_object_get_data(G_OBJECT(userdata), "id"));
+
+ boost::property_tree::ptree aTree;
+ aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "type", nullptr), '/'), "long");
+ aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "value", nullptr), '/'), std::to_string(*commentId));
+
+ aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Text", "/", "type", nullptr), '/'), "string");
+ aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Text", "/", "value", nullptr), '/'), aEntries["Text"]);
+
+ std::stringstream aStream;
+ boost::property_tree::write_json(aStream, aTree);
+ std::string aArguments = aStream.str();
+
+ lok_doc_view_post_command(LOK_DOC_VIEW(rWindow.m_pDocView), ".uno:EditAnnotation", aArguments.c_str(), false);
+}
+
static void replyButtonClicked(GtkWidget* pWidget, gpointer userdata)
{
TiledWindow& rWindow = lcl_getTiledWindow(pWidget);
@@ -333,13 +357,14 @@ GtkWidget* CommentsSidebar::createCommentBox(const boost::property_tree::ptree&
GtkWidget* pCommentAuthor = gtk_label_new(aComment.get<std::string>("author").c_str());
GtkWidget* pCommentDate = gtk_label_new(aComment.get<std::string>("dateTime").c_str());
GtkWidget* pControlsHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- GtkWidget* pGotoButton = gtk_button_new_with_label("Goto");
+ GtkWidget* pEditButton = gtk_button_new_with_label("Edit");
GtkWidget* pReplyButton = gtk_button_new_with_label("Reply");
GtkWidget* pDeleteButton = gtk_button_new_with_label("Delete");
+ g_signal_connect(G_OBJECT(pEditButton), "clicked", G_CALLBACK(editButtonClicked), pCommentVBox);
g_signal_connect(G_OBJECT(pReplyButton), "clicked", G_CALLBACK(replyButtonClicked), pCommentVBox);
g_signal_connect(G_OBJECT(pDeleteButton), "clicked", G_CALLBACK(deleteCommentButtonClicked), pCommentVBox);
- gtk_container_add(GTK_CONTAINER(pControlsHBox), pGotoButton);
+ gtk_container_add(GTK_CONTAINER(pControlsHBox), pEditButton);
gtk_container_add(GTK_CONTAINER(pControlsHBox), pReplyButton);
gtk_container_add(GTK_CONTAINER(pControlsHBox), pDeleteButton);
GtkWidget* pCommentSeparator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);