changeset 792:37bc51131e2d

2006-7-29 Brian Masney <masneyb@gftp.org> * 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.
author masneyb
date Sat, 29 Jul 2006 14:38:47 +0000
parents 96ce71cd7bf5
children fbc903d84577
files ChangeLog lib/gftp.h lib/options.h lib/protocols.c src/gtk/gftp-gtk.c src/gtk/misc-gtk.c src/text/gftp-text.c
diffstat 7 files changed, 54 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- 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 <masneyb@gftp.org>
+	* 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
 
--- 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 );
 
--- 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},
--- 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)
--- 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);
     }
--- 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)
--- 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