summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPranav Kant <pranavk@collabora.co.uk>2017-07-13 17:42:41 +0530
committerPranav Kant <pranavk@collabora.co.uk>2017-07-13 17:42:41 +0530
commitfab531357251919e9e227d4c0db0512978bd9f57 (patch)
treeb0ef3d9b5049b041bdc8cc4018d6ad1499d46caf
parentset gobject props in setupDocView too (diff)
downloadcore-fab531357251919e9e227d4c0db0512978bd9f57.tar.gz
core-fab531357251919e9e227d4c0db0512978bd9f57.zip
try to attach findbar tool signals
Change-Id: Id129593c110d77c17883040ea77b8d263c4c846f
-rw-r--r--gtv.ui9
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx2
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtv-application-window.hxx2
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx7
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx50
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx11
6 files changed, 79 insertions, 2 deletions
diff --git a/gtv.ui b/gtv.ui
index 6cc34ca398a0..1f92c41aae22 100644
--- a/gtv.ui
+++ b/gtv.ui
@@ -114,6 +114,7 @@
<property name="label" translatable="yes">__glade_unnamed_1</property>
<property name="use_underline">True</property>
<property name="icon_name">window-close-symbolic</property>
+ <signal name="clicked" handler="toggleFindbar" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -127,7 +128,8 @@
<child>
<object class="GtkEntry" id="findbar_entry">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
+ <signal name="key-press-event" handler="signalFindbar" swapped="no"/>
</object>
</child>
</object>
@@ -143,6 +145,7 @@
<property name="label" translatable="yes">__glade_unnamed_3</property>
<property name="use_underline">True</property>
<property name="icon_name">go-down-symbolic</property>
+ <signal name="clicked" handler="signalSearchNext" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -156,6 +159,7 @@
<property name="label" translatable="yes">toolbutton</property>
<property name="use_underline">True</property>
<property name="icon_name">go-up-symbolic</property>
+ <signal name="clicked" handler="signalSearchPrev" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -163,11 +167,12 @@
</packing>
</child>
<child>
- <object class="GtkToolButton" id="findbar_findall">
+ <object class="GtkToggleToolButton" id="findbar_findall">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Highlight all</property>
<property name="use_underline">True</property>
+ <signal name="clicked" handler="toggleFindAll" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
diff --git a/libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx b/libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx
index a3e8650c4263..3a81e9aa7b6e 100644
--- a/libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx
@@ -91,6 +91,8 @@ gtv_application_window_init(GtvApplicationWindow* win)
win->findtoolbar = GTK_WIDGET(gtk_builder_get_object(builder, "findtoolbar"));
win->findbarlabel = GTK_WIDGET(gtk_builder_get_object(builder, "findbar_label"));
+ win->findbarEntry = GTK_WIDGET(gtk_builder_get_object(builder, "findbar_entry"));
+ win->findAll = GTK_WIDGET(gtk_builder_get_object(builder, "findbar_findall"));
priv->toolbarBroadcast = true;
priv->partSelectorBroadcast = true;
diff --git a/libreofficekit/qa/gtktiledviewer/gtv-application-window.hxx b/libreofficekit/qa/gtktiledviewer/gtv-application-window.hxx
index 879678a77f5e..2337b74e1078 100644
--- a/libreofficekit/qa/gtktiledviewer/gtv-application-window.hxx
+++ b/libreofficekit/qa/gtktiledviewer/gtv-application-window.hxx
@@ -36,6 +36,8 @@ struct _GtvApplicationWindow
GtkWidget* zoomlabel;
GtkWidget* redlinelabel;
GtkWidget* findbarlabel;
+ GtkWidget* findbarEntry;
+ GtkWidget* findAll;
GtkWidget* findtoolbar;
};
diff --git a/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx b/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx
index d0e4611d16cf..b37709976402 100644
--- a/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx
@@ -101,6 +101,13 @@ gtv_main_toolbar_init(GtvMainToolbar* toolbar)
gtk_builder_add_callback_symbol(builder, "signalAddressbar", G_CALLBACK(signalAddressbar));
gtk_builder_add_callback_symbol(builder, "signalFormulabar", G_CALLBACK(signalFormulabar));
+ // find toolbar
+ // Note: These buttons are not the part of GtvMainToolbar
+ gtk_builder_add_callback_symbol(builder, "signalSearchNext", G_CALLBACK(signalSearchNext));
+ gtk_builder_add_callback_symbol(builder, "signalSearchPrev", G_CALLBACK(signalSearchPrev));
+ gtk_builder_add_callback_symbol(builder, "signalFindbar", G_CALLBACK(signalFindbar));
+ gtk_builder_add_callback_symbol(builder, "toggleFindAll", G_CALLBACK(toggleFindAll));
+
gtk_builder_connect_signals(builder, nullptr);
gtk_widget_show_all(GTK_WIDGET(toolbar));
diff --git a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx
index 9ea38b790b0b..f07f5f05644c 100644
--- a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx
@@ -530,6 +530,56 @@ void docAdjustmentChanged(GtkAdjustment*, gpointer pData)
LOKDocViewSigHandlers::configureEvent(window->lokdocview, nullptr, nullptr);
}
+void signalSearchNext(GtkWidget* pButton, gpointer /*pItem*/)
+{
+ GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(pButton));
+ GtkEntry* pEntry = GTK_ENTRY(window->findbarEntry);
+ const char* pText = gtk_entry_get_text(pEntry);
+ bool findAll = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(window->findAll));
+ lok_doc_view_find_next(LOK_DOC_VIEW(window->lokdocview), pText, findAll);
+}
+
+void signalSearchPrev(GtkWidget* pButton, gpointer /*pItem*/)
+{
+ GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(pButton));
+ GtkEntry* pEntry = GTK_ENTRY(window->findbarEntry);
+ const char* pText = gtk_entry_get_text(pEntry);
+ bool findAll = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(window->findAll));
+ lok_doc_view_find_prev(LOK_DOC_VIEW(window->lokdocview), pText, findAll);
+}
+
+gboolean signalFindbar(GtkWidget* pWidget, GdkEventKey* pEvent, gpointer /*pData*/)
+{
+ GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(pWidget));
+ gtk_label_set_text(GTK_LABEL(window->findbarlabel), "");
+ switch(pEvent->keyval)
+ {
+ case GDK_KEY_Return:
+ {
+ // Search forward.
+ signalSearchNext(pWidget, nullptr);
+ return TRUE;
+ }
+ case GDK_KEY_Escape:
+ {
+ // Hide the findbar.
+ gtk_widget_hide(GTK_WIDGET(window->findtoolbar));
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void toggleFindAll(GtkWidget* pButton, gpointer /*pItem*/)
+{
+ GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(pButton));
+ GtkEntry* pEntry = GTK_ENTRY(window->findbarEntry);
+ const char* pText = gtk_entry_get_text(pEntry);
+ bool findAll = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(window->findAll));
+ gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(window->findAll), !findAll);
+ lok_doc_view_highlight_all(LOK_DOC_VIEW(window->lokdocview), pText);
+}
+
void editButtonClicked(GtkWidget* pWidget, gpointer userdata)
{
GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(pWidget));
diff --git a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx
index 716d7bef868c..a19a7b5cd744 100644
--- a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx
+++ b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx
@@ -38,6 +38,17 @@ void documentRepair(GtkWidget* pButton, gpointer /*pItem*/);
void docAdjustmentChanged(GtkAdjustment*, gpointer);
+/// Click handler for the search next button.
+void signalSearchNext(GtkWidget* pButton, gpointer /*pItem*/);
+
+/// Click handler for the search previous button.
+void signalSearchPrev(GtkWidget* pButton, gpointer /*pItem*/);
+
+/// Handles the key-press-event of the search entry widget.
+gboolean signalFindbar(GtkWidget* pWidget, GdkEventKey* pEvent, gpointer /*pData*/);
+
+void toggleFindAll(GtkWidget* pButton, gpointer /*pItem*/);
+
void editButtonClicked(GtkWidget*, gpointer);
void replyButtonClicked(GtkWidget*, gpointer);