Mercurial > gftp.yaz
comparison src/gtk/bookmarks.c @ 988:63555c9744c2
remote charset should be specified by each bookmark entry.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Fri, 14 Aug 2009 07:54:55 +0900 |
parents | 19b6d55e2646 |
children |
comparison
equal
deleted
inserted
replaced
987:2f6924c67846 | 988:63555c9744c2 |
---|---|
20 #include "gftp-gtk.h" | 20 #include "gftp-gtk.h" |
21 static const char cvsid[] = "$Id$"; | 21 static const char cvsid[] = "$Id$"; |
22 | 22 |
23 static GtkWidget * bm_dialog = NULL, * edit_bookmarks_dialog = NULL; | 23 static GtkWidget * bm_dialog = NULL, * edit_bookmarks_dialog = NULL; |
24 static GtkWidget * bm_hostedit, * bm_portedit, * bm_localdiredit, | 24 static GtkWidget * bm_hostedit, * bm_portedit, * bm_localdiredit, |
25 * bm_remotediredit, * bm_useredit, * bm_passedit, * tree, | 25 * bm_remotediredit, * bm_useredit, * bm_passedit, * tree, |
26 * bm_acctedit, * anon_chk, * bm_pathedit, * bm_protocol; | 26 * bm_acctedit, * anon_chk, * bm_pathedit, * bm_protocol, |
27 * bm_charsetedit; | |
27 static GHashTable * new_bookmarks_htable = NULL; | 28 static GHashTable * new_bookmarks_htable = NULL; |
28 static gftp_bookmarks_var * new_bookmarks = NULL; | 29 static gftp_bookmarks_var * new_bookmarks = NULL; |
29 static GtkItemFactory * edit_factory; | 30 static GtkItemFactory * edit_factory; |
30 | 31 |
31 | 32 |
214 if (tempentry->local_dir) | 215 if (tempentry->local_dir) |
215 newentry->local_dir = g_strdup (tempentry->local_dir); | 216 newentry->local_dir = g_strdup (tempentry->local_dir); |
216 | 217 |
217 if (tempentry->remote_dir) | 218 if (tempentry->remote_dir) |
218 newentry->remote_dir = g_strdup (tempentry->remote_dir); | 219 newentry->remote_dir = g_strdup (tempentry->remote_dir); |
220 | |
221 if (tempentry->remote_charset) | |
222 newentry->remote_charset = g_strdup (tempentry->remote_charset); | |
219 | 223 |
220 if (tempentry->user) | 224 if (tempentry->user) |
221 newentry->user = g_strdup (tempentry->user); | 225 newentry->user = g_strdup (tempentry->user); |
222 | 226 |
223 if (tempentry->pass) | 227 if (tempentry->pass) |
713 str = gtk_entry_get_text (GTK_ENTRY (bm_localdiredit)); | 717 str = gtk_entry_get_text (GTK_ENTRY (bm_localdiredit)); |
714 if (entry->local_dir != NULL) | 718 if (entry->local_dir != NULL) |
715 g_free (entry->local_dir); | 719 g_free (entry->local_dir); |
716 entry->local_dir = g_strdup (str); | 720 entry->local_dir = g_strdup (str); |
717 | 721 |
722 /* charset */ | |
723 str = gtk_entry_get_text (GTK_ENTRY (bm_charsetedit)); | |
724 if (entry->remote_charset != NULL) | |
725 g_free (entry->remote_charset); | |
726 entry->remote_charset = g_strdup (str); | |
727 | |
728 /* user */ | |
718 if (GTK_TOGGLE_BUTTON (anon_chk)->active) | 729 if (GTK_TOGGLE_BUTTON (anon_chk)->active) |
719 str = GFTP_ANONYMOUS_USER; | 730 str = GFTP_ANONYMOUS_USER; |
720 else | 731 else |
721 str = gtk_entry_get_text (GTK_ENTRY (bm_useredit)); | 732 str = gtk_entry_get_text (GTK_ENTRY (bm_useredit)); |
722 | 733 |
823 | 834 |
824 static void | 835 static void |
825 edit_entry (gpointer data) | 836 edit_entry (gpointer data) |
826 { | 837 { |
827 GtkWidget * table, * tempwid, * menu, * notebook; | 838 GtkWidget * table, * tempwid, * menu, * notebook; |
828 gftp_bookmarks_var * entry; | 839 volatile gftp_bookmarks_var * entry; |
829 unsigned int num, i; | 840 unsigned int num, i; |
830 char *pos; | 841 char *pos; |
831 | 842 |
832 if (bm_dialog != NULL) | 843 if (bm_dialog != NULL) |
833 { | 844 { |
978 gtk_widget_set_sensitive (bm_localdiredit, 0); | 989 gtk_widget_set_sensitive (bm_localdiredit, 0); |
979 else if (entry->local_dir) | 990 else if (entry->local_dir) |
980 gtk_entry_set_text (GTK_ENTRY (bm_localdiredit), entry->local_dir); | 991 gtk_entry_set_text (GTK_ENTRY (bm_localdiredit), entry->local_dir); |
981 gtk_widget_show (bm_localdiredit); | 992 gtk_widget_show (bm_localdiredit); |
982 | 993 |
994 /* remote charset */ | |
995 tempwid = gtk_label_new (_("Remote Charset:")); | |
996 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5); | |
997 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 6, 7); | |
998 gtk_widget_show (tempwid); | |
999 | |
1000 bm_charsetedit = gtk_entry_new (); | |
1001 gtk_table_attach_defaults (GTK_TABLE (table), bm_charsetedit, 1, 2, 6, 7); | |
1002 if (entry->isfolder) | |
1003 gtk_widget_set_sensitive (bm_charsetedit, 0); | |
1004 else if (entry->remote_charset) { | |
1005 gtk_entry_set_text (GTK_ENTRY (bm_charsetedit), entry->remote_charset); | |
1006 } | |
1007 gtk_widget_show (bm_charsetedit); | |
1008 | |
1009 /* separator line */ | |
983 tempwid = gtk_hseparator_new (); | 1010 tempwid = gtk_hseparator_new (); |
984 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 2, 7, 8); | 1011 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 2, 8, 9); |
985 gtk_widget_show (tempwid); | 1012 gtk_widget_show (tempwid); |
986 | 1013 |
1014 /* user name */ | |
987 tempwid = gtk_label_new (_("Username:")); | 1015 tempwid = gtk_label_new (_("Username:")); |
988 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5); | 1016 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5); |
989 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 8, 9); | 1017 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 9, 10); |
990 gtk_widget_show (tempwid); | 1018 gtk_widget_show (tempwid); |
991 | 1019 |
992 bm_useredit = gtk_entry_new (); | 1020 bm_useredit = gtk_entry_new (); |
993 gtk_table_attach_defaults (GTK_TABLE (table), bm_useredit, 1, 2, 8, 9); | 1021 gtk_table_attach_defaults (GTK_TABLE (table), bm_useredit, 1, 2, 9, 10); |
994 if (entry->isfolder) | 1022 if (entry->isfolder) |
995 gtk_widget_set_sensitive (bm_useredit, 0); | 1023 gtk_widget_set_sensitive (bm_useredit, 0); |
996 else if (entry->user) | 1024 else if (entry->user) |
997 gtk_entry_set_text (GTK_ENTRY (bm_useredit), entry->user); | 1025 gtk_entry_set_text (GTK_ENTRY (bm_useredit), entry->user); |
998 gtk_widget_show (bm_useredit); | 1026 gtk_widget_show (bm_useredit); |
999 | 1027 |
1000 tempwid = gtk_label_new (_("Password:")); | 1028 tempwid = gtk_label_new (_("Password:")); |
1001 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5); | 1029 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5); |
1002 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 9, 10); | 1030 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 10, 11); |
1003 gtk_widget_show (tempwid); | 1031 gtk_widget_show (tempwid); |
1004 | 1032 |
1005 bm_passedit = gtk_entry_new (); | 1033 bm_passedit = gtk_entry_new (); |
1006 gtk_table_attach_defaults (GTK_TABLE (table), bm_passedit, 1, 2, 9, 10); | 1034 gtk_table_attach_defaults (GTK_TABLE (table), bm_passedit, 1, 2, 10, 11); |
1007 gtk_entry_set_visibility (GTK_ENTRY (bm_passedit), FALSE); | 1035 gtk_entry_set_visibility (GTK_ENTRY (bm_passedit), FALSE); |
1008 if (entry->isfolder) | 1036 if (entry->isfolder) |
1009 gtk_widget_set_sensitive (bm_passedit, 0); | 1037 gtk_widget_set_sensitive (bm_passedit, 0); |
1010 else if (entry->pass) | 1038 else if (entry->pass) |
1011 gtk_entry_set_text (GTK_ENTRY (bm_passedit), entry->pass); | 1039 gtk_entry_set_text (GTK_ENTRY (bm_passedit), entry->pass); |
1012 gtk_widget_show (bm_passedit); | 1040 gtk_widget_show (bm_passedit); |
1013 | 1041 |
1014 tempwid = gtk_label_new (_("Account:")); | 1042 tempwid = gtk_label_new (_("Account:")); |
1015 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5); | 1043 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5); |
1016 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 10, 11); | 1044 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 11, 12); |
1017 gtk_widget_show (tempwid); | 1045 gtk_widget_show (tempwid); |
1018 | 1046 |
1019 bm_acctedit = gtk_entry_new (); | 1047 bm_acctedit = gtk_entry_new (); |
1020 gtk_table_attach_defaults (GTK_TABLE (table), bm_acctedit, 1, 2, 10, 11); | 1048 gtk_table_attach_defaults (GTK_TABLE (table), bm_acctedit, 1, 2, 11, 12); |
1021 gtk_entry_set_visibility (GTK_ENTRY (bm_acctedit), FALSE); | 1049 gtk_entry_set_visibility (GTK_ENTRY (bm_acctedit), FALSE); |
1022 if (entry->isfolder) | 1050 if (entry->isfolder) |
1023 gtk_widget_set_sensitive (bm_acctedit, 0); | 1051 gtk_widget_set_sensitive (bm_acctedit, 0); |
1024 else if (entry->acct) | 1052 else if (entry->acct) |
1025 gtk_entry_set_text (GTK_ENTRY (bm_acctedit), entry->acct); | 1053 gtk_entry_set_text (GTK_ENTRY (bm_acctedit), entry->acct); |
1026 gtk_widget_show (bm_acctedit); | 1054 gtk_widget_show (bm_acctedit); |
1027 | 1055 |
1028 anon_chk = gtk_check_button_new_with_label (_("Log in as ANONYMOUS")); | 1056 anon_chk = gtk_check_button_new_with_label (_("Log in as ANONYMOUS")); |
1029 gtk_table_attach_defaults (GTK_TABLE (table), anon_chk, 0, 2, 11, 12); | 1057 gtk_table_attach_defaults (GTK_TABLE (table), anon_chk, 0, 2, 12, 13); |
1030 if (entry->isfolder) | 1058 if (entry->isfolder) |
1031 gtk_widget_set_sensitive (anon_chk, 0); | 1059 gtk_widget_set_sensitive (anon_chk, 0); |
1032 else | 1060 else |
1033 { | 1061 { |
1034 gtk_signal_connect (GTK_OBJECT (anon_chk), "toggled", | 1062 gtk_signal_connect (GTK_OBJECT (anon_chk), "toggled", |