# HG changeset patch # User masneyb # Date 1154183927 0 # Node ID 37bc51131e2d14b00225573463c4b9e58ede9f6f # Parent 96ce71cd7bf5eeaee729d22578394455e8205b22 2006-7-29 Brian Masney * lib/gftp.h lib/options.h lib/protocols.c src/gtk/gftp-gtk.c src/gtk/misc-gtk.c src/text/gftp-text.c - removed the startup_directory option. Added local_startup_directory and remote_startup_directory_options. These options are automatically saved whenever gftp exits. diff -r 96ce71cd7bf5 -r 37bc51131e2d ChangeLog --- a/ChangeLog Sat Jul 29 13:51:15 2006 +0000 +++ b/ChangeLog Sat Jul 29 14:38:47 2006 +0000 @@ -1,4 +1,10 @@ 2006-7-29 Brian Masney + * lib/gftp.h lib/options.h lib/protocols.c src/gtk/gftp-gtk.c + src/gtk/misc-gtk.c src/text/gftp-text.c - removed the + startup_directory option. Added local_startup_directory and + remote_startup_directory_options. These options are automatically + saved whenever gftp exits. + * src/gtk/bookmarks.c (edit_bookmarks) - fixed the keybindings in the bookmarks dialog. Also added mnemonics to all of the entries. (closes #329820) @@ -3513,7 +3519,7 @@ * cvsclean - added this script - * *.[ch] - added $Id: ChangeLog,v 1.460 2006/07/29 13:51:12 masneyb Exp $ tags + * *.[ch] - added $Id: ChangeLog,v 1.461 2006/07/29 14:38:44 masneyb Exp $ tags * debian/* - updated files from Debian maintainer diff -r 96ce71cd7bf5 -r 37bc51131e2d lib/gftp.h --- a/lib/gftp.h Sat Jul 29 13:51:15 2006 +0000 +++ b/lib/gftp.h Sat Jul 29 14:38:47 2006 +0000 @@ -1057,7 +1057,8 @@ int flags, mode_t perms ); -void gftp_setup_startup_directory ( gftp_request * request ); +void gftp_setup_startup_directory ( gftp_request * request, + const char *option_name ); unsigned int gftp_protocol_default_port ( gftp_request * request ); diff -r 96ce71cd7bf5 -r 37bc51131e2d lib/options.h --- a/lib/options.h Sat Jul 29 13:51:15 2006 +0000 +++ b/lib/options.h Sat Jul 29 14:38:47 2006 +0000 @@ -45,9 +45,6 @@ GFTP_PORT_GTK, NULL}, {"edit_program", N_("Edit program:"), gftp_option_type_text, "", NULL, 0, N_("The default program used to edit files."), GFTP_PORT_GTK, NULL}, - {"startup_directory", N_("Startup Directory:"), - gftp_option_type_text, "", NULL, 0, - N_("The default directory gFTP will go to on startup"), GFTP_PORT_ALL, NULL}, {"max_log_window_size", N_("Max Log Window Size:"), gftp_option_type_int, 0, NULL, 0, N_("The maximum size of the log window in bytes for the GTK+ port"), @@ -174,6 +171,11 @@ {"port_value", "", gftp_option_type_text, "", NULL, 0, NULL, 0, NULL}, {"user_value", "", gftp_option_type_text, "", NULL, 0, NULL, 0, NULL}, + {"local_startup_directory", "", gftp_option_type_text, "", NULL, 0, NULL, + 0, NULL}, + {"remote_startup_directory", "", gftp_option_type_text, "", NULL, 0, NULL, + 0, NULL}, + {"local_sortcol", "", gftp_option_type_intcombo, GINT_TO_POINTER(1), gftp_sort_columns, 0, N_("The default column to sort by"), GFTP_PORT_TEXT, NULL}, diff -r 96ce71cd7bf5 -r 37bc51131e2d lib/protocols.c --- a/lib/protocols.c Sat Jul 29 13:51:15 2006 +0000 +++ b/lib/protocols.c Sat Jul 29 14:38:47 2006 +0000 @@ -3112,11 +3112,11 @@ void -gftp_setup_startup_directory (gftp_request * request) +gftp_setup_startup_directory (gftp_request * request, const char *option_name) { char *startup_directory, *tempstr; - gftp_lookup_request_option (request, "startup_directory", &startup_directory); + gftp_lookup_request_option (request, option_name, &startup_directory); if (*startup_directory != '\0' && (tempstr = gftp_expand_path (request, startup_directory)) != NULL) diff -r 96ce71cd7bf5 -r 37bc51131e2d src/gtk/gftp-gtk.c --- a/src/gtk/gftp-gtk.c Sat Jul 29 13:51:15 2006 +0000 +++ b/src/gtk/gftp-gtk.c Sat Jul 29 14:38:47 2006 +0000 @@ -110,6 +110,12 @@ tempstr = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (useredit)->entry)); gftp_set_global_option ("user_value", tempstr); + tempstr = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (window1.combo)->entry)); + gftp_set_global_option ("local_startup_directory", tempstr); + + tempstr = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (window2.combo)->entry)); + gftp_set_global_option ("remote_startup_directory", tempstr); + tempwid = gtk_menu_get_active (GTK_MENU (protocol_menu)); ret = GPOINTER_TO_INT (gtk_object_get_user_data (GTK_OBJECT (tempwid))); gftp_set_global_option ("default_protocol", gftp_protocols[ret].name); @@ -754,9 +760,9 @@ {"text/plain", 0, 0}, {"application/x-rootwin-drop", 0, 1} }; + char *titles[7], tempstr[50], *startup_directory; GtkWidget *box, *scroll_list, *parent; intptr_t listbox_file_height, colwidth; - char *titles[7], tempstr[50]; titles[0] = ""; titles[1] = _("Filename"); @@ -793,7 +799,12 @@ if (*wdata->history) gtk_combo_set_popdown_strings (GTK_COMBO (wdata->combo), *wdata->history); gtk_combo_disable_activate (GTK_COMBO (wdata->combo)); - gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (wdata->combo)->entry), ""); + + g_snprintf (tempstr, sizeof (tempstr), "%s_startup_directory", + wdata->prefix_col_str); + gftp_lookup_global_option (tempstr, &startup_directory); + gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (wdata->combo)->entry), + startup_directory); wdata->hoststxt = gtk_label_new (NULL); gtk_misc_set_alignment (GTK_MISC (wdata->hoststxt), 0, 0); @@ -1338,7 +1349,8 @@ gtk_timeout_add (1000, update_downloads, NULL); if (gftp_protocols[GFTP_LOCAL_NUM].init (window1.request) == 0) { - gftp_setup_startup_directory (window1.request); + gftp_setup_startup_directory (window1.request, + "local_startup_directory"); gftp_connect (window1.request); ftp_list_files (&window1); } diff -r 96ce71cd7bf5 -r 37bc51131e2d src/gtk/misc-gtk.c --- a/src/gtk/misc-gtk.c Sat Jul 29 13:51:15 2006 +0000 +++ b/src/gtk/misc-gtk.c Sat Jul 29 14:38:47 2006 +0000 @@ -298,7 +298,7 @@ void update_window (gftp_window_data * wdata) { - char *dir, *tempstr, *temp1str, *fspec, *utf8_directory; + char *tempstr, *hostname, *fspec, *utf8_directory; int connected, start; connected = GFTP_IS_CONNECTED (wdata->request); @@ -306,33 +306,33 @@ { fspec = wdata->show_selected ? "Selected" : strcmp (wdata->filespec, "*") == 0 ? _("All Files") : wdata->filespec; - if ((temp1str = wdata->request->hostname) == NULL || + if (wdata->request->hostname == NULL || wdata->request->protonum == GFTP_LOCAL_NUM) - temp1str = ""; - tempstr = g_strconcat (temp1str, *temp1str == '\0' ? "[" : " [", - gftp_protocols[wdata->request->protonum].name, - wdata->request->cached ? _("] (Cached) [") : "] [", - fspec, "]", current_wdata == wdata ? "*" : "", NULL); + hostname = ""; + else + hostname = wdata->request->hostname; + + tempstr = g_strconcat (hostname, *hostname == '\0' ? "[" : " [", + gftp_protocols[wdata->request->protonum].name, + wdata->request->cached ? _("] (Cached) [") : "] [", + fspec, "]", current_wdata == wdata ? "*" : "", NULL); gtk_label_set (GTK_LABEL (wdata->hoststxt), tempstr); g_free (tempstr); - utf8_directory = NULL; - if ((dir = wdata->request->directory) == NULL) - temp1str = ""; - else + if (wdata->request->directory != NULL) { utf8_directory = gftp_string_to_utf8 (wdata->request, wdata->request->directory); if (utf8_directory != NULL) - temp1str = utf8_directory; + { + gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (wdata->combo)->entry), + utf8_directory); + g_free (utf8_directory); + } else - temp1str = dir; + gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (wdata->combo)->entry), + wdata->request->directory); } - - gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (wdata->combo)->entry),temp1str); - - if (utf8_directory != NULL) - g_free (utf8_directory); } else if (wdata->hoststxt != NULL) { @@ -340,7 +340,6 @@ current_wdata == wdata ? "*" : "", NULL); gtk_label_set (GTK_LABEL (wdata->hoststxt), tempstr); g_free (tempstr); - gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (wdata->combo)->entry), ""); } if (wdata == &window1) diff -r 96ce71cd7bf5 -r 37bc51131e2d src/text/gftp-text.c --- a/src/text/gftp-text.c Sat Jul 29 13:51:15 2006 +0000 +++ b/src/text/gftp-text.c Sat Jul 29 14:38:47 2006 +0000 @@ -268,7 +268,8 @@ if (gftp_protocols[GFTP_LOCAL_NUM].init (gftp_text_locreq) == 0) { - gftp_setup_startup_directory (gftp_text_locreq); + gftp_setup_startup_directory (gftp_text_locreq, + "local_startup_directory"); gftp_connect (gftp_text_locreq); } @@ -297,6 +298,9 @@ gftpui_common_cmd_open (remuidata, gftp_text_remreq, locuidata, gftp_text_locreq, argv[1]); + + gftp_setup_startup_directory (gftp_text_remreq, + "remote_startup_directory"); } #if HAVE_LIBREADLINE