summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-10-05 11:39:11 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-10-05 12:05:00 +0200
commitaa3f607f80a2269ca2e1f8a5805d2e0b4cd36d7e (patch)
tree704efcdd79ecb9d4dcbcd9fecf363d096f535abb /libreofficekit
parent22d342a82f225381057b5b8b941be8583de87a63 (diff)
gtktiledviewer: make it possible to trigger SearchItem.Command
Change-Id: I210da07802bae1f2f2948976bc0faf90e93152b4
Diffstat (limited to 'libreofficekit')
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx22
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);