annotate src/gtk/bookmarks.c @ 303:3b9d5797050f

2003-11-2 Brian Masney <masneyb@gftp.org> * lib/rfc2068.c (rfc2068_chunked_read) - more improvements to this function so that it will parse more chunked file transfers correctly. * lib/misc.c lib/gftp.h lib/rfc2068.c src/gtk/bookmarks.c src/gtk/dnd.c - removed remove_double_slashes(). Call gftp_build_path() to build the paths. This now allows Novell directory listings with //server * lib/protocols.c src/gtk/transfer.c lib/gftp.h - added variable conn_error_no_timeout to gftp_transfer structure. If this is enabled, if the remote connection to the server timed out, don't wait and immediately reconnect. So far, the only time this is used is when the user was editing a file and it is to be uploaded back to the server. * src/gtk/gftp-gtk.h src/gtk/transfer.c - add_file_transfer() now returns the struct gftp_transfer that was just added. * src/gtk/misc-gtk.c (update_directory_download_progress) - don't make the window a popup and remove the window decorations * src/text/gftp-text.c - don't populate the transfer_direction variable in struct gftp_transfer. This is only needed by the GTK+ port and will hopefully be taken out soon. * lib/gftp.h - remove gftp_transfer_type enum. It wasn't used anymore.
author masneyb
date Mon, 03 Nov 2003 02:14:05 +0000
parents 470759f49ba2
children eedc2c5727fa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1 /*****************************************************************************/
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
2 /* bookmarks.c - routines for the bookmarks */
255
2ad324cf4930 2003-8-11 Brian Masney <masneyb@gftp.org>
masneyb
parents: 243
diff changeset
3 /* Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org> */
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
4 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
5 /* This program is free software; you can redistribute it and/or modify */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
6 /* it under the terms of the GNU General Public License as published by */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
7 /* the Free Software Foundation; either version 2 of the License, or */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
8 /* (at your option) any later version. */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
9 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
10 /* This program is distributed in the hope that it will be useful, */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
11 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
12 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
13 /* GNU General Public License for more details. */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
14 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
15 /* You should have received a copy of the GNU General Public License */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
16 /* along with this program; if not, write to the Free Software */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
17 /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
18 /*****************************************************************************/
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
19
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
20 #include "gftp-gtk.h"
33
c8ec7877432e 2002-10-06 Brian Masney <masneyb@gftp.org>
masneyb
parents: 26
diff changeset
21 static const char cvsid[] = "$Id$";
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
22
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
23 static GtkWidget * bm_hostedit, * bm_portedit, * bm_localdiredit,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
24 * bm_remotediredit, * bm_useredit, * bm_passedit, * bm_acctedit, * anon_chk,
199
75eebb3b0592 2003-6-24 Brian Masney <masneyb@gftp.org>
masneyb
parents: 168
diff changeset
25 * bm_pathedit, * bm_protocol, * tree;
227
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
26 static GHashTable * new_bookmarks_htable = NULL;
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
27 static gftp_bookmarks_var * new_bookmarks = NULL;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
28 static GtkItemFactory * edit_factory;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
29
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
30
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
31 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
32 run_bookmark (gpointer data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
33 {
275
5810b0f97eee 2003-9-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
34 int refresh_local;
5810b0f97eee 2003-9-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
35
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
36 if (window1.request->stopable || window2.request->stopable)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
37 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
38 ftp_log (gftp_logging_misc, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
39 _("%s: Please hit the stop button first to do anything else\n"),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
40 _("Run Bookmark"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
41 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
42 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
43
285
470759f49ba2 2003-10-12 Brian Masney <masneyb@gftp.org>
masneyb
parents: 275
diff changeset
44 if (GFTP_IS_CONNECTED (current_wdata->request))
470759f49ba2 2003-10-12 Brian Masney <masneyb@gftp.org>
masneyb
parents: 275
diff changeset
45 disconnect (current_wdata);
470759f49ba2 2003-10-12 Brian Masney <masneyb@gftp.org>
masneyb
parents: 275
diff changeset
46
243
b42e7233533a 2003-7-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 229
diff changeset
47 if (gftp_parse_bookmark (current_wdata->request, other_wdata->request,
275
5810b0f97eee 2003-9-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
48 (char *) data, &refresh_local) < 0)
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
49 return;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
50
275
5810b0f97eee 2003-9-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
51 if (refresh_local)
5810b0f97eee 2003-9-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
52 refresh (other_wdata);
5810b0f97eee 2003-9-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 255
diff changeset
53
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
54 ftp_connect (current_wdata, current_wdata->request, 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
55 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
56
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
57
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
58 static void
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
59 doadd_bookmark (gpointer * data, gftp_dialog_data * ddata)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
60 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
61 GtkItemFactoryEntry test = { NULL, NULL, run_bookmark, 0 };
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
62 const char *edttxt, *spos;
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
63 gftp_bookmarks_var * tempentry;
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
64 char *dpos, *proto;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
65
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
66 edttxt = gtk_entry_get_text (GTK_ENTRY (ddata->edit));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
67 if (*edttxt == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
68 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
69 ftp_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
70 _("Add Bookmark: You must enter a name for the bookmark\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
71 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
72 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
73
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
74 if (g_hash_table_lookup (gftp_bookmarks_htable, edttxt) != NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
75 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
76 ftp_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
77 _("Add Bookmark: Cannot add bookmark %s because that name already exists\n"), edttxt);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
78 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
79 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
80
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
81 tempentry = g_malloc0 (sizeof (*tempentry));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
82
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
83 dpos = tempentry->path = g_malloc (strlen (edttxt) + 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
84 for (spos = edttxt; *spos != '\0';)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
85 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
86 *dpos++ = *spos++;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
87 if (*spos == '/')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
88 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
89 *dpos++ = '/';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
90 for (; *spos == '/'; spos++);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
91 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
92 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
93 *dpos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
94
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
95 edttxt = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (hostedit)->entry));
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
96 tempentry->hostname = g_strdup (edttxt);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
97
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
98 edttxt = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (portedit)->entry));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
99 tempentry->port = strtol (edttxt, NULL, 10);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
100
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
101 proto = gftp_protocols[current_wdata->request->protonum].name;
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
102 tempentry->protocol = g_strdup (proto);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
103
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
104 edttxt = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (other_wdata->combo)->entry));
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
105 tempentry->local_dir = g_strdup (edttxt);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
106
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
107 edttxt = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (current_wdata->combo)->entry));
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
108 tempentry->remote_dir = g_strdup (edttxt);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
109
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
110 if ((edttxt = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (useredit)->entry))) != NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
111 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
112 tempentry->user = g_strdup (edttxt);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
113
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
114 edttxt = gtk_entry_get_text (GTK_ENTRY (passedit));
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
115 tempentry->pass = g_strdup (edttxt);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
116 tempentry->save_password = GTK_TOGGLE_BUTTON (ddata->checkbox)->active;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
117 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
118
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
119 gftp_add_bookmark (tempentry);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
120
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
121 test.path = g_strconcat ("/Bookmarks/", tempentry->path, NULL);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
122 gtk_item_factory_create_item (factory, &test, (gpointer) tempentry->path,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
123 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
124 g_free (test.path);
26
d74bfa342116 2002-09-24 gettextize <bug-gnu-gettext@gnu.org>
masneyb
parents: 23
diff changeset
125 gftp_write_bookmarks_file ();
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
126 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
127
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
128
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
129 void
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
130 add_bookmark (gpointer data)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
131 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
132 const char *edttxt;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
133
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
134 if (!check_status (_("Add Bookmark"), current_wdata, 0, 0, 0, 1))
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
135 return;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
136
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
137 edttxt = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (hostedit)->entry));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
138 if (*edttxt == '\0')
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
139 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
140 ftp_log (gftp_logging_error, NULL,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
141 _("Add Bookmark: You must enter a hostname\n"));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
142 return;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
143 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
144
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
145 MakeEditDialog (_("Add Bookmark"), _("Enter the name of the bookmark you want to add\nYou can separate items by a / to put it into a submenu\n(ex: Linux Sites/Debian)"), NULL, 1, _("Remember password"), gftp_dialog_button_create, doadd_bookmark, data, NULL, NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
146 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
147
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
148
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
149 void
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
150 build_bookmarks_menu (void)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
151 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
152 GtkItemFactoryEntry test = { NULL, NULL, NULL, 0 };
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
153 gftp_bookmarks_var * tempentry;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
154
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
155 tempentry = gftp_bookmarks->children;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
156 while (tempentry != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
157 {
7
5551ab2301fe * Fixed a DND crash
masneyb
parents: 1
diff changeset
158 test.path = g_strconcat ("/Bookmarks/", tempentry->path, NULL);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
159 if (tempentry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
160 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
161 test.item_type = "<Branch>";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
162 test.callback = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
163 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
164 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
165 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
166 test.item_type = "";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
167 test.callback = run_bookmark;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
168 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
169 gtk_item_factory_create_item (factory, &test,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
170 (gpointer) tempentry->path, 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
171 g_free (test.path);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
172 if (tempentry->children != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
173 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
174 tempentry = tempentry->children;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
175 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
176 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
177 while (tempentry->next == NULL && tempentry->prev != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
178 tempentry = tempentry->prev;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
179
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
180 tempentry = tempentry->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
181 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
182 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
183
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
184
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
185 static gftp_bookmarks_var *
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
186 copy_bookmarks (gftp_bookmarks_var * bookmarks)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
187 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
188 gftp_bookmarks_var * new_bm, * preventry, * tempentry, * sibling, * newentry,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
189 * tentry;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
190
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
191 new_bm = g_malloc0 (sizeof (*new_bm));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
192 new_bm->path = g_malloc0 (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
193 new_bm->isfolder = bookmarks->isfolder;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
194 preventry = new_bm;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
195 tempentry = bookmarks->children;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
196 sibling = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
197 while (tempentry != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
198 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
199 newentry = g_malloc0 (sizeof (*newentry));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
200 newentry->isfolder = tempentry->isfolder;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
201 newentry->save_password = tempentry->save_password;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
202 newentry->cnode = tempentry->cnode;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
203 if (tempentry->path)
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
204 newentry->path = g_strdup (tempentry->path);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
205
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
206 if (tempentry->hostname)
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
207 newentry->hostname = g_strdup (tempentry->hostname);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
208
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
209 if (tempentry->protocol)
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
210 newentry->protocol = g_strdup (tempentry->protocol);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
211
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
212 if (tempentry->local_dir)
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
213 newentry->local_dir = g_strdup (tempentry->local_dir);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
214
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
215 if (tempentry->remote_dir)
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
216 newentry->remote_dir = g_strdup (tempentry->remote_dir);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
217
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
218 if (tempentry->user)
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
219 newentry->user = g_strdup (tempentry->user);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
220
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
221 if (tempentry->pass)
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
222 newentry->pass = g_strdup (tempentry->pass);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
223
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
224 if (tempentry->acct)
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
225 newentry->acct = g_strdup (tempentry->acct);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
226
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
227 newentry->port = tempentry->port;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
228
229
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
229 gftp_copy_local_options (&newentry->local_options_vars,
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
230 &newentry->local_options_hash,
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
231 tempentry->local_options_vars,
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
232 tempentry->num_local_options_vars);
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
233 newentry->num_local_options_vars = tempentry->num_local_options_vars;
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
234
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
235 if (sibling == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
236 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
237 if (preventry->children == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
238 preventry->children = newentry;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
239 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
240 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
241 tentry = preventry->children;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
242 while (tentry->next != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
243 tentry = tentry->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
244 tentry->next = newentry;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
245 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
246 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
247 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
248 sibling->next = newentry;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
249 newentry->prev = preventry;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
250
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
251 if (tempentry->children != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
252 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
253 preventry = newentry;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
254 sibling = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
255 tempentry = tempentry->children;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
256 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
257 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
258 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
259 if (tempentry->next == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
260 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
261 sibling = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
262 while (tempentry->next == NULL && tempentry->prev != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
263 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
264 tempentry = tempentry->prev;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
265 preventry = preventry->prev;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
266 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
267 tempentry = tempentry->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
268 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
269 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
270 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
271 sibling = newentry;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
272 tempentry = tempentry->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
273 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
274 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
275 }
229
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
276
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
277 return (new_bm);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
278 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
279
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
280
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
281 static void
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
282 bm_apply_changes (GtkWidget * widget, gpointer backup_data)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
283 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
284 gftp_bookmarks_var * tempentry, * delentry;
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
285 char *tempstr;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
286
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
287 tempentry = gftp_bookmarks->children;
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
288 while (tempentry != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
289 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
290 if (tempentry->path && !tempentry->isfolder)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
291 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
292 tempstr = g_strdup_printf ("/Bookmarks/%s", tempentry->path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
293 gtk_widget_destroy (gtk_item_factory_get_item (factory, tempstr));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
294 g_free (tempentry->path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
295 g_free (tempstr);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
296 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
297
199
75eebb3b0592 2003-6-24 Brian Masney <masneyb@gftp.org>
masneyb
parents: 168
diff changeset
298 gftp_free_bookmark (tempentry);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
299
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
300 if (tempentry->children != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
301 tempentry = tempentry->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
302 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
303 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
304 if (tempentry->next == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
305 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
306 while (tempentry->next == NULL && tempentry->prev != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
307 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
308 delentry = tempentry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
309 tempentry = tempentry->prev;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
310 if (delentry->isfolder)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
311 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
312 tempstr = g_strdup_printf ("/Bookmarks/%s",
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
313 delentry->path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
314 gtk_widget_destroy (gtk_item_factory_get_item (factory,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
315 tempstr));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
316 g_free (tempstr);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
317 g_free (delentry->path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
318 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
319 g_free (delentry);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
320 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
321 delentry = tempentry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
322 tempentry = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
323 if (delentry->isfolder && tempentry != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
324 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
325 tempstr = g_strdup_printf ("/Bookmarks/%s",
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
326 delentry->path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
327 gtk_widget_destroy (gtk_item_factory_get_item (factory,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
328 tempstr));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
329 g_free (delentry->path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
330 g_free (tempstr);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
331 g_free (delentry);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
332 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
333 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
334 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
335 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
336 delentry = tempentry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
337 tempentry = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
338 g_free (delentry);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
339 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
340 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
341 }
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
342 g_free (gftp_bookmarks);
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
343 g_hash_table_destroy (gftp_bookmarks_htable);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
344
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
345 gftp_bookmarks = new_bookmarks;
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
346 gftp_bookmarks_htable = new_bookmarks_htable;
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
347 if (backup_data)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
348 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
349 new_bookmarks = copy_bookmarks (gftp_bookmarks);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
350 new_bookmarks_htable = build_bookmarks_hash_table (new_bookmarks);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
351 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
352 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
353 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
354 new_bookmarks = NULL;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
355 new_bookmarks_htable = NULL;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
356 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
357 build_bookmarks_menu ();
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
358 gftp_write_bookmarks_file ();
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
359 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
360
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
361
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
362 static void
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
363 bm_close_dialog (GtkWidget * widget, GtkWidget * dialog)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
364 {
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 199
diff changeset
365 if (new_bookmarks_htable != NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
366 {
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 199
diff changeset
367 g_hash_table_destroy (new_bookmarks_htable);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 199
diff changeset
368 new_bookmarks_htable = NULL;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
369 }
23
e19785b088d7 2002-09-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 19
diff changeset
370
227
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
371 if (new_bookmarks != NULL)
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
372 {
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
373 gftp_bookmarks_destroy (new_bookmarks);
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
374 new_bookmarks = NULL;
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
375 }
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 199
diff changeset
376
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
377 gtk_widget_destroy (dialog);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
378 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
379
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
380
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
381 #if GTK_MAJOR_VERSION > 1
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
382 static void
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
383 editbm_action (GtkWidget * widget, gint response, gpointer user_data)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
384 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
385 switch (response)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
386 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
387 case GTK_RESPONSE_OK:
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
388 bm_apply_changes (widget, NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
389 /* no break */
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
390 default:
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
391 bm_close_dialog (NULL, widget);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
392 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
393 }
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
394 #endif
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
395
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
396
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
397 static void
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
398 do_make_new (gpointer data, gftp_dialog_data * ddata)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
399 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
400 GdkPixmap * closedir_pixmap, * opendir_pixmap;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
401 GdkBitmap * closedir_bitmap, * opendir_bitmap;
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
402 gftp_bookmarks_var * tempentry, * newentry;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
403 GtkCTreeNode * sibling;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
404 char *pos, *text[2];
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
405 const char *str;
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
406 #if GTK_MAJOR_VERSION > 1
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
407 gsize bread, bwrite;
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
408 #endif
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
409
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
410 gftp_get_pixmap (tree, "open_dir.xpm", &opendir_pixmap, &opendir_bitmap);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
411 gftp_get_pixmap (tree, "dir.xpm", &closedir_pixmap, &closedir_bitmap);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
412
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
413 str = gtk_entry_get_text (GTK_ENTRY (ddata->edit));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
414
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
415 newentry = g_malloc0 (sizeof (*newentry));
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
416 #if GTK_MAJOR_VERSION == 1
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
417 newentry->path = g_strdup (str);
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
418
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
419 while ((pos = strchr (str, '/')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
420 *pos++ = ' ';
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
421 #else
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
422 if (g_utf8_validate (str, -1, NULL))
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
423 newentry->path = g_strdup (str);
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
424 else
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
425 newentry->path = g_locale_to_utf8 (str, -1, &bread, &bwrite, NULL);
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
426
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
427 while ((pos = g_utf8_strchr (str, -1, '/')) != NULL)
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
428 *pos++ = ' ';
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
429 #endif
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
430
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
431 newentry->prev = new_bookmarks;
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
432 if (data)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
433 newentry->isfolder = 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
434
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
435 if (new_bookmarks->children == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
436 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
437 new_bookmarks->children = newentry;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
438 sibling = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
439 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
440 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
441 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
442 tempentry = new_bookmarks->children;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
443 while (tempentry->next != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
444 tempentry = tempentry->next;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
445 tempentry->next = newentry;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
446 sibling = tempentry->cnode;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
447 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
448
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
449 text[0] = text[1] = newentry->path;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
450
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
451 if (newentry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
452 newentry->cnode = gtk_ctree_insert_node (GTK_CTREE (tree),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
453 new_bookmarks->cnode, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
454 text, 5, closedir_pixmap,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
455 closedir_bitmap, opendir_pixmap,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
456 opendir_bitmap, FALSE, FALSE);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
457 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
458 newentry->cnode = gtk_ctree_insert_node (GTK_CTREE (tree),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
459 new_bookmarks->cnode, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
460 text, 5, NULL, NULL, NULL, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
461 FALSE, FALSE);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
462
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
463 gtk_ctree_node_set_row_data (GTK_CTREE (tree), newentry->cnode, newentry);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
464 g_hash_table_insert (new_bookmarks_htable, newentry->path, newentry);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
465 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
466
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
467
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
468 static void
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
469 new_folder_entry (gpointer data)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
470 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
471 MakeEditDialog (_("New Folder"),
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
472 _("Enter the name of the new folder to create"), NULL, 1,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
473 NULL, gftp_dialog_button_create,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
474 do_make_new, (gpointer) 0x1, NULL, NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
475 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
476
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
477
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
478 static void
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
479 new_item_entry (gpointer data)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
480 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
481 MakeEditDialog (_("New Folder"),
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
482 _("Enter the name of the new item to create"), NULL, 1,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
483 NULL, gftp_dialog_button_create,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
484 do_make_new, NULL, NULL, NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
485 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
486
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
487
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
488 static void
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
489 do_delete_entry (gftp_bookmarks_var * entry, gftp_dialog_data * ddata)
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
490 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
491 gftp_bookmarks_var * tempentry, * delentry;
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
492
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
493 g_hash_table_remove (new_bookmarks_htable, entry->path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
494 gtk_ctree_remove_node (GTK_CTREE (tree), entry->cnode);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
495 if (entry->prev->children == entry)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
496 entry->prev->children = entry->prev->children->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
497 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
498 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
499 tempentry = entry->prev->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
500 while (tempentry->next != entry)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
501 tempentry = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
502 tempentry->next = entry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
503 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
504
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
505 entry->prev = NULL;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
506 entry->next = NULL;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
507 tempentry = entry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
508 while (tempentry != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
509 {
199
75eebb3b0592 2003-6-24 Brian Masney <masneyb@gftp.org>
masneyb
parents: 168
diff changeset
510 gftp_free_bookmark (tempentry);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
511
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
512 if (tempentry->children != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
513 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
514 tempentry = tempentry->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
515 continue;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
516 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
517 else if (tempentry->next == NULL && tempentry->prev != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
518 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
519 delentry = tempentry->prev;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
520 g_free (tempentry);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
521 tempentry = delentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
522 if (delentry != entry)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
523 g_free (delentry);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
524 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
525 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
526 tempentry = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
527 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
528 g_free (entry);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
529 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
530
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
531
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
532 static void
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
533 delete_entry (gpointer data)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
534 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
535 gftp_bookmarks_var * entry;
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
536 char *tempstr, *pos;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
537
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
538 if (GTK_CLIST (tree)->selection == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
539 return;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
540 entry =
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
541 gtk_ctree_node_get_row_data (GTK_CTREE (tree),
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
542 GTK_CLIST (tree)->selection->data);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
543 if (entry == NULL || entry->prev == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
544 return;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
545
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
546 if (!entry->isfolder)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
547 do_delete_entry (entry, NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
548 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
549 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
550 if ((pos = strrchr (entry->path, '/')) == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
551 pos = entry->path;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
552 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
553 pos++;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
554
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
555 tempstr = g_strdup_printf (_("Are you sure you want to erase the bookmark\n%s and all it's children?"), pos);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
556 MakeYesNoDialog (_("Delete Bookmark"), tempstr, do_delete_entry, entry,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
557 NULL, NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
558 g_free (tempstr);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
559 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
560 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
561
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
562
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
563 static void
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
564 set_userpass_visible (GtkWidget * checkbutton, GtkWidget * entry)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
565 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
566 gtk_widget_set_sensitive (bm_useredit, !GTK_TOGGLE_BUTTON (anon_chk)->active);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
567 gtk_widget_set_sensitive (bm_passedit, !GTK_TOGGLE_BUTTON (anon_chk)->active);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
568 gtk_widget_set_sensitive (bm_acctedit, !GTK_TOGGLE_BUTTON (anon_chk)->active);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
569 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
570
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
571
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
572 static void
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
573 build_bookmarks_tree (void)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
574 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
575 GdkPixmap * closedir_pixmap, * opendir_pixmap;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
576 GdkBitmap * closedir_bitmap, * opendir_bitmap;
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
577 gftp_bookmarks_var * tempentry, * preventry;
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
578 char *pos, *prevpos, *text[2], *str;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
579 GtkCTreeNode * parent;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
580
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
581 gftp_get_pixmap (tree, "open_dir.xpm", &opendir_pixmap, &opendir_bitmap);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
582 gftp_get_pixmap (tree, "dir.xpm", &closedir_pixmap, &closedir_bitmap);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
583 text[0] = text[1] = _("Bookmarks");
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
584 parent = gtk_ctree_insert_node (GTK_CTREE (tree), NULL, NULL, text, 5,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
585 closedir_pixmap, closedir_bitmap,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
586 opendir_pixmap, opendir_bitmap, FALSE, TRUE);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
587 gtk_ctree_node_set_row_data (GTK_CTREE (tree), parent, new_bookmarks);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
588 new_bookmarks->cnode = parent;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
589
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
590 tempentry = new_bookmarks->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
591 while (tempentry != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
592 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
593 tempentry->cnode = NULL;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
594 if (tempentry->children != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
595 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
596 tempentry = tempentry->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
597 continue;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
598 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
599 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
600 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
601 pos = tempentry->path;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
602 while ((pos = strchr (pos, '/')) != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
603 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
604 *pos = '\0';
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
605 str = g_strdup (tempentry->path);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
606 *pos = '/';
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
607 preventry = g_hash_table_lookup (new_bookmarks_htable, str);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
608 if (preventry->cnode == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
609 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
610 if ((prevpos = strrchr (str, '/')) == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
611 prevpos = str;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
612 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
613 prevpos++;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
614 text[0] = text[1] = prevpos;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
615 preventry->cnode = gtk_ctree_insert_node (GTK_CTREE (tree),
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
616 preventry->prev->cnode, NULL, text,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
617 5, closedir_pixmap, closedir_bitmap,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
618 opendir_pixmap, opendir_bitmap,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
619 FALSE, FALSE);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
620 gtk_ctree_node_set_row_data (GTK_CTREE (tree),
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
621 preventry->cnode, preventry);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
622 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
623
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
624 g_free (str);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
625 pos++;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
626 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
627 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
628
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
629 if ((pos = strrchr (tempentry->path, '/')) == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
630 pos = tempentry->path;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
631 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
632 pos++;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
633
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
634 text[0] = text[1] = pos;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
635 tempentry->cnode = gtk_ctree_insert_node (GTK_CTREE (tree),
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
636 tempentry->prev->cnode, NULL,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
637 text, 5, NULL, NULL, NULL, NULL, FALSE, FALSE);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
638 gtk_ctree_node_set_row_data (GTK_CTREE (tree), tempentry->cnode,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
639 tempentry);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
640
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
641 while (tempentry->next == NULL && tempentry->prev != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
642 tempentry = tempentry->prev;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
643 tempentry = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
644 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
645 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
646
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
647
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
648 static void
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
649 clear_bookmarks_tree (void)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
650 {
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
651 gftp_bookmarks_var * tempentry;
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
652
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
653 tempentry = new_bookmarks->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
654 while (tempentry != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
655 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
656 if (tempentry->children != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
657 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
658 tempentry = tempentry->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
659 continue;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
660 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
661 while (tempentry->next == NULL && tempentry->prev != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
662 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
663 gtk_ctree_remove_node (GTK_CTREE (tree), tempentry->cnode);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
664 tempentry->cnode = NULL;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
665 tempentry = tempentry->prev;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
666 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
667 gtk_ctree_remove_node (GTK_CTREE (tree), tempentry->cnode);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
668 tempentry->cnode = NULL;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
669 tempentry = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
670 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
671 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
672
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
673
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
674 static void
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
675 entry_apply_changes (GtkWidget * widget, gftp_bookmarks_var * entry)
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
676 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
677 char *pos, *newpath, tempchar, *tempstr, *origpath;
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
678 gftp_bookmarks_var * tempentry, * nextentry;
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
679 GtkWidget * tempwid;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
680 const char *str;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
681 int oldpathlen;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
682
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
683 oldpathlen = strlen (entry->path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
684 if ((pos = strrchr (entry->path, '/')) == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
685 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
686 pos = entry->path;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
687 tempchar = *entry->path;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
688 *entry->path = '\0';
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
689 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
690 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
691 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
692 tempchar = *pos;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
693 *pos = '\0';
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
694 }
303
3b9d5797050f 2003-11-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 285
diff changeset
695
3b9d5797050f 2003-11-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 285
diff changeset
696 origpath = newpath = gftp_build_path (entry->path, gtk_entry_get_text (GTK_ENTRY (bm_pathedit)), NULL);
3b9d5797050f 2003-11-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 285
diff changeset
697
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
698 for (; *newpath == '/'; newpath++);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
699 *pos = tempchar;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
700
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
701 str = gtk_entry_get_text (GTK_ENTRY (bm_hostedit));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
702 if (entry->hostname)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
703 g_free (entry->hostname);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
704 entry->hostname = g_strdup (str);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
705
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
706 str = gtk_entry_get_text (GTK_ENTRY (bm_portedit));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
707 entry->port = strtol (str, NULL, 10);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
708
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
709 tempwid = gtk_menu_get_active (GTK_MENU (bm_protocol));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
710 str = gtk_object_get_user_data (GTK_OBJECT (tempwid));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
711 if (entry->protocol)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
712 g_free (entry->protocol);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
713 entry->protocol = g_strdup (str);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
714
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
715 str = gtk_entry_get_text (GTK_ENTRY (bm_remotediredit));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
716 if (entry->remote_dir)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
717 g_free (entry->remote_dir);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
718 entry->remote_dir = g_strdup (str);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
719
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
720 str = gtk_entry_get_text (GTK_ENTRY (bm_localdiredit));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
721 if (entry->local_dir)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
722 g_free (entry->local_dir);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
723 entry->local_dir = g_strdup (str);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
724
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
725 if (GTK_TOGGLE_BUTTON (anon_chk)->active)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
726 str = "anonymous";
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
727 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
728 str = gtk_entry_get_text (GTK_ENTRY (bm_useredit));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
729 if (entry->user)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
730 g_free (entry->user);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
731 entry->user = g_strdup (str);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
732
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
733 if (GTK_TOGGLE_BUTTON (anon_chk)->active)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
734 str = "@EMAIL@";
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
735 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
736 str = gtk_entry_get_text (GTK_ENTRY (bm_passedit));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
737 if (entry->pass)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
738 g_free (entry->pass);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
739 entry->pass = g_strdup (str);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
740 entry->save_password = *entry->pass != '\0';
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
741
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
742 if (GTK_TOGGLE_BUTTON (anon_chk)->active)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
743 str = "";
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
744 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
745 str = gtk_entry_get_text (GTK_ENTRY (bm_acctedit));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
746 if (entry->acct)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
747 g_free (entry->acct);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
748 entry->acct = g_strdup (str);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
749
229
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
750 gftp_gtk_save_bookmark_options (entry);
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
751
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
752 if (strcmp (entry->path, newpath) != 0)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
753 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
754 tempentry = entry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
755 nextentry = entry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
756 entry->next = NULL;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
757 while (tempentry != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
758 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
759 g_hash_table_remove (new_bookmarks_htable, tempentry->path);
303
3b9d5797050f 2003-11-2 Brian Masney <masneyb@gftp.org>
masneyb
parents: 285
diff changeset
760 tempstr = gftp_build_path (newpath, tempentry->path + oldpathlen, NULL);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
761 g_free (tempentry->path);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
762 tempentry->path = tempstr;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
763 g_hash_table_insert (new_bookmarks_htable, tempentry->path,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
764 tempentry);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
765 if (tempentry->children != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
766 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
767 tempentry = tempentry->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
768 continue;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
769 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
770 while (tempentry->next == NULL && tempentry != entry &&
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
771 tempentry->prev != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
772 tempentry = tempentry->prev;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
773
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
774 tempentry = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
775 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
776 entry->next = nextentry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
777 clear_bookmarks_tree ();
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
778 build_bookmarks_tree ();
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
779 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
780
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
781 g_free (origpath);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
782 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
783
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
784
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
785 #if GTK_MAJOR_VERSION > 1
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
786 static void
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
787 bmedit_action (GtkWidget * widget, gint response, gpointer user_data)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
788 {
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
789 switch (response)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
790 {
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
791 case GTK_RESPONSE_APPLY:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
792 entry_apply_changes (widget, user_data);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
793 break;
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
794 case GTK_RESPONSE_OK:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
795 entry_apply_changes (widget, user_data);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
796 /* no break */
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
797 default:
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
798 gtk_widget_destroy (widget);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
799 }
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
800 }
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
801 #endif
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
802
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
803
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
804 static void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
805 edit_entry (gpointer data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
806 {
227
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
807 GtkWidget * table, * tempwid, * dialog, * menu, * notebook;
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
808 gftp_bookmarks_var * entry;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
809 int i, num;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
810 char *pos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
811
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
812 if (GTK_CLIST (tree)->selection == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
813 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
814
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
815 entry = gtk_ctree_node_get_row_data (GTK_CTREE (tree),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
816 GTK_CLIST (tree)->selection->data);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
817
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
818 if (entry == NULL || entry == new_bookmarks)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
819 return;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
820
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
821 #if GTK_MAJOR_VERSION == 1
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
822 dialog = gtk_dialog_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
823 gtk_window_set_title (GTK_WINDOW (dialog), _("Edit Entry"));
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
824 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), 15);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
825 #else
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
826 dialog = gtk_dialog_new_with_buttons (_("Edit Entry"), NULL, 0,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
827 GTK_STOCK_SAVE,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
828 GTK_RESPONSE_OK,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
829 GTK_STOCK_CANCEL,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
830 GTK_RESPONSE_CANCEL,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
831 GTK_STOCK_APPLY,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
832 GTK_RESPONSE_APPLY,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
833 NULL);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
834 #endif
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
835 gtk_window_set_wmclass (GTK_WINDOW (dialog), "Edit Bookmark Entry", "gFTP");
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
836 gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
837 gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 10);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
838 gtk_widget_realize (dialog);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
839
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
840 if (gftp_icon != NULL)
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
841 {
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
842 gdk_window_set_icon (dialog->window, NULL, gftp_icon->pixmap,
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
843 gftp_icon->bitmap);
168
c505d9ba9d53 2003-6-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
844 gdk_window_set_icon_name (dialog->window, gftp_version);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
845 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
846
227
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
847 notebook = gtk_notebook_new ();
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
848 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), notebook, TRUE,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
849 TRUE, 0);
227
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
850 gtk_widget_show (notebook);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
851
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
852 table = gtk_table_new (11, 2, FALSE);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
853 gtk_container_border_width (GTK_CONTAINER (table), 5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
854 gtk_table_set_row_spacings (GTK_TABLE (table), 5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
855 gtk_table_set_col_spacings (GTK_TABLE (table), 5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
856 gtk_widget_show (table);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
857
227
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
858 tempwid = gtk_label_new (_("Bookmark"));
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
859 gtk_widget_show (tempwid);
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
860
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
861 gtk_notebook_append_page (GTK_NOTEBOOK (notebook), table, tempwid);
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
862
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
863 tempwid = gtk_label_new (_("Description:"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
864 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
865 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 0, 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
866 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
867
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
868 bm_pathedit = gtk_entry_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
869 gtk_table_attach_defaults (GTK_TABLE (table), bm_pathedit, 1, 2, 0, 1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
870 if ((pos = strrchr (entry->path, '/')) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
871 pos = entry->path;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
872 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
873 pos++;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
874 if (pos)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
875 gtk_entry_set_text (GTK_ENTRY (bm_pathedit), pos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
876 gtk_widget_show (bm_pathedit);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
877
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
878 tempwid = gtk_label_new (_("Hostname:"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
879 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
880 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 1, 2);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
881 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
882
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
883 bm_hostedit = gtk_entry_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
884 gtk_table_attach_defaults (GTK_TABLE (table), bm_hostedit, 1, 2, 1, 2);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
885 if (entry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
886 gtk_widget_set_sensitive (bm_hostedit, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
887 else if (entry->hostname)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
888 gtk_entry_set_text (GTK_ENTRY (bm_hostedit), entry->hostname);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
889 gtk_widget_show (bm_hostedit);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
890
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
891 tempwid = gtk_label_new (_("Port:"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
892 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
893 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 2, 3);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
894 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
895
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
896 bm_portedit = gtk_entry_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
897 gtk_table_attach_defaults (GTK_TABLE (table), bm_portedit, 1, 2, 2, 3);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
898 if (entry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
899 gtk_widget_set_sensitive (bm_portedit, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
900 else if (entry->port)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
901 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
902 pos = g_strdup_printf ("%d", entry->port);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
903 gtk_entry_set_text (GTK_ENTRY (bm_portedit), pos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
904 g_free (pos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
905 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
906 gtk_widget_show (bm_portedit);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
907
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
908 tempwid = gtk_label_new (_("Protocol:"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
909 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
910 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 3, 4);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
911 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
912
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
913 menu = gtk_option_menu_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
914 gtk_table_attach_defaults (GTK_TABLE (table), menu, 1, 2, 3, 4);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
915 gtk_widget_show (menu);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
916
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
917 num = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
918 bm_protocol = gtk_menu_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
919 for (i = 0; gftp_protocols[i].name; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
920 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
921 tempwid = gtk_menu_item_new_with_label (gftp_protocols[i].name);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
922 gtk_object_set_user_data (GTK_OBJECT (tempwid), gftp_protocols[i].name);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
923 gtk_menu_append (GTK_MENU (bm_protocol), tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
924 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
925 if (entry->protocol &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
926 strcmp (gftp_protocols[i].name, entry->protocol) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
927 num = i;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
928 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
929 gtk_option_menu_set_menu (GTK_OPTION_MENU (menu), bm_protocol);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
930 gtk_option_menu_set_history (GTK_OPTION_MENU (menu), num);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
931
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
932 tempwid = gtk_label_new (_("Remote Directory:"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
933 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
934 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 4, 5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
935 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
936
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
937 bm_remotediredit = gtk_entry_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
938 gtk_table_attach_defaults (GTK_TABLE (table), bm_remotediredit, 1, 2, 4, 5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
939 if (entry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
940 gtk_widget_set_sensitive (bm_remotediredit, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
941 else if (entry->remote_dir)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
942 gtk_entry_set_text (GTK_ENTRY (bm_remotediredit), entry->remote_dir);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
943 gtk_widget_show (bm_remotediredit);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
944
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
945 tempwid = gtk_label_new (_("Local Directory:"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
946 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
947 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 5, 6);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
948 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
949
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
950 bm_localdiredit = gtk_entry_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
951 gtk_table_attach_defaults (GTK_TABLE (table), bm_localdiredit, 1, 2, 5, 6);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
952 if (entry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
953 gtk_widget_set_sensitive (bm_localdiredit, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
954 else if (entry->local_dir)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
955 gtk_entry_set_text (GTK_ENTRY (bm_localdiredit), entry->local_dir);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
956 gtk_widget_show (bm_localdiredit);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
957
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
958 tempwid = gtk_hseparator_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
959 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 2, 7, 8);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
960 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
961
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
962 tempwid = gtk_label_new (_("Username:"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
963 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
964 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 8, 9);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
965 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
966
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
967 bm_useredit = gtk_entry_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
968 gtk_table_attach_defaults (GTK_TABLE (table), bm_useredit, 1, 2, 8, 9);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
969 if (entry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
970 gtk_widget_set_sensitive (bm_useredit, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
971 else if (entry->user)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
972 gtk_entry_set_text (GTK_ENTRY (bm_useredit), entry->user);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
973 gtk_widget_show (bm_useredit);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
974
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
975 tempwid = gtk_label_new (_("Password:"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
976 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
977 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 9, 10);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
978 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
979
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
980 bm_passedit = gtk_entry_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
981 gtk_table_attach_defaults (GTK_TABLE (table), bm_passedit, 1, 2, 9, 10);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
982 gtk_entry_set_visibility (GTK_ENTRY (bm_passedit), FALSE);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
983 if (entry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
984 gtk_widget_set_sensitive (bm_passedit, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
985 else if (entry->pass)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
986 gtk_entry_set_text (GTK_ENTRY (bm_passedit), entry->pass);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
987 gtk_widget_show (bm_passedit);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
988
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
989 tempwid = gtk_label_new (_("Account:"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
990 gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
991 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 10, 11);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
992 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
993
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
994 bm_acctedit = gtk_entry_new ();
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
995 gtk_table_attach_defaults (GTK_TABLE (table), bm_acctedit, 1, 2, 10, 11);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
996 gtk_entry_set_visibility (GTK_ENTRY (bm_acctedit), FALSE);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
997 if (entry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
998 gtk_widget_set_sensitive (bm_acctedit, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
999 else if (entry->acct)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1000 gtk_entry_set_text (GTK_ENTRY (bm_acctedit), entry->acct);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1001 gtk_widget_show (bm_acctedit);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1002
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1003 anon_chk = gtk_check_button_new_with_label (_("Log in as ANONYMOUS"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1004 gtk_table_attach_defaults (GTK_TABLE (table), anon_chk, 0, 2, 11, 12);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1005 if (entry->isfolder)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1006 gtk_widget_set_sensitive (anon_chk, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1007 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1008 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1009 gtk_signal_connect (GTK_OBJECT (anon_chk), "toggled",
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1010 GTK_SIGNAL_FUNC (set_userpass_visible), NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1011 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (anon_chk), entry->user
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1012 && strcmp (entry->user, "anonymous") == 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1013 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1014 gtk_widget_show (anon_chk);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1015
45
311e29c40ed6 2002-10-31 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1016 #if GTK_MAJOR_VERSION == 1
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1017 tempwid = gtk_button_new_with_label (_("OK"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1018 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1019 TRUE, TRUE, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1020 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1021 GTK_SIGNAL_FUNC (entry_apply_changes),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1022 (gpointer) entry);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1023 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1024 GTK_SIGNAL_FUNC (gtk_widget_destroy),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1025 GTK_OBJECT (dialog));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1026 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1027 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1028
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1029 tempwid = gtk_button_new_with_label (_(" Cancel "));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1030 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1031 TRUE, TRUE, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1032 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1033 GTK_SIGNAL_FUNC (gtk_widget_destroy),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1034 GTK_OBJECT (dialog));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1035 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1036 gtk_widget_grab_focus (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1037 gtk_widget_show (tempwid);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1038
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1039 tempwid = gtk_button_new_with_label (_("Apply"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1040 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1041 TRUE, TRUE, 0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1042 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1043 GTK_SIGNAL_FUNC (entry_apply_changes),
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1044 (gpointer) entry);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1045 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1046 gtk_widget_show (tempwid);
19
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
1047 #else
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
1048 g_signal_connect (GTK_OBJECT (dialog), "response",
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
1049 G_CALLBACK (bmedit_action), (gpointer) entry);
3b2dcdefc7e9 2002-09-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 7
diff changeset
1050 #endif
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1051
229
35ae2e80962e 2003-7-22 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
1052 gftp_gtk_setup_bookmark_options (notebook, entry);
227
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
1053
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1054 gtk_widget_show (dialog);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1055 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1056
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1057
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1058 static gint
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1059 bm_enter (GtkWidget * widget, GdkEventKey * event, gpointer data)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1060 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1061 if (event->type == GDK_KEY_PRESS)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1062 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1063 if (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1064 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1065 edit_entry (NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1066 return (FALSE);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1067 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1068 else if (event->keyval == GDK_KP_Delete || event->keyval == GDK_Delete)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1069 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1070 delete_entry (NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1071 return (FALSE);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1072 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1073 }
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1074 return (TRUE);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1075 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1076
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1077
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1078 static void
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1079 after_move (GtkCTree * ctree, GtkCTreeNode * child, GtkCTreeNode * parent,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1080 GtkCTreeNode * sibling, gpointer data)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1081 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1082
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
1083 gftp_bookmarks_var * childentry, * siblingentry, * parententry, * tempentry;
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1084 char *tempstr, *pos, *stpos;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1085
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1086 childentry = gtk_ctree_node_get_row_data (ctree, child);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1087 parententry = gtk_ctree_node_get_row_data (ctree, parent);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1088 siblingentry = gtk_ctree_node_get_row_data (ctree, sibling);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1089
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1090 tempentry = childentry->prev->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1091 if (tempentry == childentry)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1092 childentry->prev->children = childentry->prev->children->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1093 else
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1094 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1095 while (tempentry->next != childentry)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1096 tempentry = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1097 tempentry->next = childentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1098 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1099 childentry->prev = parententry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1100 if (!parententry->isfolder)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1101 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1102 childentry->next = parententry->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1103 parententry->children = childentry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1104 gtk_ctree_move (ctree, child, parententry->prev->cnode,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1105 parententry->cnode);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1106 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1107 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1108 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1109 if (siblingentry == NULL || parententry->children == siblingentry)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1110 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1111 childentry->next = parententry->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1112 parententry->children = childentry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1113 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1114 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1115 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1116 tempentry = parententry->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1117 while (tempentry->next != siblingentry)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1118 tempentry = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1119 childentry->next = tempentry->next;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1120 tempentry->next = childentry;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1121 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1122
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1123 tempentry = childentry;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1124 while (tempentry != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1125 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1126 g_hash_table_remove (new_bookmarks_htable, tempentry->path);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1127 if ((pos = strrchr (tempentry->path, '/')) == NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1128 pos = tempentry->path;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1129 else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1130 pos++;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1131 tempstr = g_strdup_printf ("%s/%s", tempentry->prev->path, pos);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1132 for (stpos = tempstr; *stpos == '/'; stpos++);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1133 g_free (tempentry->path);
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
1134 tempentry->path = g_strdup (stpos);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1135 g_free (tempstr);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1136 g_hash_table_insert (new_bookmarks_htable, tempentry->path,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1137 tempentry);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1138 if (tempentry->children != NULL)
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1139 tempentry = tempentry->children;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1140 else
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1141 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1142 if (tempentry->next == NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1143 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1144 if (tempentry->prev == childentry)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1145 break;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1146 else
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1147 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1148 while (tempentry->next == NULL
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1149 && tempentry->prev != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1150 tempentry = tempentry->prev;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1151 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1152 }
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1153 tempentry = tempentry->next;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1154 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1155 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1156 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1157 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1158
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1159
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1160 static gint
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1161 bm_dblclick (GtkWidget * widget, GdkEventButton * event, gpointer data)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1162 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1163 if (event->button == 3)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1164 gtk_item_factory_popup (edit_factory, (guint) event->x_root,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1165 (guint) event->y_root, 1, 0);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1166 else if (event->type == GDK_2BUTTON_PRESS)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1167 {
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1168 edit_entry (NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1169 return (FALSE);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1170 }
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1171 return (TRUE);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1172 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1173
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1174
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1175 void
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1176 edit_bookmarks (gpointer data)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1177 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1178 GtkWidget * dialog, * scroll;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1179 GtkItemFactory * ifactory;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1180 GtkItemFactoryEntry menu_items[] = {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1181 {N_("/_File"), NULL, 0, 0, "<Branch>"},
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1182 {N_("/File/tearoff"), NULL, 0, 0, "<Tearoff>"},
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1183 {N_("/File/New Folder..."), NULL, new_folder_entry, 0, MN_(NULL)},
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1184 {N_("/File/New Item..."), NULL, new_item_entry, 0, MS_(GTK_STOCK_NEW)},
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1185 {N_("/File/Delete"), NULL, delete_entry, 0, MS_(GTK_STOCK_DELETE)},
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1186 {N_("/File/Properties..."), NULL, edit_entry, 0, MS_(GTK_STOCK_PROPERTIES)},
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1187 {N_("/File/sep"), NULL, 0, 0, "<Separator>"},
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1188 {N_("/File/Close"), NULL, gtk_widget_destroy, 0, MS_(GTK_STOCK_CLOSE)}
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1189 };
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1190 #if GTK_MAJOR_VERSION == 1
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1191 GtkWidget * tempwid;
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1192 #endif
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1193
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 73
diff changeset
1194 new_bookmarks = copy_bookmarks (gftp_bookmarks);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1195 new_bookmarks_htable = build_bookmarks_hash_table (new_bookmarks);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1196
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1197 #if GTK_MAJOR_VERSION == 1
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1198 dialog = gtk_dialog_new ();
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1199 gtk_window_set_title (GTK_WINDOW (dialog), _("Edit Bookmarks"));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1200 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), 15);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1201 #else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1202 dialog = gtk_dialog_new_with_buttons (_("Edit Bookmarks"), NULL, 0,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1203 GTK_STOCK_SAVE,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1204 GTK_RESPONSE_OK,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1205 GTK_STOCK_CANCEL,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1206 GTK_RESPONSE_CANCEL,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1207 NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1208 #endif
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1209 gtk_window_set_wmclass (GTK_WINDOW(dialog), "Edit Bookmarks", "gFTP");
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1210 gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1211 gtk_widget_realize (dialog);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1212
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1213 if (gftp_icon != NULL)
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1214 {
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1215 gdk_window_set_icon (dialog->window, NULL, gftp_icon->pixmap,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1216 gftp_icon->bitmap);
168
c505d9ba9d53 2003-6-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
1217 gdk_window_set_icon_name (dialog->window, gftp_version);
48
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1218 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1219
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1220 ifactory = item_factory_new (GTK_TYPE_MENU_BAR, "<bookmarks>", NULL, NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1221 create_item_factory (ifactory, 7, menu_items, NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1222 create_item_factory (ifactory, 1, menu_items + 7, dialog);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1223 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), ifactory->widget,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1224 FALSE, FALSE, 0);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1225 gtk_widget_show (ifactory->widget);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1226
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1227 scroll = gtk_scrolled_window_new (NULL, NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1228 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1229 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1230 gtk_widget_set_size_request (scroll, 150, 200);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1231
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1232 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scroll, TRUE, TRUE,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1233 0);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1234 gtk_container_border_width (GTK_CONTAINER (scroll), 3);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1235 gtk_widget_show (scroll);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1236
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1237 edit_factory = item_factory_new (GTK_TYPE_MENU, "<edit_bookmark>", NULL, "/File");
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1238
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1239 create_item_factory (edit_factory, 6, menu_items + 2, dialog);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1240
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1241 tree = gtk_ctree_new (1, 0);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1242 gtk_clist_set_selection_mode (GTK_CLIST (tree), GTK_SELECTION_BROWSE);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1243 gtk_clist_set_reorderable (GTK_CLIST (tree), 1);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1244 gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scroll), tree);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1245 gtk_signal_connect_after (GTK_OBJECT (tree), "key_press_event",
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1246 GTK_SIGNAL_FUNC (bm_enter), (gpointer) tree);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1247 gtk_signal_connect_after (GTK_OBJECT (tree), "tree_move",
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1248 GTK_SIGNAL_FUNC (after_move), NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1249 gtk_signal_connect_after (GTK_OBJECT (tree), "button_press_event",
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1250 GTK_SIGNAL_FUNC (bm_dblclick), (gpointer) tree);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1251 gtk_widget_show (tree);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1252
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1253 #if GTK_MAJOR_VERSION == 1
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1254 tempwid = gtk_button_new_with_label (_("OK"));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1255 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1256 TRUE, TRUE, 0);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1257 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1258 GTK_SIGNAL_FUNC (bm_apply_changes), NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1259 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1260 GTK_SIGNAL_FUNC (bm_close_dialog), (gpointer) dialog);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1261 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1262 gtk_widget_show (tempwid);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1263
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1264 tempwid = gtk_button_new_with_label (_(" Cancel "));
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1265 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1266 TRUE, TRUE, 0);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1267 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1268 GTK_SIGNAL_FUNC (bm_close_dialog), (gpointer) dialog);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1269 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1270 gtk_widget_grab_focus (tempwid);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1271 gtk_widget_show (tempwid);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1272 #else
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1273 g_signal_connect (GTK_OBJECT (dialog), "response",
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1274 G_CALLBACK (editbm_action), NULL);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1275 #endif
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1276
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1277 gtk_widget_show (dialog);
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1278
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1279 build_bookmarks_tree ();
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1280 }
e5f6054590b5 2002-11-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 45
diff changeset
1281