[gnome-builder] project-selector: use EggSearchBar
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] project-selector: use EggSearchBar
- Date: Mon, 4 May 2015 19:20:40 +0000 (UTC)
commit d34b5f3cfd378273c55647c89388f07061ec4e61
Author: Christian Hergert <christian hergert me>
Date: Mon May 4 12:19:43 2015 -0700
project-selector: use EggSearchBar
EggSearchBar deals with the type-ahead for us, as well as being
activatable from an accelerator.
data/ui/gb-projects-dialog.ui | 6 ++--
src/dialogs/gb-projects-dialog.c | 40 +++++++------------------------------
2 files changed, 11 insertions(+), 35 deletions(-)
---
diff --git a/data/ui/gb-projects-dialog.ui b/data/ui/gb-projects-dialog.ui
index 58ee1db..41cc99c 100644
--- a/data/ui/gb-projects-dialog.ui
+++ b/data/ui/gb-projects-dialog.ui
@@ -76,10 +76,10 @@
<property name="orientation">vertical</property>
<property name="visible">true</property>
<child>
- <object class="GtkSearchBar" id="search_bar">
- <property name="search-mode-enabled">true</property>
+ <object class="EggSearchBar" id="search_bar">
+ <property name="search-mode-enabled">false</property>
<property name="visible">true</property>
- <child>
+ <child internal-child="entry">
<object class="GtkSearchEntry" id="search_entry">
<property name="width-chars">40</property>
<property name="visible">true</property>
diff --git a/src/dialogs/gb-projects-dialog.c b/src/dialogs/gb-projects-dialog.c
index 9ebefc5..e0d6d19 100644
--- a/src/dialogs/gb-projects-dialog.c
+++ b/src/dialogs/gb-projects-dialog.c
@@ -485,35 +485,6 @@ gb_projects_dialog_constructed (GObject *object)
g_object_ref (self));
}
-static gboolean
-gb_projects_dialog_key_press_event (GtkWidget *widget,
- GdkEventKey *event)
-{
- GbProjectsDialog *self = (GbProjectsDialog *)widget;
-
- g_assert (GB_IS_PROJECTS_DIALOG (self));
- g_assert (event != NULL);
-
- if (GTK_WIDGET_CLASS (gb_projects_dialog_parent_class)->key_press_event (widget, event))
- return TRUE;
-
- if (!gtk_toggle_button_get_active (self->search_button))
- {
- if ((!gb_gdk_event_key_is_keynav (event) &&
- !gb_gdk_event_key_is_space (event) &&
- !gb_gdk_event_key_is_tab (event) &&
- !gb_gdk_event_key_is_modifier_key (event)) ||
- (((event->state & GDK_CONTROL_MASK) != 0) && (event->keyval == GDK_KEY_f)))
- {
- gtk_toggle_button_set_active (self->search_button, TRUE);
- gtk_widget_event (GTK_WIDGET (self->search_entry), (GdkEvent *)event);
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
static void
gb_projects_dialog_finalize (GObject *object)
{
@@ -529,13 +500,10 @@ static void
gb_projects_dialog_class_init (GbProjectsDialogClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->constructed = gb_projects_dialog_constructed;
object_class->finalize = gb_projects_dialog_finalize;
- widget_class->key_press_event = gb_projects_dialog_key_press_event;
-
GB_WIDGET_CLASS_TEMPLATE (klass, "gb-projects-dialog.ui");
GB_WIDGET_CLASS_BIND (klass, GbProjectsDialog, action_bar);
@@ -555,9 +523,17 @@ gb_projects_dialog_class_init (GbProjectsDialogClass *klass)
static void
gb_projects_dialog_init (GbProjectsDialog *self)
{
+ GtkAccelGroup *accel_group;
+
gtk_widget_init_template (GTK_WIDGET (self));
gb_settings_init_window (GTK_WINDOW (self));
self->recent_projects = ide_recent_projects_new ();
+
+ accel_group = gtk_accel_group_new ();
+ gtk_widget_add_accelerator (GTK_WIDGET (self->search_bar), "reveal",
+ accel_group, GDK_KEY_f, GDK_CONTROL_MASK, 0);
+ gtk_window_add_accel_group (GTK_WINDOW (self), accel_group);
+ g_clear_object (&accel_group);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]