Added option to disable the VTE follows path feature.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@527 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
Enrico Tröger 2006-07-02 18:34:03 +00:00
parent ec7becfe00
commit 086aeb4c4c
8 changed files with 36 additions and 18 deletions

View File

@ -8,6 +8,8 @@
Little redesign of the preferences dialog. Little redesign of the preferences dialog.
New options for setting the placement of notebook tabs. New options for setting the placement of notebook tabs.
* doc/Makefile.am: Minor improvements. * doc/Makefile.am: Minor improvements.
* src/keyfile.c, src/geany.h, src/prefs.c, src/vte.c, src/callbacks.c,
src/dialogs.c: Added option to disable the VTE follows path feature.
2006-07-02 Nick Treleaven <nick.treleaven@btinternet.com> 2006-07-02 Nick Treleaven <nick.treleaven@btinternet.com>

View File

@ -766,19 +766,18 @@ on_notebook1_switch_page_after (GtkNotebook *notebook,
} }
#ifdef HAVE_VTE #ifdef HAVE_VTE
if (app->have_vte && vc->follow_path && doc_list[idx].file_name != NULL)
{
gchar *path; gchar *path;
gchar *cmd; gchar *cmd;
if (app->have_vte && doc_list[idx].file_name != NULL) path = g_path_get_dirname(doc_list[idx].file_name);
{ cmd = g_strconcat("cd ", path, "\n", NULL);
path = g_path_get_dirname(doc_list[idx].file_name); vte_send_cmd(cmd);
cmd = g_strconcat("cd ", path, "\n", "clear\n", NULL); g_free(path);
vte_send_cmd(cmd); g_free(cmd);
g_free(path); }
g_free(cmd);
}
#endif #endif
} }

View File

@ -1646,7 +1646,7 @@ void dialogs_show_prefs_dialog(void)
#ifdef HAVE_VTE #ifdef HAVE_VTE
GtkWidget *notebook, *vbox, *label, *alignment, *table; GtkWidget *notebook, *vbox, *label, *alignment, *table;
GtkWidget *font_term, *color_fore, *color_back, *spin_scrollback, *entry_emulation; GtkWidget *font_term, *color_fore, *color_back, *spin_scrollback, *entry_emulation;
GtkWidget *check_scroll_key, *check_scroll_out; GtkWidget *check_scroll_key, *check_scroll_out, *check_follow_path;
GtkTooltips *tooltips; GtkTooltips *tooltips;
GtkObject *spin_scrollback_adj; GtkObject *spin_scrollback_adj;
#endif #endif
@ -1686,7 +1686,7 @@ void dialogs_show_prefs_dialog(void)
gtk_box_pack_start(GTK_BOX(vbox), alignment, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), alignment, FALSE, FALSE, 0);
gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 6); gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 6);
table = gtk_table_new(7, 2, FALSE); table = gtk_table_new(8, 2, FALSE);
gtk_container_add(GTK_CONTAINER(alignment), table); gtk_container_add(GTK_CONTAINER(alignment), table);
gtk_table_set_row_spacings(GTK_TABLE(table), 3); gtk_table_set_row_spacings(GTK_TABLE(table), 3);
gtk_table_set_col_spacings(GTK_TABLE(table), 25); gtk_table_set_col_spacings(GTK_TABLE(table), 25);
@ -1770,6 +1770,13 @@ void dialogs_show_prefs_dialog(void)
gtk_tooltips_set_tip(tooltips, check_scroll_out, _("Whether to scroll to the bottom if an output was generated."), NULL); gtk_tooltips_set_tip(tooltips, check_scroll_out, _("Whether to scroll to the bottom if an output was generated."), NULL);
gtk_button_set_focus_on_click(GTK_BUTTON(check_scroll_out), FALSE); gtk_button_set_focus_on_click(GTK_BUTTON(check_scroll_out), FALSE);
check_follow_path = gtk_check_button_new_with_mnemonic(_("Follow the path of the current file"));
gtk_table_attach(GTK_TABLE(table), check_follow_path, 1, 2, 7, 8,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
gtk_tooltips_set_tip(tooltips, check_follow_path, _("Whether to execute \"cd $path\" when you switch between opened files."), NULL);
gtk_button_set_focus_on_click(GTK_BUTTON(check_follow_path), FALSE);
label = gtk_label_new(_("Terminal")); label = gtk_label_new(_("Terminal"));
gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook), gtk_notebook_get_nth_page( gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook), gtk_notebook_get_nth_page(
GTK_NOTEBOOK(notebook), 6), label); GTK_NOTEBOOK(notebook), 6), label);
@ -1788,6 +1795,8 @@ void dialogs_show_prefs_dialog(void)
gtk_widget_ref(check_scroll_key), (GDestroyNotify) gtk_widget_unref); gtk_widget_ref(check_scroll_key), (GDestroyNotify) gtk_widget_unref);
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "check_scroll_out", g_object_set_data_full(G_OBJECT(app->prefs_dialog), "check_scroll_out",
gtk_widget_ref(check_scroll_out), (GDestroyNotify) gtk_widget_unref); gtk_widget_ref(check_scroll_out), (GDestroyNotify) gtk_widget_unref);
g_object_set_data_full(G_OBJECT(app->prefs_dialog), "check_follow_path",
gtk_widget_ref(check_follow_path), (GDestroyNotify) gtk_widget_unref);
gtk_widget_show_all(vbox); gtk_widget_show_all(vbox);

View File

