diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-10-05 11:39:11 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-10-05 12:05:00 +0200 |
commit | aa3f607f80a2269ca2e1f8a5805d2e0b4cd36d7e (patch) | |
tree | 704efcdd79ecb9d4dcbcd9fecf363d096f535abb /libreofficekit | |
parent | 22d342a82f225381057b5b8b941be8583de87a63 (diff) |
gtktiledviewer: make it possible to trigger SearchItem.Command
Change-Id: I210da07802bae1f2f2948976bc0faf90e93152b4
Diffstat (limited to 'libreofficekit')
-rw-r--r-- | libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index 2145c99d0c80..408dd913d064 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -53,6 +53,7 @@ public: GtkWidget* m_pFindbar; GtkWidget* m_pFindbarEntry; GtkWidget* m_pFindbarLabel; + bool m_bFindAll; TiledWindow() : m_pDocView(0), @@ -70,7 +71,8 @@ public: m_bPartSelectorBroadcast(true), m_pFindbar(0), m_pFindbarEntry(0), - m_pFindbarLabel(0) + m_pFindbarLabel(0), + m_bFindAll(false) { } }; @@ -178,6 +180,13 @@ static void toggleEditing(GtkWidget* pButton, gpointer /*pItem*/) lok_doc_view_set_edit(pLOKDocView, bActive); } +/// Toggles if search should find all results or only the first one. +static void toggleFindAll(GtkWidget* pButton, gpointer /*pItem*/) +{ + TiledWindow& rWindow = lcl_getTiledWindow(pButton); + rWindow.m_bFindAll = !rWindow.m_bFindAll; +} + /// Toggle the visibility of the findbar. static void toggleFindbar(GtkWidget* pButton, gpointer /*pItem*/) { @@ -285,6 +294,12 @@ static void doSearch(GtkWidget* pButton, bool bBackwards) aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchString/value", '/'), pText); aTree.put(boost::property_tree::ptree::path_type("SearchItem.Backward/type", '/'), "boolean"); aTree.put(boost::property_tree::ptree::path_type("SearchItem.Backward/value", '/'), bBackwards); + if (rWindow.m_bFindAll) + { + aTree.put(boost::property_tree::ptree::path_type("SearchItem.Command/type", '/'), "unsigned short"); + // SvxSearchCmd::FIND_ALL + aTree.put(boost::property_tree::ptree::path_type("SearchItem.Command/value", '/'), "1"); + } LOKDocView* pLOKDocView = LOK_DOC_VIEW(rWindow.m_pDocView); GdkRectangle aArea; @@ -730,6 +745,11 @@ static GtkWidget* createWindow(TiledWindow& rWindow) gtk_toolbar_insert(GTK_TOOLBAR(rWindow.m_pFindbar), pFindbarPrev, -1); g_signal_connect(G_OBJECT(pFindbarPrev), "clicked", G_CALLBACK(signalSearchPrev), NULL); + GtkToolItem* pFindAll = gtk_toggle_tool_button_new(); + gtk_tool_button_set_label(GTK_TOOL_BUTTON(pFindAll), "Highlight All"); + gtk_toolbar_insert(GTK_TOOLBAR(rWindow.m_pFindbar), pFindAll, -1); + g_signal_connect(G_OBJECT(pFindAll), "toggled", G_CALLBACK(toggleFindAll), NULL); + GtkToolItem* pFindbarLabelContainer = gtk_tool_item_new(); rWindow.m_pFindbarLabel = gtk_label_new(""); gtk_container_add(GTK_CONTAINER(pFindbarLabelContainer), rWindow.m_pFindbarLabel); |