[gnome-builder/wip/commands] vim: wire vim command entry to the command bar
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/commands] vim: wire vim command entry to the command bar
- Date: Tue, 7 Oct 2014 22:02:14 +0000 (UTC)
commit dfe901c8f0e6964491356ce0497436c16d362d0e
Author: Christian Hergert <christian hergert me>
Date: Tue Oct 7 15:02:08 2014 -0700
vim: wire vim command entry to the command bar
src/editor/gb-editor-tab-private.h | 2 -
src/editor/gb-editor-tab.c | 97 ++----------------------------------
src/workbench/gb-workbench.c | 12 +++++
src/workbench/gb-workbench.h | 14 +++--
4 files changed, 25 insertions(+), 100 deletions(-)
---
diff --git a/src/editor/gb-editor-tab-private.h b/src/editor/gb-editor-tab-private.h
index 33da9c5..8850211 100644
--- a/src/editor/gb-editor-tab-private.h
+++ b/src/editor/gb-editor-tab-private.h
@@ -107,8 +107,6 @@ struct _GbEditorTabPrivate
GbSourceView *source_view;
GdTaggedEntry *search_entry;
GdTaggedEntryTag *search_entry_tag;
- GtkEntry *vim_command_entry;
- GtkRevealer *vim_command_entry_revealer;
/*
* Information about our target file and encoding.
diff --git a/src/editor/gb-editor-tab.c b/src/editor/gb-editor-tab.c
index ec72794..6ae2781 100644
--- a/src/editor/gb-editor-tab.c
+++ b/src/editor/gb-editor-tab.c
@@ -981,21 +981,17 @@ on_vim_command_visibility_toggled (GbEditorVim *vim,
gboolean visible,
GbEditorTab *tab)
{
+ GtkWidget *toplevel;
+
ENTRY;
g_return_if_fail (GB_IS_EDITOR_VIM (vim));
g_return_if_fail (GB_IS_EDITOR_TAB (tab));
- gtk_revealer_set_reveal_child (tab->priv->vim_command_entry_revealer,
- visible);
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (tab));
- if (visible)
- {
- gtk_entry_set_text (tab->priv->vim_command_entry, "");
- gtk_widget_grab_focus (GTK_WIDGET (tab->priv->vim_command_entry));
- }
- else
- gtk_widget_grab_focus (GTK_WIDGET (tab->priv->source_view));
+ if (GB_IS_WORKBENCH (toplevel))
+ gb_workbench_set_command_bar_visible (GB_WORKBENCH (toplevel), visible);
EXIT;
}
@@ -1012,53 +1008,6 @@ on_vim_begin_search (GbEditorVim *vim,
}
static void
-on_vim_command_entry_activate (GtkEntry *entry,
- GbEditorTab *tab)
-{
- GtkWidget *toplevel;
- GbWorkspace *workspace;
- GActionGroup *actions;
- GAction *action = NULL;
- const gchar *text;
-
- g_return_if_fail (GTK_IS_ENTRY (entry));
- g_return_if_fail (GB_IS_EDITOR_TAB (tab));
-
- if (!(text = gtk_entry_get_text (entry)))
- return;
-
- while (*text == ':')
- text++;
-
- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (tab));
- workspace = gb_workbench_get_workspace (GB_WORKBENCH (toplevel),
- GB_TYPE_EDITOR_WORKSPACE);
- actions = gb_workspace_get_actions (workspace);
-
- /*
- * TODO: This is a very crappy way to commands. If you support Builder,
- * I'll have time to fix this ;-)
- */
-
- if (g_str_equal (text, "w"))
- {
- gb_editor_vim_set_mode (tab->priv->vim, GB_EDITOR_VIM_NORMAL);
- action = g_action_map_lookup_action (G_ACTION_MAP (actions), "save");
- g_action_activate (action, NULL);
- return;
- }
- else if (g_str_equal (text, "e"))
- {
- gb_editor_vim_set_mode (tab->priv->vim, GB_EDITOR_VIM_NORMAL);
- action = g_action_map_lookup_action (G_ACTION_MAP (actions), "open");
- g_action_activate (action, NULL);
- return;
- }
-
- gb_editor_vim_execute_command (tab->priv->vim, text);
-}
-
-static void
on_vim_notify_phrase (GbEditorVim *vim,
GParamSpec *pspec,
GbEditorTab *tab)
@@ -1086,28 +1035,6 @@ on_vim_notify_mode (GbEditorVim *vim,
}
static gboolean
-on_vim_command_entry_key_press_event (GtkEntry *entry,
- GdkEventKey *event,
- GbEditorTab *tab)
-{
- ENTRY;
-
- g_return_if_fail (GTK_IS_ENTRY (entry));
- g_return_if_fail (event);
- g_return_if_fail (GB_IS_EDITOR_TAB (tab));
-
- switch (event->keyval)
- {
- case GDK_KEY_Escape:
- gb_editor_vim_set_mode (tab->priv->vim, GB_EDITOR_VIM_NORMAL);
- RETURN (TRUE);
-
- default:
- RETURN (FALSE);
- }
-}
-
-static gboolean
transform_file_to_language (GBinding *binding,
const GValue *src_value,
GValue *dst_value,
@@ -1312,16 +1239,6 @@ gb_editor_tab_constructed (GObject *object)
G_CALLBACK (on_vim_notify_mode),
tab);
- g_signal_connect (priv->vim_command_entry,
- "activate",
- G_CALLBACK (on_vim_command_entry_activate),
- tab);
-
- g_signal_connect (priv->vim_command_entry,
- "key-press-event",
- G_CALLBACK (on_vim_command_entry_key_press_event),
- tab);
-
settings = g_settings_new ("org.gnome.builder.editor");
g_settings_bind (settings, "vim-mode", priv->vim, "enabled",
G_SETTINGS_BIND_DEFAULT);
@@ -1546,10 +1463,6 @@ gb_editor_tab_class_init (GbEditorTabClass *klass)
snippets_provider);
gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab,
source_view);
- gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab,
- vim_command_entry);
- gtk_widget_class_bind_template_child_private (widget_class, GbEditorTab,
- vim_command_entry_revealer);
g_type_ensure (GB_TYPE_EDITOR_DOCUMENT);
g_type_ensure (GB_TYPE_SOURCE_CHANGE_MONITOR);
diff --git a/src/workbench/gb-workbench.c b/src/workbench/gb-workbench.c
index c9ce4d3..7463d16 100644
--- a/src/workbench/gb-workbench.c
+++ b/src/workbench/gb-workbench.c
@@ -143,6 +143,18 @@ gb_workbench_workspace_changed (GbWorkbench *workbench,
EXIT;
}
+void
+gb_workbench_set_command_bar_visible (GbWorkbench *workbench,
+ gboolean visible)
+{
+ g_return_if_fail (GB_IS_WORKBENCH (workbench));
+
+ if (visible)
+ gb_command_bar_show (workbench->priv->command_bar);
+ else
+ gb_command_bar_hide (workbench->priv->command_bar);
+}
+
static void
gb_workbench_stack_child_changed (GbWorkbench *workbench,
GParamSpec *pspec,
diff --git a/src/workbench/gb-workbench.h b/src/workbench/gb-workbench.h
index 2d58810..1541b49 100644
--- a/src/workbench/gb-workbench.h
+++ b/src/workbench/gb-workbench.h
@@ -54,13 +54,15 @@ struct _GbWorkbenchClass
GbWorkspace *workspace);
};
-GType gb_workbench_get_type (void) G_GNUC_CONST;
-GbNavigationList *gb_workbench_get_navigation_list (GbWorkbench *workbench);
-GbWorkspace *gb_workbench_get_active_workspace (GbWorkbench *workbench);
-GbWorkspace *gb_workbench_get_workspace (GbWorkbench *workbench,
- GType type);
+GType gb_workbench_get_type (void) G_GNUC_CONST;
+GbNavigationList *gb_workbench_get_navigation_list (GbWorkbench *workbench);
+GbWorkspace *gb_workbench_get_active_workspace (GbWorkbench *workbench);
+GbWorkspace *gb_workbench_get_workspace (GbWorkbench *workbench,
+ GType type);
+void gb_workbench_set_command_bar_visible (GbWorkbench *workbench,
+ gboolean visible);
-GbWorkbench *gb_navigation_list_get_workbench (GbNavigationList *list);
+GbWorkbench *gb_navigation_list_get_workbench (GbNavigationList *list);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]