@ -180,6 +180,7 @@ typedef struct MyApp
gboolean load_vte; gboolean load_vte;
gboolean have_vte; gboolean have_vte;
gchar *lib_vte; gchar *lib_vte;
gchar *terminal_settings;
#endif #endif
gchar *long_line_color; gchar *long_line_color;
gchar *pref_template_developer; gchar *pref_template_developer;
@ -192,7 +193,6 @@ typedef struct MyApp
gchar *msgwin_font; gchar *msgwin_font;
gchar *configdir; gchar *configdir;
gchar *search_text; gchar *search_text;
gchar *terminal_settings;
gchar build_make_custopt[256]; gchar build_make_custopt[256];
gchar *tools_browser_cmd; gchar *tools_browser_cmd;
gchar *tools_make_cmd; gchar *tools_make_cmd;

View File

@ -106,7 +106,7 @@ void configuration_save(void)
#ifdef HAVE_VTE #ifdef HAVE_VTE
g_key_file_set_boolean(config, PACKAGE, "load_vte", app->load_vte); g_key_file_set_boolean(config, PACKAGE, "load_vte", app->load_vte);
g_key_file_set_comment(config, PACKAGE, "terminal_settings", g_key_file_set_comment(config, PACKAGE, "terminal_settings",
_(" VTE settings: FONT;FOREGROUND;BACKGROUND;scrollback;type;scroll on keystroke;scroll on output"), NULL); _(" VTE settings: FONT;FOREGROUND;BACKGROUND;scrollback;type;scroll on keystroke;scroll on output;follow path of file"), NULL);
g_key_file_set_string(config, PACKAGE, "terminal_settings", app->terminal_settings); g_key_file_set_string(config, PACKAGE, "terminal_settings", app->terminal_settings);
#endif #endif
g_key_file_set_string(config, PACKAGE, "editor_font", app->editor_font); g_key_file_set_string(config, PACKAGE, "editor_font", app->editor_font);

View File

@ -298,6 +298,9 @@ void prefs_init_dialog(void)
widget = lookup_widget(app->prefs_dialog, "check_scroll_out"); widget = lookup_widget(app->prefs_dialog, "check_scroll_out");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->scroll_on_out); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->scroll_on_out);
widget = lookup_widget(app->prefs_dialog, "check_follow_path");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), vc->follow_path);
} }
#endif #endif
} }
@ -480,6 +483,9 @@ void on_prefs_button_clicked(GtkDialog *dialog, gint response, gpointer user_dat
widget = lookup_widget(app->prefs_dialog, "check_scroll_out"); widget = lookup_widget(app->prefs_dialog, "check_scroll_out");
vc->scroll_on_out = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); vc->scroll_on_out = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
widget = lookup_widget(app->prefs_dialog, "check_follow_path");
vc->follow_path = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
g_free(app->terminal_settings); g_free(app->terminal_settings);
hex_color_fore = utils_get_hex_from_color(vc->color_fore); hex_color_fore = utils_get_hex_from_color(vc->color_fore);
hex_color_back = utils_get_hex_from_color(vc->color_back); hex_color_back = utils_get_hex_from_color(vc->color_back);

View File

@ -287,12 +287,12 @@ void vte_apply_user_settings(void)
static void vte_get_settings(void) static void vte_get_settings(void)
{ {
gchar **values = g_strsplit(app->terminal_settings, ";", 7); gchar **values = g_strsplit(app->terminal_settings, ";", 8);
if (g_strv_length(values) != 7) if (g_strv_length(values) != 8)
{ {
app->terminal_settings = g_strdup_printf("Monospace 10;#FFFFFF;#000000;500;xterm;true;true"); app->terminal_settings = g_strdup_printf("Monospace 10;#FFFFFF;#000000;500;xterm;true;true;false");
values = g_strsplit(app->terminal_settings, ";", 7); values = g_strsplit(app->terminal_settings, ";", 8);
} }
vc->font = g_strdup(values[0]); vc->font = g_strdup(values[0]);
vc->color_fore = g_new0(GdkColor, 1); vc->color_fore = g_new0(GdkColor, 1);
@ -307,6 +307,7 @@ static void vte_get_settings(void)
vc->scroll_on_key = utils_atob(values[5]); vc->scroll_on_key = utils_atob(values[5]);
vc->scroll_on_out = utils_atob(values[6]); vc->scroll_on_out = utils_atob(values[6]);
vc->follow_path = utils_atob(values[7]);
g_strfreev(values); g_strfreev(values);
} }
@ -330,7 +331,7 @@ static void vte_popup_menu_clicked(GtkMenuItem *menuitem, gpointer user_data)
case 2: case 2:
{ {
on_preferences1_activate(menuitem, NULL); on_preferences1_activate(menuitem, NULL);
gtk_notebook_set_current_page(GTK_NOTEBOOK(lookup_widget(app->prefs_dialog, "notebook2")), 5); gtk_notebook_set_current_page(GTK_NOTEBOOK(lookup_widget(app->prefs_dialog, "notebook2")), 6);
break; break;
} }
} }

View File

@ -70,6 +70,7 @@ struct vte_conf
GtkWidget *menu; GtkWidget *menu;
gboolean scroll_on_key; gboolean scroll_on_key;
gboolean scroll_on_out; gboolean scroll_on_out;
gboolean follow_path;
gint scrollback_lines; gint scrollback_lines;
gchar *emulation; gchar *emulation;
gchar *font; gchar *font;