Kaydet (Commit) 173fc95b authored tarafından Miklos Vajna's avatar Miklos Vajna

gtktiledviewer: initial paste support

Change-Id: I50b4dfa456d3518f5ef7faf5f634642973441a3e
üst 6552767a
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <string.h> #include <string.h>
#include <string> #include <string>
#include <map> #include <map>
#include <iostream>
#include <boost/property_tree/json_parser.hpp> #include <boost/property_tree/json_parser.hpp>
#include <gdk/gdkkeysyms.h> #include <gdk/gdkkeysyms.h>
...@@ -280,6 +281,17 @@ static void doCopy(GtkWidget* pButton, gpointer /*pItem*/) ...@@ -280,6 +281,17 @@ static void doCopy(GtkWidget* pButton, gpointer /*pItem*/)
free(pUsedFormat); free(pUsedFormat);
} }
static void doPaste(GtkWidget* pButton, gpointer /*pItem*/)
{
TiledWindow& rWindow = lcl_getTiledWindow(pButton);
LOKDocView* pLOKDocView = LOK_DOC_VIEW(rWindow.m_pDocView);
LibreOfficeKitDocument* pDocument = lok_doc_view_get_document(pLOKDocView);
GtkClipboard* pClipboard = gtk_clipboard_get_for_display(gtk_widget_get_display(rWindow.m_pDocView), GDK_SELECTION_CLIPBOARD);
gchar* pText = gtk_clipboard_wait_for_text(pClipboard);
if (pText)
pDocument->pClass->paste(pDocument, "text/plain;charset=utf-8", pText, strlen(pText));
}
/// Searches for the next or previous text of TiledWindow::m_pFindbarEntry. /// Searches for the next or previous text of TiledWindow::m_pFindbarEntry.
static void doSearch(GtkWidget* pButton, bool bBackwards) static void doSearch(GtkWidget* pButton, bool bBackwards)
...@@ -662,6 +674,12 @@ static GtkWidget* createWindow(TiledWindow& rWindow) ...@@ -662,6 +674,12 @@ static GtkWidget* createWindow(TiledWindow& rWindow)
gtk_tool_item_set_tooltip_text(pCopyButton, "Copy"); gtk_tool_item_set_tooltip_text(pCopyButton, "Copy");
gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pCopyButton, -1); gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pCopyButton, -1);
g_signal_connect(G_OBJECT(pCopyButton), "clicked", G_CALLBACK(doCopy), NULL); g_signal_connect(G_OBJECT(pCopyButton), "clicked", G_CALLBACK(doCopy), NULL);
GtkToolItem* pPasteButton = gtk_tool_button_new( NULL, NULL);
gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(pPasteButton), "edit-paste-symbolic");
gtk_tool_item_set_tooltip_text(pPasteButton, "Paste");
gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pPasteButton, -1);
g_signal_connect(G_OBJECT(pPasteButton), "clicked", G_CALLBACK(doPaste), NULL);
gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), gtk_separator_tool_item_new(), -1); gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), gtk_separator_tool_item_new(), -1);
GtkToolItem* pEnableEditing = gtk_toggle_tool_button_new(); GtkToolItem* pEnableEditing = gtk_toggle_tool_button_new();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment