[gnome-builder] prefs: use EggSearchBar for filtering preferences
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] prefs: use EggSearchBar for filtering preferences
- Date: Mon, 4 May 2015 07:36:45 +0000 (UTC)
commit 4062ca8650f9b4c0728cfc4a20ce4db4ab73c7fb
Author: Christian Hergert <christian hergert me>
Date: Mon May 4 00:35:59 2015 -0700
prefs: use EggSearchBar for filtering preferences
Use our new EggSearchBar to simplify things.
data/ui/gb-preferences-window.ui | 18 +++-----
src/Makefile.am | 2 +
src/preferences/gb-preferences-window.c | 70 ++-----------------------------
3 files changed, 12 insertions(+), 78 deletions(-)
---
diff --git a/data/ui/gb-preferences-window.ui b/data/ui/gb-preferences-window.ui
index b11ac76..3e63d66 100644
--- a/data/ui/gb-preferences-window.ui
+++ b/data/ui/gb-preferences-window.ui
@@ -67,20 +67,14 @@
<property name="orientation">vertical</property>
<property name="visible">True</property>
<child>
- <object class="GtkRevealer" id="search_revealer">
+ <object class="EggSearchBar" id="search_bar">
<property name="visible">True</property>
- <property name="reveal-child" bind-source="search_toggle" bind-property="active"
bind-flags="bidirectional">False</property>
- <child>
- <object class="GtkSearchBar" id="search_bar">
+ <property name="show-close-button">False</property>
+ <property name="search-mode-enabled" bind-source="search_toggle" bind-property="active"
bind-flags="bidirectional">False</property>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="search_entry">
+ <property name="placeholder-text" translatable="yes">Search Preferences…</property>
<property name="visible">True</property>
- <property name="show-close-button">False</property>
- <property name="search-mode-enabled">True</property>
- <child>
- <object class="GtkEntry" id="search_entry">
- <property name="placeholder-text" translatable="yes">Search Preferences</property>
- <property name="visible">True</property>
- </object>
- </child>
</object>
</child>
</object>
diff --git a/src/Makefile.am b/src/Makefile.am
index 9096014..7ed2120 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -183,6 +183,7 @@ libgnome_builder_la_LIBADD = \
$(BUILDER_LIBS) \
$(OPTIMIZE_LDFLAGS) \
$(top_builddir)/libide/libide-1.0.la \
+ $(top_builddir)/contrib/egg/libegg.la \
-lm
libgnome_builder_la_CFLAGS = \
@@ -218,6 +219,7 @@ libgnome_builder_la_CFLAGS = \
-I$(srcdir)/workbench \
-I$(top_builddir)/libide \
-I$(top_srcdir)/libide \
+ -I$(top_srcdir)/contrib/egg \
$(NULL)
gnome_builder_SOURCES = main.c
diff --git a/src/preferences/gb-preferences-window.c b/src/preferences/gb-preferences-window.c
index 44cb8ff..9293743 100644
--- a/src/preferences/gb-preferences-window.c
+++ b/src/preferences/gb-preferences-window.c
@@ -18,6 +18,8 @@
#include <glib/gi18n.h>
+#include "egg-search-bar.h"
+
#include "gb-gdk.h"
#include "gb-preferences-page-editor.h"
#include "gb-preferences-page-experimental.h"
@@ -35,7 +37,7 @@ struct _GbPreferencesWindow
GtkWidget *return_to_page;
GtkHeaderBar *right_header_bar;
GtkSearchEntry *search_entry;
- GtkSearchBar *search_bar;
+ EggSearchBar *search_bar;
GtkStack *stack;
};
@@ -55,20 +57,6 @@ gb_preferences_window_new (void)
}
static void
-gb_preferences_window_notify_search_mode (GbPreferencesWindow *self,
- GParamSpec *pspec,
- GtkSearchBar *search_bar)
-{
- g_return_if_fail (GB_IS_PREFERENCES_WINDOW (self));
-
- if (!gtk_search_bar_get_search_mode (search_bar) && self->return_to_page)
- {
- gtk_stack_set_visible_child (self->stack, self->return_to_page);
- self->return_to_page = NULL;
- }
-}
-
-static void
gb_preferences_window_section_changed (GtkStack *stack,
GParamSpec *pspec,
GbPreferencesWindow *self)
@@ -138,7 +126,6 @@ gb_preferences_window_key_press_event (GtkWidget *widget,
{
GbPreferencesWindow *self = (GbPreferencesWindow *)widget;
gboolean ret;
- gboolean editable = FALSE;
g_return_val_if_fail (GB_IS_PREFERENCES_WINDOW (self), FALSE);
@@ -147,47 +134,6 @@ gb_preferences_window_key_press_event (GtkWidget *widget,
*/
ret = GTK_WIDGET_CLASS (gb_preferences_window_parent_class)->key_press_event (widget, event);
- /*
- * Check if the focus widget is a GtkEditable.
- */
- editable = GTK_IS_EDITABLE (gtk_window_get_focus (GTK_WINDOW (widget)));
-
- if (!ret && !editable)
- {
- if (!gtk_search_bar_get_search_mode (self->search_bar))
- {
- if (gb_gdk_event_key_is_escape (event))
- {
- g_signal_emit_by_name (widget, "close");
- }
- else if (!gb_gdk_event_key_is_keynav (event) &&
- !gb_gdk_event_key_is_space (event) &&
- !gb_gdk_event_key_is_tab (event))
- {
- GtkWidget *current_page;
-
- current_page = gtk_stack_get_visible_child (self->stack);
-
- if (gtk_search_bar_handle_event (GTK_SEARCH_BAR (self->search_bar),
- (GdkEvent*) event) == GDK_EVENT_STOP)
- {
- self->return_to_page = current_page;
- ret = TRUE;
- }
- else
- ret = FALSE;
- }
- }
- else
- {
- if (!gtk_widget_is_focus (GTK_WIDGET (self->search_bar)) &&
- gb_gdk_event_key_is_escape (event))
- gtk_search_bar_set_search_mode (self->search_bar, FALSE);
-
- ret = TRUE;
- }
- }
-
return ret;
}
@@ -198,21 +144,12 @@ gb_preferences_window_constructed (GObject *object)
G_OBJECT_CLASS (gb_preferences_window_parent_class)->constructed (object);
- gtk_search_bar_connect_entry (self->search_bar,
- GTK_ENTRY (self->search_entry));
-
g_signal_connect (self->stack,
"notify::visible-child",
G_CALLBACK (gb_preferences_window_section_changed),
self);
gb_preferences_window_section_changed (self->stack, NULL, self);
- g_signal_connect_object (self->search_bar,
- "notify::search-mode-enabled",
- G_CALLBACK (gb_preferences_window_notify_search_mode),
- self,
- G_CONNECT_SWAPPED | G_CONNECT_AFTER);
-
g_signal_connect_object (self->search_entry,
"changed",
G_CALLBACK (gb_preferences_window_search_changed),
@@ -247,6 +184,7 @@ gb_preferences_window_class_init (GbPreferencesWindowClass *klass)
GB_WIDGET_CLASS_BIND (widget_class, GbPreferencesWindow, search_entry);
GB_WIDGET_CLASS_BIND (widget_class, GbPreferencesWindow, stack);
+ g_type_ensure (EGG_TYPE_SEARCH_BAR);
g_type_ensure (GB_TYPE_PREFERENCES_PAGE_EDITOR);
g_type_ensure (GB_TYPE_PREFERENCES_PAGE_EXPERIMENTAL);
g_type_ensure (GB_TYPE_PREFERENCES_PAGE_GIT);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]